diff --git a/dist/echarts.common.js b/dist/echarts.common.js index 9ddb00a66dd98ef2fe8aec1d937d59ca08ce2902..bd4454795081d2c4790cc7f17c293caf360dc972 100644 --- a/dist/echarts.common.js +++ b/dist/echarts.common.js @@ -708,9 +708,7 @@ function noop() {} - var zrUtil = - /*#__PURE__*/ - Object.freeze({ + var zrUtil = /*#__PURE__*/Object.freeze({ __proto__: null, $override: $override, guid: guid, @@ -901,9 +899,7 @@ return out; } - var vector = - /*#__PURE__*/ - Object.freeze({ + var vector = /*#__PURE__*/Object.freeze({ __proto__: null, create: create, copy: copy, @@ -1442,7 +1438,7 @@ function removeEventListener(el, name, handler, opt) { if (isDomLevel2) { - el.removeEventListener(name, handler); + el.removeEventListener(name, handler, opt); } else { el.detachEvent('on' + name, handler); } @@ -2697,13 +2693,9 @@ var requestAnimationFrame; - if (typeof window !== 'undefined') { - requestAnimationFrame = window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame; - } else { - requestAnimationFrame = function (func) { - return setTimeout(func, 16); - }; - } + requestAnimationFrame = typeof window !== 'undefined' && window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { + return setTimeout(func, 16); + }; var requestAnimationFrame$1 = requestAnimationFrame; var easing = { @@ -3649,9 +3641,7 @@ return 'rgb(' + r + ',' + g + ',' + b + ')'; } - var color = - /*#__PURE__*/ - Object.freeze({ + var color = /*#__PURE__*/Object.freeze({ __proto__: null, parse: parse, lift: lift, @@ -4157,7 +4147,7 @@ return; } - this._additiveAnimator = additiveTo; + this._additiveAnimators = additiveTo; } Animator.prototype.getTarget = function () { @@ -4183,7 +4173,7 @@ track = tracks[propName] = new Track(propName); var initialValue = void 0; - var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName); + var additiveTrack = this._getAdditiveTrack(propName); if (additiveTrack) { var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1]; @@ -4247,6 +4237,23 @@ } }; + Animator.prototype._getAdditiveTrack = function (trackName) { + var additiveTrack; + var additiveAnimators = this._additiveAnimators; + + if (additiveAnimators) { + for (var i = 0; i < additiveAnimators.length; i++) { + var track = additiveAnimators[i].getTrack(trackName); + + if (track) { + additiveTrack = track; + } + } + } + + return additiveTrack; + }; + Animator.prototype.start = function (easing, forceAnimate) { if (this._started > 0) { return; @@ -4260,7 +4267,7 @@ var propName = this._trackKeys[i]; var track = this._tracks[propName]; - var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName); + var additiveTrack = this._getAdditiveTrack(propName); var kfs = track.keyframes; track.prepare(additiveTrack); @@ -4283,9 +4290,21 @@ delay: this._delay, onframe: function (percent) { self._started = 2; + var additiveAnimators = self._additiveAnimators; - if (self._additiveAnimator && !self._additiveAnimator._clip) { - self._additiveAnimator = null; + if (additiveAnimators) { + var stillHasAdditiveAnimator = false; + + for (var i = 0; i < additiveAnimators.length; i++) { + if (additiveAnimators[i]._clip) { + stillHasAdditiveAnimator = true; + break; + } + } + + if (!stillHasAdditiveAnimator) { + self._additiveAnimators = null; + } } for (var i = 0; i < tracks.length; i++) { @@ -4620,6 +4639,7 @@ Animation.prototype.animate = function (target, options) { options = options || {}; + this.start(); var animator = new Animator(target, options.loop); this.addAnimator(animator); return animator; @@ -4923,21 +4943,21 @@ _this.__pointerCapturing = false; _this.dom = dom; _this.painterRoot = painterRoot; - _this.__localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); + _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); if (globalEventSupported) { - _this.__globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); + _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); } - mountLocalDOMEventListeners(_this, _this.__localHandlerScope); + mountLocalDOMEventListeners(_this, _this._localHandlerScope); return _this; } HandlerDomProxy.prototype.dispose = function () { - unmountDOMEventListeners(this.__localHandlerScope); + unmountDOMEventListeners(this._localHandlerScope); if (globalEventSupported) { - unmountDOMEventListeners(this.__globalHandlerScope); + unmountDOMEventListeners(this._globalHandlerScope); } }; @@ -4950,7 +4970,7 @@ if (globalEventSupported && +this.__pointerCapturing ^ +isPointerCapturing) { this.__pointerCapturing = isPointerCapturing; - var globalHandlerScope = this.__globalHandlerScope; + var globalHandlerScope = this._globalHandlerScope; isPointerCapturing ? mountGlobalDOMEventListeners(this, globalHandlerScope) : unmountDOMEventListeners(globalHandlerScope); } }; @@ -5067,9 +5087,7 @@ return b; } - var matrix = - /*#__PURE__*/ - Object.freeze({ + var matrix = /*#__PURE__*/Object.freeze({ __proto__: null, create: create$1, identity: identity, @@ -5942,7 +5960,7 @@ var dpr = 1; if (typeof window !== 'undefined') { - dpr = Math.max(window.devicePixelRatio || 1, 1); + dpr = Math.max(window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1); } var devicePixelRatio = dpr; @@ -6804,6 +6822,8 @@ if (zr) { zr.animation.addAnimator(animator); } + + zr && zr.wakeUp(); }; Element.prototype.updateDuringAnimation = function (key) { @@ -6912,7 +6932,7 @@ } } - if (Object.defineProperty) { + if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) { createLegacyProperty('position', '_legacyPos', 'x', 'y'); createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY'); createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY'); @@ -7036,20 +7056,22 @@ if (keyLen > 0 || cfg.force) { var existsAnimators = animatable.animators; - var lastAnimator = void 0; + var existsAnimatorsOnSameTarget = []; for (var i = 0; i < existsAnimators.length; i++) { if (existsAnimators[i].targetName === topKey) { - lastAnimator = existsAnimators[i]; + existsAnimatorsOnSameTarget.push(existsAnimators[i]); } } - if (!additive && lastAnimator) { - var allAborted = lastAnimator.stopTracks(changedKeys); + if (!additive && existsAnimatorsOnSameTarget.length) { + for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) { + var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys); - if (allAborted) { - var idx = indexOf(existsAnimators, lastAnimator); - existsAnimators.splice(idx, 1); + if (allAborted) { + var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]); + existsAnimators.splice(idx, 1); + } } } @@ -7084,7 +7106,7 @@ } } - var animator = new Animator(source, false, additive ? lastAnimator : null); + var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null); animator.targetName = topKey; if (cfg.scope) { @@ -13302,6 +13324,8 @@ var ZRender = function () { function ZRender(id, dom, opts) { + var _this = this; + this._stillFrameAccum = 0; this._needsRefresh = true; this._needsRefreshHover = true; @@ -13333,7 +13357,9 @@ this.handler = new Handler(storage, painter, handerProxy, painter.root); this.animation = new Animation({ stage: { - update: bind(this.flush, this) + update: function () { + return _this._flush(true); + } } }); this.animation.start(); @@ -13342,13 +13368,13 @@ ZRender.prototype.add = function (el) { this.storage.addRoot(el); el.addSelfToZr(this); - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.remove = function (el) { this.storage.delRoot(el); el.removeSelfFromZr(this); - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.configLayer = function (zLevel, config) { @@ -13356,7 +13382,7 @@ this.painter.configLayer(zLevel, config); } - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.setBackgroundColor = function (backgroundColor) { @@ -13364,7 +13390,7 @@ this.painter.setBackgroundColor(backgroundColor); } - this._needsRefresh = true; + this.refresh(); this._backgroundColor = backgroundColor; this._darkMode = isDarkMode(backgroundColor); }; @@ -13397,11 +13423,15 @@ }; ZRender.prototype.flush = function () { + this._flush(false); + }; + + ZRender.prototype._flush = function (fromInside) { var triggerRendered; if (this._needsRefresh) { triggerRendered = true; - this.refreshImmediately(true); + this.refreshImmediately(fromInside); } if (this._needsRefreshHover) { @@ -13543,10 +13573,8 @@ painterCtors[name] = Ctor; } - var version = '5.0.0-alpha.1'; - var zrender = - /*#__PURE__*/ - Object.freeze({ + var version = '5.0.0-alpha.2'; + var zrender = /*#__PURE__*/Object.freeze({ __proto__: null, init: init, dispose: dispose, @@ -13867,13 +13895,16 @@ } } - function isNumeric(v) { - return v - parseFloat(v) >= 0; + function numericToNumber(val) { + var valFloat = parseFloat(val); + return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN; } - var number = - /*#__PURE__*/ - Object.freeze({ + function isNumeric(val) { + return !isNaN(numericToNumber(val)); + } + + var number = /*#__PURE__*/Object.freeze({ __proto__: null, linearMap: linearMap, parsePercent: parsePercent$2, @@ -13892,6 +13923,7 @@ nice: nice, quantile: quantile, reformIntervals: reformIntervals, + numericToNumber: numericToNumber, isNumeric: isNumeric }); var DUMMY_COMPONENT_NAME_PREFIX = 'series\0'; @@ -15386,8 +15418,10 @@ } } - fillColor = fillColor || globalTextStyle.color; - strokeColor = strokeColor || globalTextStyle.textBorderColor; + if (!isAttached) { + fillColor = fillColor || globalTextStyle.color; + strokeColor = strokeColor || globalTextStyle.textBorderColor; + } if (fillColor != null) { textStyle.fill = fillColor; @@ -16325,42 +16359,6 @@ return isUTC ? 'setUTCSeconds' : 'setSeconds'; } - var time = - /*#__PURE__*/ - Object.freeze({ - __proto__: null, - ONE_SECOND: ONE_SECOND, - ONE_MINUTE: ONE_MINUTE, - ONE_HOUR: ONE_HOUR, - ONE_DAY: ONE_DAY, - ONE_YEAR: ONE_YEAR, - defaultLeveledFormatter: defaultLeveledFormatter, - fullLeveledFormatter: fullLeveledFormatter, - primaryTimeUnits: primaryTimeUnits, - timeUnits: timeUnits, - pad: pad, - getPrimaryTimeUnit: getPrimaryTimeUnit, - isPrimaryTimeUnit: isPrimaryTimeUnit, - getDefaultFormatPrecisionOfInterval: getDefaultFormatPrecisionOfInterval, - format: format, - leveledFormat: leveledFormat, - getUnitFromValue: getUnitFromValue, - getUnitValue: getUnitValue, - fullYearGetterName: fullYearGetterName, - monthGetterName: monthGetterName, - dateGetterName: dateGetterName, - hoursGetterName: hoursGetterName, - minutesGetterName: minutesGetterName, - secondsGetterName: secondsGetterName, - millisecondsGetterName: millisecondsGetterName, - fullYearSetterName: fullYearSetterName, - monthSetterName: monthSetterName, - dateSetterName: dateSetterName, - hoursSetterName: hoursSetterName, - minutesSetterName: minutesSetterName, - secondsSetterName: secondsSetterName, - millisecondsSetterName: millisecondsSetterName - }); var mathMax$3 = Math.max; var mathMin$3 = Math.min; var _customShapeMap = {}; @@ -16633,6 +16631,11 @@ var text = el.getTextContent(); var host_1 = text && innerLabel(text); host_1 && (host_1.startValue = host_1.nextValue); + var duration = animatableModel.get('animationDuration'); + + if (!duration) { + host_1.nextValue = interpolateValues_1; + } var during = function (percent) { var text = el.getTextContent(); @@ -16874,9 +16877,7 @@ registerShape('line', Line); registerShape('bezierCurve', BezierCurve); registerShape('arc', Arc); - var graphic = - /*#__PURE__*/ - Object.freeze({ + var graphic = /*#__PURE__*/Object.freeze({ __proto__: null, extendShape: extendShape, extendPath: extendPath, @@ -17095,9 +17096,7 @@ } } - var format$1 = - /*#__PURE__*/ - Object.freeze({ + var format$1 = /*#__PURE__*/Object.freeze({ __proto__: null, addCommas: addCommas, toCamelCase: toCamelCase, @@ -17523,7 +17522,7 @@ var globalDefault = { darkMode: 'auto', - color: ['#5470c6', '#91cc75', '#ffbf25', '#ef6868', '#ffa086', '#b25790', '#fe719b', '#59d9d2', '#46a9ee'], + color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'], gradientColor: ['#f6efa6', '#d88273', '#bf444c'], textStyle: { fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif', @@ -18607,7 +18606,7 @@ function isNotTargetSeries(seriesModel, payload) { if (payload) { - var index = payload.seiresIndex; + var index = payload.seriesIndex; var id = payload.seriesId; var name_1 = payload.seriesName; return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1; @@ -20135,6 +20134,18 @@ return value == null || value === '' ? NaN : +value; } + var valueParserMap = createHashMap({ + 'number': function (val) { + return parseFloat(val); + }, + 'time': function (val) { + return +parseDate(val); + }, + 'trim': function (val) { + return typeof val === 'string' ? trim(val) : val; + } + }); + var ExternalSource = function () { function ExternalSource() {} @@ -21549,7 +21560,7 @@ fontSize: '12px', maskColor: 'rgba(255, 255, 255, 0.8)', showSpinner: true, - color: '#c23531', + color: '#5470c6', spinnerRadius: 10, lineWidth: 5, zlevel: 0 @@ -22048,7 +22059,8 @@ color: colorAll, colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll] }; - var contrastColor = '#eee'; + var contrastColor = '#B9B8CE'; + var backgroundColor = '#100C2A'; var axisCommon = function () { return { @@ -22057,46 +22069,38 @@ color: contrastColor } }, - axisTick: { - lineStyle: { - color: contrastColor - } - }, - axisLabel: { - textStyle: { - color: contrastColor - } - }, splitLine: { lineStyle: { - type: 'dashed', - color: '#aaa' + color: '#484753' } }, splitArea: { areaStyle: { - color: contrastColor + color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)'] + } + }, + minorSplitLine: { + lineStyle: { + color: '#20203B' } } }; }; - var colorPalette = ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53', '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42']; + var colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff']; var theme = { darkMode: true, color: colorPalette, - backgroundColor: '#333', - tooltip: { - axisPointer: { - lineStyle: { - color: contrastColor - }, - crossStyle: { - color: contrastColor - }, - label: { - color: '#000' - } + backgroundColor: backgroundColor, + axisPointer: { + lineStyle: { + color: '#817f91' + }, + crossStyle: { + color: '#817f91' + }, + label: { + color: '#fff' } }, legend: { @@ -22109,7 +22113,10 @@ }, title: { textStyle: { - color: contrastColor + color: '#EEF1FA' + }, + subtextStyle: { + color: '#B9B8CE' } }, toolbox: { @@ -22120,8 +22127,48 @@ } }, dataZoom: { + borderColor: '#71708A', textStyle: { color: contrastColor + }, + brushStyle: { + color: 'rgba(135,163,206,0.3)' + }, + handleStyle: { + color: '#353450', + borderColor: '#C5CBE3' + }, + moveHandleStyle: { + color: '#B0B6C3', + opacity: 0.3 + }, + fillerColor: 'rgba(135,163,206,0.2)', + emphasis: { + handleStyle: { + borderColor: '#91B7F2', + color: '#4D587D' + }, + moveHandleStyle: { + color: '#636D9A', + opacity: 0.7 + } + }, + dataBackground: { + lineStyle: { + color: '#71708A', + width: 1 + }, + areaStyle: { + color: '#71708A' + } + }, + selectedDataBackground: { + lineStyle: { + color: '#87A3CE' + }, + areaStyle: { + color: '#87A3CE' + } } }, visualMap: { @@ -22133,23 +22180,28 @@ lineStyle: { color: contrastColor }, - itemStyle: { - normal: { - color: colorPalette[1] - } - }, label: { - normal: { - textStyle: { - color: contrastColor - } + textStyle: { + color: contrastColor } }, controlStyle: { - normal: { - color: contrastColor, - borderColor: contrastColor - } + color: contrastColor, + borderColor: contrastColor + } + }, + calendar: { + itemStyle: { + color: backgroundColor + }, + dayLabel: { + color: contrastColor + }, + monthLabel: { + color: contrastColor + }, + yearLabel: { + color: contrastColor } }, timeAxis: axisCommon(), @@ -23520,10 +23572,10 @@ var height = api.getHeight(); var labelList = prepareLayoutList(this._labelList); var labelsNeedsAdjustOnX = filter(labelList, function (item) { - return item.layoutOption.moveOverlap === 'shift-x'; + return item.layoutOption.moveOverlap === 'shiftX'; }); var labelsNeedsAdjustOnY = filter(labelList, function (item) { - return item.layoutOption.moveOverlap === 'shift-y'; + return item.layoutOption.moveOverlap === 'shiftY'; }); shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width); shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height); @@ -25372,9 +25424,9 @@ var each$3 = each; var isFunction$1 = isFunction; var isObject$2 = isObject; - var version$1 = '5.0.0-alpha.1'; + var version$1 = '5.0.0-alpha.2'; var dependencies = { - zrender: '5.0.0-alpha.1' + zrender: '5.0.0-alpha.2' }; var TEST_FRAME_REMAIN_TIME = 1; var PRIORITY_PROCESSOR_SERIES_FILTER = 800; @@ -31575,9 +31627,7 @@ mixin(Model, AxisModelCommonMixin); } - var helper = - /*#__PURE__*/ - Object.freeze({ + var helper = /*#__PURE__*/Object.freeze({ __proto__: null, createList: createList, getLayoutRect: getLayoutRect, @@ -32298,6 +32348,10 @@ } var parseGeoJson = parseGeoJSON; + var time = { + parse: parseDate, + format: format + }; var ecUtil = {}; each(['map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter', 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction', 'extend', 'defaults', 'clone', 'merge'], function (name) { ecUtil[name] = zrUtil[name]; @@ -34346,9 +34400,6 @@ mixin(CartesianAxisModel, AxisModelCommonMixin); var extraOption = { offset: 0, - sort: false, - realtimeSort: false, - sortSeriesIndex: null, categorySortInfo: [] }; axisModelCreator('x', CartesianAxisModel, extraOption); @@ -36413,7 +36464,8 @@ itemStyle: { borderColor: '#212121' } - } + }, + realtimeSort: false }); return BarSeriesModel; }(BaseBarSeriesModel); @@ -36530,6 +36582,7 @@ BarView.prototype.render = function (seriesModel, ecModel, api, payload) { this._model = seriesModel; + this.removeOnRenderedListener(api); this._updateDrawMode(seriesModel); @@ -36566,14 +36619,14 @@ }; BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) { - var that = this; + var _this = this; + var group = this.group; var data = seriesModel.getData(); var oldData = this._data; var coord = seriesModel.coordinateSystem; var baseAxis = coord.getBaseAxis(); var isHorizontalOrRadial; - var lastAnimator = null; if (coord.type === 'cartesian2d') { isHorizontalOrRadial = baseAxis.isHorizontal(); @@ -36583,14 +36636,32 @@ var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null; var axis2DModel = baseAxis.model; - var axisSort = coord.type === 'cartesian2d' && axis2DModel.get('sort') && axis2DModel.get('sortSeriesIndex') === seriesModel.seriesIndex; - var realtimeSort = axisSort && axis2DModel.get('realtimeSort'); + var realtimeSort = seriesModel.get('realtimeSort'); - if (realtimeSort && this._isFirstFrame && data.count()) { - this._initSort(data, isHorizontalOrRadial, baseAxis, api); + if (realtimeSort && data.count()) { + if (this._isFirstFrame) { + this._initSort(data, isHorizontalOrRadial, baseAxis, api); - this._isFirstFrame = false; - return; + this._isFirstFrame = false; + return; + } else { + this._onRendered = function () { + var orderMap = function (idx) { + var el = data.getItemGraphicEl(idx); + + if (el) { + var shape = el.shape; + return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0; + } else { + return 0; + } + }; + + _this._updateSort(data, orderMap, baseAxis, api); + }; + + api.getZr().on('rendered', this._onRendered); + } } var needsClip = seriesModel.get('clip', true) || realtimeSort; @@ -36633,8 +36704,7 @@ if (realtimeSort) { el.disableLabelAnimation = true; - var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false); - animator && (lastAnimator = animator); + updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false); } else if (coord.type === 'cartesian2d') { initProps(el, { shape: layout @@ -36689,8 +36759,7 @@ if (realtimeSort) { el.disableLabelAnimation = true; - var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true); - animator && (lastAnimator = animator); + updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true); } else { updateProps(el, { shape: layout @@ -36714,23 +36783,6 @@ group.add(bgGroup); this._backgroundEls = bgEls; this._data = data; - - if (lastAnimator) { - lastAnimator.during(function () { - var orderMap = function (idx) { - var el = data.getItemGraphicEl(idx); - - if (el) { - var shape = el.shape; - return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0; - } else { - return 0; - } - }; - - that._updateSort(data, orderMap, baseAxis, api); - }); - } }; BarView.prototype._renderLarge = function (seriesModel, ecModel, api) { @@ -36816,6 +36868,7 @@ for (var i = extent[0]; i < extent[1]; ++i) { if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) { + this.removeOnRenderedListener(api); var action = { type: 'changeAxisOrder', componentType: baseAxis.dim + 'Axis', @@ -36841,8 +36894,21 @@ api.dispatchAction(action); }; - BarView.prototype.remove = function () { + BarView.prototype.remove = function (ecModel, api) { this._clear(this._model); + + this.removeOnRenderedListener(api); + }; + + BarView.prototype.dispose = function (ecModel, api) { + this.removeOnRenderedListener(api); + }; + + BarView.prototype.removeOnRenderedListener = function (api) { + if (this._onRendered) { + api.getZr().off('rendered', this._onRendered); + this._onRendered = null; + } }; BarView.prototype._clear = function (model) { @@ -36985,9 +37051,6 @@ (isUpdate ? updateProps : initProps)(el, { shape: seriesTarget }, seriesModel, newIndex, null); - var lastAnimator = el.animators.length ? find(el.animators, function (animator) { - return animator.targetName === 'shape' && !!animator.getTrack('width'); - }) : null; (isUpdate ? updateProps : initProps)(el, { shape: axisTarget }, axisModel, newIndex); @@ -36998,7 +37061,6 @@ var labelModel = seriesModel.getModel('label'); (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter); - return lastAnimator; } } @@ -37927,7 +37989,6 @@ var data = seriesModel.getData(); var oldData = this._data; var group = this.group; - var hasAnimation = ecModel.get('animation'); var startAngle; if (!oldData && data.count() > 0) { @@ -40125,7 +40186,7 @@ var centerPos = ''; var rotate = 0; - if (['left', 'right'].includes(arrowPos)) { + if (indexOf(['left', 'right'], arrowPos) > -1) { centerPos = arrowPos + ":-6px;top:50%;transform:translateY(-50%)"; rotate = arrowPos === 'left' ? -225 : -45; } else { @@ -40159,7 +40220,7 @@ return cssText.join(';'); } - function assembleCssText(tooltipModel) { + function assembleCssText(tooltipModel, isFirstShow) { var cssText = []; var transitionDuration = tooltipModel.get('transitionDuration'); var backgroundColor = tooltipModel.get('backgroundColor'); @@ -40171,7 +40232,7 @@ var padding = tooltipModel.get('padding'); var boxShadow = shadowOffsetX + "px " + shadowOffsetY + "px " + shadowBlur + "px " + shadowColor; cssText.push('box-shadow:' + boxShadow); - transitionDuration && !['top', 'left', 'bottom', 'right'].includes(tooltipModel.get('position')) && tooltipModel.get('trigger') !== 'item' && cssText.push(assembleTransition(transitionDuration)); + !isFirstShow && transitionDuration && indexOf(['top', 'left', 'bottom', 'right'], tooltipModel.get('position')) > -1 && tooltipModel.get('trigger') !== 'item' && cssText.push(assembleTransition(transitionDuration)); if (backgroundColor) { if (env.canvasSupported) { @@ -40223,6 +40284,7 @@ this._show = false; this._styleCoord = [0, 0]; this._enterable = true; + this._firstShow = true; if (env.wxa) { return null; @@ -40291,10 +40353,11 @@ var styleCoord = this._styleCoord; var offset = el.offsetHeight / 2; nearPointColor = getFinalColor(nearPointColor); - el.style.cssText = gCssText + assembleCssText(tooltipModel) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + ("border-color: " + nearPointColor + ";") + (tooltipModel.get('extraCssText') || ''); + el.style.cssText = gCssText + assembleCssText(tooltipModel, this._firstShow) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + ("border-color: " + nearPointColor + ";") + (tooltipModel.get('extraCssText') || ''); el.style.display = el.innerHTML ? 'block' : 'none'; el.style.pointerEvents = this._enterable ? 'auto' : 'none'; this._show = true; + this._firstShow = false; }; TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) { @@ -47474,8 +47537,8 @@ var DEFAULT_BRUSH_OPT = { brushStyle: { lineWidth: 2, - stroke: 'rgba(0,0,0,0.3)', - fill: 'rgba(0,0,0,0.1)' + stroke: 'rgba(210,219,238,0.3)', + fill: '#D2DBEE' }, transformable: true, brushMode: 'single', @@ -48781,7 +48844,7 @@ brushType: 'auto', brushStyle: { lineWidth: 0, - fill: 'rgba(0,0,0,0.2)' + fill: 'rgba(210,219,238,0.2)' } } : false); } diff --git a/dist/echarts.common.js.map b/dist/echarts.common.js.map index 803d3b868ba41ff89e6c78cdb2ac48cdc571194b..1671e5ebdab8825129754944d0d75a185e0e99b0 100644 --- a/dist/echarts.common.js.map +++ b/dist/echarts.common.js.map @@ -1 +1 @@ -{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__spreadArrays","s","i","il","arguments","length","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","apply","clone","source","result","typeStr","call","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","mergeAll","targetAndSources","extend","assign","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","find","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","concatArray","newArray","offset","createObject","proto","properties","StyleCtor","hasOwn","own","noop","zrUtil","freeze","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","lengthSquare","mul","div","dot","scale","normalize","distance","dist","distanceSquare","distSquare","negate","lerp","t","applyTransform","m","min","max","vector","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","_calcOut","transformLocalCoord","elFrom","elTarget","inX","inY","transformCoordWithViewport","el","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut$1","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","isMiddleOrRightButtonOnMouseUpDown","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","start","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","sort","remaining","ts","minRun","force","invalidZErrorLogged","logInvalidZError","warn","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","traverse","update","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","beforeUpdate","__dirty","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","updateTransform","childrenRef","children","child","markRedraw","disp","__clipPaths","isNaN","textGuide","getTextGuideLine","textEl","getTextContent","addRoot","delRoot","idx","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","cos","PI","sinusoidalOut","sin","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","m1","m2","lerpNumber","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","iv","substr","op","ep","fname","params","split","alpha","pop","hsla2rgba","hsla","rgba","rgba2hsla","R","G","B","vMin","vMax","L","H","S","deltaR","deltaG","deltaB","lift","color","level","colorArr","stringify","toHex","fastLerp","normalizedValue","colors","leftIndex","floor","rightIndex","ceil","leftColor","rightColor","dv","fastMapToColor","lerp$1","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","lum","backgroundLum","random","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","needsAnimate","getAdditiveTrack","_additiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_doneList","_onframeList","_clip","_target","_loop","_additiveAnimator","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","getTrack","lastFinalKf","during","callback","isPaused","_doneCallback","doneList","forceAnimate","clip","animation","addClip","forwardToLast","removeClip","done","getClip","stopTracks","tracksKeys","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","addAnimator","animator","removeAnimator","Date","getTime","nextClip","finished","_startLoop","animate","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","scope","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","__localHandlerScope","__globalHandlerScope","isPointerCapturing","globalHandlerScope","create$1","identity","copy$1","mul$1","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","ct","scale$1","vx","vy","invert","clone$2","matrix","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","setLocalTransform","atan2","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","Point","other","equal","scalar","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","updateInnerText","forceUpdate","_textContent","textConfig","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","previousTextContent","removeTextContent","cfg","setTextGuideLine","guideLine","removeTextGuideLine","refreshHover","refresh","dirty","inHover","textContent","updateDuringAnimation","stopAnimation","leftAnimators","animateTo","animationProps","animateFrom","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","count","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","lastAnimator","revertedSource","reversedTarget","sourceClone","STYLE_MAGIC_KEY","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","rectContain","coord","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","_getAnimationStyleProps","mergedStyle","dispProto","invisible","culling","incremental","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","Q","Z","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","PathProxy","notSaveData","_xi","_yi","_x0","_y0","_saveData","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathData","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","Path","shape","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","buildPath","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","isZeroArea","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","SVGPath","isPathProxy","createPathOptions","pathProxy","innerOpts","createFromString","extendFromString","defaultOpts","mergePath","pathEls","pathList","pathEl","pathBundle","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpRect","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","ZRImage","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","CompoundPath","_updatePathDirty","paths","dirtyPath","IncrementalDisplayble","notClear","_displayables","_temporaryDisplayables","_cursor","getCursor","clearDisplaybles","clearTemporalDisplayables","addDisplayable","notPersistent","addDisplayables","displayables","getDisplayables","getTemporalDisplayables","eachPendingDisplayable","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","createOrUpdateImage","cbPayload","__zrImageSrc","pendingWrap","isImageReady","pending","Image","onload","onerror","imageOnLoad","__cachedImgObj","STYLE_REG","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","preparedOpts","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","contentWidth","ellipsisWidth","textLine","subLength","estimateLength","charCode","charCodeAt","parsePlainText","overflow","padding","truncate","calculatedLineHeight","lineHeight","truncateLineOverflow","lineOverflow","lines","wrapText","contentHeight","lineCount","outerHeight","outerWidth","truncateMinChar","maxWidth","RichTextToken","RichTextLine","tokens","RichTextContentBlock","parseRichText","contentBlock","topWidth","topHeight","wrapInfo","accumWidth","breakAll","exec","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","outer","line","token","tokenStyle","styleName","rich","textPadding","paddingH","tokenHeight","styleTokenWidth","tokenWidthNotSpecified","percentWidth","textBackgroundColor","bgImg","remainTruncWidth","block","isEmptyStr","newLine","strLines","linesWidths","tokenPadding","tokenPaddingH","outerWidth_1","parsePercent$1","isLineHolder","tokensLen","isLatin","ch","code","breakCharMap","isWordBreakChar","isBreakAll","lastAccumWidth","currentWord","currentWordWidth","chWidth","inWord","DEFAULT_RICH_TEXT_COLOR","DEFAULT_STROKE_LINE_WIDTH","DEFAULT_TEXT_ANIMATION_PROPS","fontSize","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","lineXLeft","lineXRight","_placeToken","parentBgColorDrawn","textWidth","textHeight","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","shadowStyle","makeFont","fontFamily","fontWeight","fontStyle","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","clockwise","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$2","IsogonShape","Isogon","dStep","deg","RingShape","r0","Ring","sin$1","cos$1","radian","RoseShape","Rose","SectorShape","Sector","PI$3","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","dim","proj","proj_1","useVML","painterCtors","instances","delInstance","totalLum","ZRender","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","handerProxy","getViewportRoot","flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","triggerRendered","refreshHoverImmediately","wakeUp","addHover","removeHover","clearHover","clearAnimation","pathToImage","eventHandler","disposeAll","getInstance","registerPainter","zrender","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","asc","getPrecision","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","quantile","ascArr","reformIntervals","littleThan","curr","currClose","close_1","close","lg","isNumeric","number","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","validateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","item","idNum","obj1","obj2","key1","key2","idOrName","isValidIdOrName","isNameSpecified","componentModel","makeInternalComponentId","idSuffix","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","queryDataIndex","payload","dataIndexInside","dataIndex","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","defaultMainType","queryOptionMap","parsedKey","queryType","includeMainTypes","queryOption","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","MULTIPLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getAttribute","getTooltipRenderMode","renderModeOption","TYPE_DELIMITER","IS_CONTAINER","IS_EXTENDED_CLASS","parseClassType","componentType","main","typeArr","checkClassType","isExtendedClass","clz","enableClassExtend","rootClz","mandatoryMethods","$constructor","method","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","color$1","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","defaultValue","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","ecIns","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","dataIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","styleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getterType","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","arg","JSON","toISOString","err","EMPTY_OBJ","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","normal","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","targetElEmphasisState","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","textStyle","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","inheritColor","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","richTextStyle","setTokenTextStyle","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","fillColor","strokeColor","baseline","disableBox","getFont","gTextStyleModel","PATH_COLOR","tmpRichText","TextStyleMixin","getTextColor","isEmphasis","getTextRect","LINE_STYLE_KEY_MAP","getLineStyle","LineStyleMixin","getLineDash","lineType","dotSize","dashSize","ITEM_STYLE_KEY_MAP","getItemStyle","ItemStyleMixin","getBorderLineDash","Model","rest","mergeOption","_doGet","parsePath","hasPath","pathFinal","resolveParentPath","isEmpty","restoreData","isAnimationEnabled","pathArr","base","getUID","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","componentTypeMain","enableTopologicalTravel","entity","dependencyGetter","topologicalTravel","targetNameList","fullNameList","makeDepndencyGraph","graph","stack","noEntryList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","originalDeps","successor","removeEdgeAndAdd","removeEdge","succComponentType","entryCount","thisItem","createDependencyGraphItem","availableDeps","getAvailableDependencies","dependentName","predecessor","thatItem","dep","inheritDefaultOption","superOption","subOption","langEN","month","monthAbbr","dayOfWeek","dayOfWeekAbbr","legend","selector","toolbox","brush","title","polygon","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","q","dateGetterName","hoursGetterName","minutesGetterName","secondsGetterName","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","mathMax$3","mathMin$3","_customShapeMap","innerLabel","extendShape","extendPathFromString","extendPath","registerShape","ShapeClass","getShapeClass","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","img","boundingRect","aspect","mergePath$1","pathRect","subPixelOptimizeLine$1","param","subPixelOptimizeRect$1","subPixelOptimize$1","animateOrSetProps","animationType","animatableModel","isFrom","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","fadeOutDisplayable","removeElementWithFadeOut","doRemove","isElementRemoved","animateOrSetLabel","labelModel","defaultTextGetter","valueAnimationEnabled","precisionOption","precision_1","interpolateValues_1","rawValues_1","getRawValue","isRawValueNumber_1","info","getDimensionInfo","host_1","nextValue","interpolated","startValues","labelText","updateLabel","initLabel","getTransform","ancestor","mat","applyTransform$1","invert$1","transformDirection","direction","hBase","vBase","vertex","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","clipPointsByRect","clipRectByRect","targetRect","createIcon","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","graphic","Text","IncrementalDisplayable","addCommas","parts","toCamelCase","upperCaseFirst","group1","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","concatTooltipHtml","html","dontEncodeHtml","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","isTimeAxis","axisType","axisValue","axisIndex","$vars","alias","formatTplSimple","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","capitalFirst","windowOpen","link","blank","open","opener","href","format$1","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getLayoutRect","positionInfo","containerRect","containerHeight","verticalMargin","horizontalMargin","positionElement","hv","boundingMode","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","hvIdx","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","ctor","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","globalDefault","gradientColor","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","useUTC","inner$1","getNearestColorPalette","requestColorNum","paletteNum","ColorPaletteMixin","clearColorPalette","colorIdx","colorNameMap","getColorFromPalette","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","Source","sourceFormat","seriesLayoutBy","startIndex","dimensionsDefine","dimensionsDetectCount","encodeDefine","metaRawOption","seriesDataToSource","BE_ORDINAL","Must","Might","Not","innerGlobalModel","detectSourceFormat","resetSourceDefaulter","datasetMap","createSource","sourceData","thisMetaRawOption","dimInfo","determineSourceDimensions","sourceHeader","dimensions","makeEncodeDefine","inheritSourceMetaRawOption","thisNew","cloneSourceShallow","normalizeDimensionsOption","dataArrayRows","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","nameMap","displayName","exist","maxLoop","firstIndex","dimensions_1","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","dimName","dimType","dimDefItem","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","registerInternalOptionCreator","creator","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeReplaceMergeInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","internalField","seriesIndices","mergeTheme","seiresIndex","seriesId","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","api","coordinateSystems","creater","getCoordinateSystems","register","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","timelineOpt","timeline","media","singleMedia","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","toObj","compatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","toolboxOpt","feature","featureOpt","tooltip","set$1","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","backwardCompat","seriesType","clipOverflow","clockWise","label","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","order","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","ExternalSource","getDimensionInfoAll","getRawHeaderItem","retrieveItemValue","rawItem","convertDataValue","rawVal","createExternalSource","sourceHeaderCount","extSource","dimsByName","dimDef","dimDefExt","rawValueGetter","externalTransformMap","registerExternalTransform","externalTransform","typeParsed","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","transOption","isFinal","applySingleDataTransform","upSourceList","transType","resultList","print","printStrArr","datasetIndex","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSource","upSourceMgr","_createSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","upSourceList_1","upMgr","errMsg","doThrow","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","inner$2","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","getRawData","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","isRichText","formatArrayValue","vertially","dimItem","tooltipDims","setEachItem","otherDims","markName","dimHead","dimHeadStr","valStr","formatSingleValue","mapDimensionsAll","tooltipDimLen","isValueArr","visualDrawType","formattedValue","colorEl","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","tmpArr","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","CHANGABLE_METHODS","wrapMethod","onDataSelfChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$3","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","ORIGIN_METHOD","RATE","THROTTLE_TYPE","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","createOrUpdate","fnAttr","rate","throttleType","originFn","lastThrottleType","lastRate","inner$4","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","colorCallback","setVisual","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","ariaModel","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","getConfig","seriesLabels_1","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","RegExp","userConfig","PI$4","loadingDefault","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","overallProgress","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","axisTick","axisLabel","splitLine","splitArea","crossStyle","iconStyle","controlStyle","timeAxis","logAxis","valueAxis","categoryAxis","symbol","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","symbolSize","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","PI2$5","CMD$3","DEFAULT_SEARCH_SPACE","getCandidateAnchor","outPt","outDir","projectPointToArc","projectPointToLine","limitToEnds","dx1","dy1","lineLen","projectedLen","projectPointToRect","tmpPt","nearestPointOnRect","pt","nearestPointOnPath","minDist","pt0","pt1","pt2","dir2","updateLabelLinePoints","labelLineModel","labelLine","labelGuideConfig","textGuideLineConfig","searchSpace","candidates","anchorPoint","anchor","targetTransform","targetInversedTransform","candidate","limitTurnAngle","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","tan","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","newAngle","setLabelLineState","isNormal","styleObj","buildLabelLinePath","moveLen","midPoint0","midPoint2","midPoint1","setLabelLineStyle","labelIgnoreNormal","stateShow","isLabelIgnored","getLabelLineStatesModels","labelLineName","prepareLayoutList","defaultAttr","localRect","isAxisAligned","minMargin","globalRect","obb","priority","layoutOption","computedLayoutOption","axisAligned","shiftLayout","xyDim","sizeDim","minBound","maxBound","balanceShift","lastPos","adjusted","totalShifts","shiftList","first","last","minGap","maxGap","updateMinMaxGap","squeezeGaps","takeBoundsGap","squeezeWhenBailout","gapThisBound","gapOtherBound","moveDir","moveFromMaxGap","remained","maxSqeezePercent","gaps","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","labelAttr","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","__image","createPattern","repeat","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","setTransform","viewRect","isDisplayableCulled","isClipPathChanged","prevClipPaths","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","isLast","viewWidth","viewHeight","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","i_1","len_1","returnFalse","createDom","newDom","newDomStyle","Layer","motionBlur","lastFrameAlpha","virtual","__used","__drawIndex","__startIndex","__endIndex","domStyle","onselectstart","webkitUserSelect","userSelect","webkitTapHighlightColor","domBack","ctxBack","getElementCount","initContext","createBackBuffer","clearAll","clearColor","haveMotionBLur","clearRect","clearColorGradientOrPattern","__canvasGradient","__painter","fillRect","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","parseInt10","isLayerValid","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","_opts","_singleCanvas","rootStyle","innerHTML","zlevelList","layers","_width","_getSize","_height","_domRoot","rootCanvas","mainLayer","getType","isSingleCanvas","getViewportRootOffset","viewportRoot","paintAll","_redrawId","_paintList","_paintHoverList","_hoverlayer","getLayer","getHoverLayer","redrawId","_updateLayerStatus","_doPaintList","needsRefreshHover","_compositeManually","self_1","eachBuiltinLayer","layerList","zi","useTimer","now","startTime","firstEl","dTime","draw","insertLayer","layersMap","prevLayer","prevDom","insertBefore","eachLayer","getLayers","updatePrevLayer","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","removeChild","display","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","ctx_1","renderToCanvas","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","canvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","assert$1","each$3","isFunction$1","isObject$2","version$1","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_BRUSH","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","__ECHARTS__DEFAULT__RENDERER__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","getZr","notMerge","lazyUpdate","setTheme","getDevicePixelRatio","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","url","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","top_1","right_1","bottom_1","canvasList_1","dpr_1","instances$1","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","statusChanged","newObj","pendingActions","getDispatcher","dispatcher","dirtyList","updateZ","updateStates","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","oldStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","echartsProto","one","wrapped","args2","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","connect","disConnect","disconnect","dispose$1","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","_add","_update","_remove","execute","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","keyArr","keyGetterName","existence","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","otherDim","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","DataDimensionInfo","isObject$3","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getRawValueFromStore","getIndicesCtor","prepareChunks","getRawIndexWithoutIndices","getRawIndexWithIndices","normalizeDimensions","validateDimensions","cloneListForMapAndSample","cloneDimStore","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","chunkSize","dimLen","rawExtent","originalChunkCount","emptyDataItem","sourceIdx","chunkIndex","chunkOffset","dimRawExtent","dimensionInfoMap","idList","nameRepeatCount","nameDimIdx","_nameDimIdx","itemId","_idDimIdx","dimStorage","nameDim","nameDimChunk","getIndices","newIndices","thisCount","buffer","chunkStore","dimStore","_getFast","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","dimExtent","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","mapArray","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","dimension","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","name_2","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","excludeDimensions","allDimensions","originalStorage","originalDimStore","newDimStore","cloneChunk","originalChunk","childECData","thisECData","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","getExtent","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","OrdinalMeta","_needCollect","needCollect","_deduplication","deduplication","createByAxisModel","dedplication","getOrdinal","category","_getOrCreateMap","roundNumber","intervalScaleNiceTicks","splitNumber","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","dataNum","expandSize","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cartesian","baseAxis","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","axisExtent","bandWidth","getBandWidth","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","axisKey","stackId","doCalBarWidthAndOffset","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","size","valueDim","baseDim","stacked","isValueAxisH","isHorizontal","valueAxisStart","getValueAxisStart","baseValue","baseCoord","dataToPoint","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","toGlobalCoord","dataToCoord","bisect","TimeScale","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","tickValue","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","getNeedCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","getCategories","boundaryGap","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","AxisModelCommonMixin","getCoordSysModel","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","circle","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","createList","dataStack$1","createScale","mixinAxisModelCommonMethods","helper","EPSILON$3","isAroundEqual$1","contain$2","Region","geometries","cp","exterior","loopGeo","interiors","transformTo","newRegion","decode","json","UTF8Encoding","jsonCompressed","encodeScale","UTF8Scale","geometry","coordinates","decodePolygon","encodeOffsets","coordinate","c2","prevX","prevY","parseGeoJSON","nameProperty","featureObj","region","inner$5","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","makeCategoryLabelsActually","labels","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","formattedLabel","rawLabel","cache","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","containData","fixExtentWithBands","coordToData","pointToData","getTicksCoords","getTickModel","ticksCoords","tickVal","alignWithLabel","fixOnBandTicksCoords","getMinorTicksCoords","minorTickModel","minorTicksCoords","getViewLabels","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","parseGeoJson","ecUtil","GRAPHIC_KEYS","graphic$1","LineSeriesModel","legendHoverLink","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","getDefaultLabel","interpolatedValues","labelDims","vals","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","setSymbolScale","emphasisState","fadeOut","keepLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","newIdx","symbolEl","oldIdx","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","valueAxisDim","baseDataOffset","stackResultDim","dataDimsForPoint","getStackedOnPoint","dataCoordInfo","stackedData","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","idxAdd","idxMinus","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","scaleAndAdd$1","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawNonMono","drawMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","ECPolylineShape","ECPolyline","ECPolygonShape","ECPolygon","stackedOnPoints","bbox","stackedOnBBox","stackedOnSmooth","createGridClipPath","hasAnimation","getArea","createPolarClipPath","sectorArea","createClipPath","isPointsSame","points1","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","gradient","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","createLineClipPath","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","polyline","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolyline","_newPolygon","_stackedOnPoints","_points","_updateAnimation","lineJoin","shouldBolderOnEmphasis","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","layoutPoints","isLargeRender","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","showMinLabel","showMaxLabel","minorSplitLine","primary","logBase","axisDefault","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","CartesianAxisModel","extraOption","realtimeSort","sortSeriesIndex","categorySortInfo","PI$5","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labelRotation","rawCategoryData","itemLabelModel","rawCategoryItem","collect","axesInfo","seriesInvolved","coordSysAxesInfo","coordSysMap","collectAxesInfo","collectSeriesInfo","globalTooltipModel","globalAxisPointerModel","linksOption","linkGroups","axisPointerEnabled","coordSysKey","makeKey","axesInfoInCoordSys","coordSysModel","baseTooltipModel","getAxes","saveTooltipAxisInfo","getTooltipAxes","triggerAxis","cross","tooltipAxes","baseAxes","otherAxes","fromTooltip","triggerTooltip","axisPointerModel","axisPointerShow","isHandleTrigger","makeAxisPointerModel","snap","involveSeries","axisInfo","useHandle","linkGroup","groupIndex","getLinkGroupIndex","mapper","tooltipAxisPointerModel","volatileOption","field","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","fixValue","getAxisInfo","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$6","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","condVal","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","addAxis","cartesian2DDimensions","Cartesian2D","axisX","axisY","toLocalCoord","clampData","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","borderType","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","isCoordinateSystemType","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$4","mathMin$4","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","_updateDrawMode","coordinateSystemType","isReorder","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","that","isHorizontalOrRadial","animationModel","axis2DModel","axisSort","_initSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","orderMap","_updateSort","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","__dataIndex","animateProperty","isRadial","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","hasLabelRotate","minShowLabelRadian","setNotShow","labelLineLen","labelLineLen2","midAngle","isLabelInside","notShowLabel","PiePiece","firstCreate","_updateLabel","labelTextEmphasisState","labelHoverModel","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$6","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels","ScatterSeriesModel","BOOST_SIZE_THRESHOLD","LargeSymbolPathShape","LargeSymbolPath","symbolProxy","symbolProxyShape","canBoost","softClipShape","findDataIndex","LargeSymbolDraw","_incremental","_setCommon","endIndex","byteOffset","_clearIncremental","isIncremental","extrudeShadow","ecData_1","ScatterView","_updateSymbolDraw","_getClipShape","clipArea","_nonShapeGraphicElements","compoundPath","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","existList","flattenedList","_flatten","elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","els","_elMap","_lastGraphicModel","graphicModel","_updateElements","_relocate","rootGroup","elOption","existEl","targetElParent","elOptionStyle","elOptionCleaned","getCleanedElOption","createEl","removeEl","__ecGraphicWidthOption","__ecGraphicHeightOption","setEventData","elOptions","apiWidth","apiHeight","parentEl","isParentRoot","__ecGraphicWidth","__ecGraphicHeight","containerInfo","bounding","graphicType","__ecGraphicId","existElParent","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","newType","existItem","findPointFromSeries","getTooltipPosition","isStacked","inner$7","axisTrigger","currTrigger","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputPayload","showValueMap","dataByCoordSys","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","noSnap","outputFinder","payloadInfo","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","getAxisTooltipData","nestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysType","coordSysMainType","dataByAxis","valueLabelOpt","seriesDataIndices","outputAxesInfo","valItem","tooltipOption","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","inner$8","each$4","initGlobalListeners","initialized","useHandler","doEnter","onLeave","dis","makeDispatchAction","dispatchTooltipFinally","pendings","showLen","showTip","hideLen","hideTip","actuallyPayload","unregister","AxisPointerView","triggerOn","inner$9","clone$3","bind$1","BaseAxisPointer","_dragging","_axisModel","_axisPointerModel","_lastValue","_lastStatus","_group","handle","_handle","makeElOption","graphicKey","_lastGraphicKey","moveAnimation","_moveAnimation","determineAnimation","createPointerEl","createLabelEl","doUpdateProps","updateProps$1","updatePointerEl","updateLabelEl","updateMandatoryProps","_renderHandle","isCategoryAxis","useSnap","pointerOption","pointerEl","labelEl","updateLabelShowHide","updateHandleTransform","handleModel","onmousemove","onmousedown","_onHandleDragMove","ondragend","_onHandleDragEnd","handleSize","_moveHandleToValue","getHandleTransProps","getHandleTransform","trans","_payloadInfo","lastProp","_doDispatchAxisPointer","cursorPoint","doClear","buildLabel","xy","xDimIndex","propsEqual","lastProps","equals_1","buildElStyle","axisPointerType","buildLabelElOption","labelPos","getValueLabel","paddings","confineInContainer","bgColor","params_1","axisDimension","seriesData","idxItem","getTransformedPosition","layoutInfo","buildCartesianSingleLabelElOption","textLayout","makeLineShape","makeRectShape","CartesianAxisPointer","otherExtent","pixelValue","elStyle","pointerShapeBuilder","currPosition","cursorOtherValue","tooltipOptions","getAxisDimIndex","shadow","AxisPointerModel","icon","TooltipModel","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","transitionDuration","enterable","each$5","toCamelCase$1","vendors","gCssText","mirrowPos","getFinalColor","finalNearPointColor","assembleArrow","arrowPosition","arrowPos","centerPos","styleCss","assembleTransition","transitionCurve","transitionText","vendorPrefix","assembleFont","assembleCssText","tooltipModel","boxShadow","borderName","camelCase","makeStyleCoord","appendToBody","zrPainter","zrViewportRoot","body","viewportRootOffset","TooltipHTMLContent","_show","_styleCoord","_enterable","_appendToBody","_container","onmouseenter","_hideTimeout","_inContent","onmouseleave","hideLater","_hideDelay","currentStyle","nearPointColor","styleCoord","offsetHeight","pointerEvents","setContent","setEnterable","getSize","isShow","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","TooltipRichContent","markerRich","suffix","startId","endId","bind$2","each$6","parsePercent$3","proxyRect","TooltipView","_renderMode","tooltipContent","_newLine","_tooltipContent","_tooltipModel","_ecModel","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","makeDispatchAction$1","_ticket","_manuallyAxisShowTip","pointInfo","manuallyHideTip","tooltipCascadedModel","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleDefaultHTML","singleParamsList","singleTooltipModel","itemCoordSys","seriesDefaultHTML","valueLabel","axisValueLabel","seriesTooltip","newMarkers","firstLine","singleDefaultHTMLStr","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","tooltipTrigger","tooltipOrder","defaultHtml","asyncTicket","subTooltipModel","nearPoint","_getNearestPoint","cbTicket","tooltipDataParams","contentSize","vAlign","viewSize","boxLayoutPosition","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","lastItem","indexAxis","lastIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","getDefaultSelectorOptions","LegendModel","_updateSelector","_updateData","legendData","hasSelected","potentialData","availableNames","isPotential","_availableNames","unSelect","toggleSelected","allSelect","inverseSelect","getOrient","itemGap","itemWidth","itemHeight","inactiveColor","inactiveBorderColor","selectorLabel","selectorPosition","selectorItemGap","selectorButtonGap","legendSelectActionHandler","isToggleSelect","legendModel","isItemSelected","layout$2","boxLayoutParams","viewportSize","makeBackground","curry$1","each$7","Group$1","LegendView","newlineDisabled","_contentGroup","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","isFirstRender","resetInner","itemAlign","renderInner","mainRect","layoutInner","_backgroundEl","contentGroup","legendDrawnMap","selectMode","legendSymbolType","itemGroup","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","_createSelector","selectorGroup","createSelectorButton","selectorItem","onclick","emphasisLabelModel","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","legendIndex","__legendDataIndex","contentRect","contentPos","selectorRect","selectorPos","orientIdx","hw","yx","dataName","isUseHoverLayer","legendFilter","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","mergeAndNormalizeLayoutParams","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","horizontal","vertical","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","raw","Group$2","WH","XY","ScrollableLegendView","_currentIndex","_containerGroup","_controllerGroup","__rectSize","controllerGroup","pageIconSizeArr","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","processMaxSize","_layoutContentAndController","containerGroup","controllerRect","showController","_showController","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","to","legendId","canJump","pageText","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","itemRect","itemInfo","winStart","targetDataIndex","defaultIndex","legendDataIdx","TitleModel","subtext","subtarget","subtextStyle","TitleView","titleModel","subtextStyleModel","subText","subTextEl","sublink","groupRect","alignStyle","fillLabel","inner$a","MarkerModel","createdBySelf","hostSeries","__hostSeries","markerOpt","markerModel","createMarkerModelFromSeries","getMarkerModelFromSeries","MarkPointModel","masterMarkerModel","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","markerType","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","numCalculate","coordArrValue","markerTypeCalculator","median","dataTransform","getAxisInfo$1","coordInfo","baseDataDim","valueDataDim","radiusAxis","angleAxis","valueIndex","dataDimToCoordDim","dataFilter$1","sum_1","count_1","inner$b","MarkerView","markerGroupMap","markKeep","drawGroup","seriesModelList","updateMarkerLayout","xPx","yPx","MarkPointView","markPointModel","mpModel","symbolDrawMap","createList$1","coordDimsInfos","dataOpt","MarkLineModel","straightLineProto","bezierCurveProto","StraightLineShape","CurveShape","isStraightLine","ECLinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","createSymbol$1","lineData","symbolSizeArr","createLine","setLinePoints","Line$1","_createLine","_updateCommonStl","getLinePath","blurLineStyle","selectLineStyle","lineState","lineStateStyle","stateStyle","labelNormalModel","__align","__verticalAlign","__position","__labelDistance","linePath","symbolFrom","symbolTo","invScale","fromPos","toPos","tangent","distanceX","distanceY","halfPercent","LineDraw","LineCtor","_LineCtor","lineDraw","oldLineData","_lineData","makeSeriesScope$1","_doUpdate","isEffectObject","lineNeedsDraw","newLineData","isPointNaN","pts","inner$c","markLineTransform","mlModel","itemArray","mlType","mlFrom","mlTo","normalizedItem","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","MarkLineView","markLineModel","mlData_1","fromData_1","toData_1","lineDrawMap","createList$2","fromData","toData","updateDataVisualAndLayout","fromSymbolSize","fromSymbol","toSymbolSize","toSymbol","optData","dimValueGetter$1","MarkAreaModel","inner$d","markAreaTransform","maModel","ltCoord","rbCoord","isInifinity$1","ifMarkAreaHasOnlyDim","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","MarkAreaView","markAreaModel","areaData_1","areaGroupMap","polygonGroup","areaData","createList$3","DATA_ZOOM_AXIS_DIMENSIONS","SERIES_COORDS","isCoordSupported","coordType","getAxisMainType","findEffectedDataZooms","axisRecords","effectedModels","effectedModelMap","dataZoomModel","addToEffected","foundNewLink","processSingle","isLinked","markAxisControlled","isLink","eachTargetAxis","axisIdxArr","collectReferCoordSysModelInfo","coordSysInfoWrap","infoList","infoMap","coordSysUid","axisModels","DataZoomAxisInfo","indexList","indexMap","axisCmptIdx","DataZoomModel","_autoThrottle","_noTarget","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","_doInit","realtime","_setDefaultThrottle","_updateRangeUse","_resetTarget","optionOrient","targetAxisIndexMap","_targetAxisInfoMap","hasAxisSpecified","_fillSpecifiedTargetAxis","_orient","_makeAutoOrientByTargetAxis","_fillAutoTargetAxisByOrient","refering","needAuto","setParallelAxis","gridModel_1","axModel","globalOption","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","noTarget","getFirstTargetAxisModel","firstAxisModel","getAxisProxy","getAxisModel","__dzAxisProxy","setRawRange","setCalculatedRange","getPercentRange","axisProxy","findRepresentativeAxisProxy","getDataPercentWindow","getValueRange","getDataValueWindow","firstProxy","axisDimList","hostedBy","getRangePropMode","filterMode","DataZoomView","SliderZoomModel","dataBackground","selectedDataBackground","fillerColor","handleIcon","handleStyle","moveHandleSize","moveHandleIcon","moveHandleStyle","showDetail","showDataShadow","zoomLock","brushSelect","brushStyle","sliderMove","handleEnds","handleIndex","minSpan","maxSpan","restrict","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","Rect$1","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","SliderZoomView","_onBrush","_onBrushEnd","_buildView","_updateView","thisGroup","_brushing","_resetLocation","_resetInterval","barGroup","sliderGroup","_renderDataShadow","_positionGroup","showMoveHandle","coordRect","_findCoordRect","ecSize","layoutParams","_location","_size","targetAxisModel","otherAxisInverse","_dataShadowInfo","_getViewExtent","clickPanel","_onClickPanel","_onBrushStart","_prepareDataShadowInfo","dataShadowSegs","getShadowDim","otherDataExtent","otherOffset","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","lastIsEmpty","otherCoord","createDataShadowGroup","isSelectedArea","getTargetSeriesModels","thisAxis","getOtherDim","thisDim","handles","handleLabels","filler","_onDragMove","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","_handleHeight","_handleWidth","handleColor","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","iconSize","moveZoneExpandSize","moveZone","ondragstart","_range","viewExtent","_handleEnds","_updateInterval","viewExtend","minMaxSpan","getMinMaxSpan","percentExtent","lastRange","nonRealtime","displaybles","handleInterval","handleHeight","segIntervals","segGroup","_updateDataInfo","labelTexts","dataInterval","calculateDataWindow","valueWindow","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelPrecision","valueStr","showOrHide","changed","_dispatchZoomAction","localPoint","_brushStart","_brushStartTime","brushRect","brushShape","brushEndTime","_updateBrushRect","mouseX","mouseY","brushStart","endPoint","dataZoomId","coordSysInfoList","each$8","asc$1","AxisProxy","_dimName","_axisIndex","_dataZoomModel","_valueWindow","_percentWindow","axisMainType","_minMaxSpan","_dataExtent","percentWindow","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","targetSeries","calculateDataExtent","_updateMinMaxSpan","dataWindow","_setAxisModel","filterData","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","percentSpan","valueSpan","eachAxisModel","proxyList","percentRange","valueRange","endValue","InsideZoomModel","disabled","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","ATTR","take","resourceKey","userKey","getStore","release","uKey","isTaken","RoamController","mousedownHandler","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","controlType","_opt","isDragging","isPinching","_pinching","setPointerChecker","pointerChecker","isAvailableBehavior","oldX","oldY","newX","newY","shouldZoom","shouldMove","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","scrollDelta","controller","behaviorToCheck","contollerEvent","settings","inner$e","apiInner","coordSysRecordMap","coordSysRecord","dataZoomInfoMap","dzReferCoordSysWrap","dzCoordSysInfo","createCoordSysRecord","dzReferCoordSysInfo","getRange","firstDzInfo","firstDzKey","disposeCoordSysRecord","controllerParams","mergeControllerParams","containsPoint","setViewInfoToCoordSysRecord","dzInfo","disposeCoordSysRecordIfNeeded","coordSysKeyArr","dzUid","typePriority","dataZoomInfo","oneType","InsideZoomView","pan","getRangeHandlers","scrollMove","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","pixel","makeMover","getPercentDelta","percentDelta","oldPoint","newPoint","radiusExtent","getRadiusAxis","angleExtent","getAngleAxis","pointToCoord","ToolboxFeature","registerFeature","getFeature","ToolboxModel","featureName","Feature","itemSize","showTitle","ToolboxView","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","featureModel","newTitle","isUserFeatureName","unusable","createIconPaths","setIconStatus","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconsMap","titlesMap","pathEmphasisState","__title","hoverStyle","defaultTextPosition","titleText","emphasisTextConfig","emphasisTextState","emphasisTextStyle","needPutOnTop","topOffset","SaveAsImage","MouseEvent","$a","download","evt","bubbles","cancelable","dispatchEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","blob","Blob","tab","write","INNER_STACK_KEYWORD","radioTypes","MagicType","availableIcons","seriesOptGenreator","generateNewSeriesTypes","newSeriesOpt","radio","seriesOptions","tiledLang","titleLang","isStack","currentType","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","assembleSeriesWithCategoryAxis","groups","tables","headers","columns","assembleOtherSeries","getContentFromModel","trim$1","isTSVFormat","itemSplitRegex","parseTSVContents","tsv","tsvLines","header","parseListContents","hasName","parseContents","blockMetaList","blocks","blockMeta","DataView","viewMain","textarea","optionToContent","contentToOption","htmlOrDom","readOnly","buttonContainer","buttonStyle","closeButton","refreshButton","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","tryMergeDataOption","originalData","newVal","newSeriesOptList","BRUSH_PANEL_GLOBAL","mathMin$5","mathMax$5","mathPow$2","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","sw","nw","se","DEFAULT_BRUSH_OPT","transformable","brushMode","removeOnClick","baseUID","BrushController","_covers","_handlers","_uid","pointerHandlers","enableBrush","brushOption","_mounted","_brushType","_doDisableBrush","brushType","_doEnableBrush","_enableGlobalPan","_brushOption","setPanels","panelOpts","panels_1","_panels","panelId","enableGlobalPan","_transform","updateCovers","coverConfigList","coverConfig","tmpIdPrefix","oldCovers","newCovers","creatingCover","_creatingCover","oldGetKey","getKey","addOrUpdate","cover","__brushOption","newBrushInternal","endCreating","createCover","updateCoverAfterCreation","unmount","clearCovers","coverRenderers","coverRenderer","getCoverRenderer","updateCoverShape","updateCommon","getPanelByPoint","localCursorPoint","panels","panel","pn","isTargetByCursor","getPanelByCover","covers","originalLength","trigger$1","areas","isEnd","shouldShowCover","getTrackEnds","createBaseRectCover","rectRangeConverter","edgeNameSequences","makeStyle","driftRect","nameSequence","updateBaseRect","localRange","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection1","getGlobalDirection2","pointsToRect","clipByPanel","formatRectRange","getTransform$1","localDirName","inverseMap","localDirNameSeq","dirNameSequence","rectRange","toRectRange","localDelta","toLocalDelta","dirName","ind","fromRectRange","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","_creatingPanel","thisBrushOption","eventParams","determineBrushType","coverBrushOption","getCreatingRange","defaultBrushType","handleDragEnd","getLineRenderer","returnInput","localTrack","ends","xyIndex","getLinearBrushOtherExtent","IRRELEVANT_EXCLUDES","onIrrelevantElement","targetCoordSysModel","makeRectPanelClipPath","normalizeRect","localPoints","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","BrushTargetManager","_targetInfoList","foundCpts","parseFinder$1","targetInfoBuilders","builder","include","setOutputRanges","matchOutputRanges","area","coordRange","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","setInputRanges","rangeOffset","getScales","makePanelOpts","getDefaultBrushType","getPanelRect","controlSeries","targetInfoList","areaPanelId","targetInfoMatchers","formatMinMax","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","panelRectBuilders","xAxisDeclared","yAxisDeclared","geoModels","geoModel","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","sizeOrigin","each$9","inner$f","newSnapshot","storedSnapshots","getStoreSnapshots","snapshot","clear$1","snapshots","SelectDataZoomModel","SelectDataZoomView","each$a","DATA_ZOOM_ID_BASE","DataZoomFeature","brushController","updateZoomBtnStatus","updateBackBtnStatus","handlers","eventParam","brushTargetManager","makeAxisFinder","setBatch","findDataZoom","minValueSpan","maxValueSpan","found","dzModel","has","nextActive","isZoomActive","dataZoomSelectActive","dzFeatureModel","xAxisId","yAxisId","zoomActive","dzOptions","finderResult","buildInternalOptions","axisIndexPropName","$fromToolbox","RestoreOption","createElementNS","CMD$4","NONE","mathRound","mathSin$3","mathCos$3","PI$6","PI2$7","degree","EPSILON$4","round4","isAroundZero$1","pathHasFill","pathHasStroke","reduceNumberString","toPrecision","svgEl","attrXLink","setAttributeNS","bindStyle","strokeWidth","strokeScale_1","pathDataToString","dataLength","nData","dThetaPositive","isCircle","unifiedTheta","wrapSVGBuildPath","__svgBuildPath","oldBuildPath_1","__svgPathStr","svgPath","__svgEl","svgImage","HTMLImageElement","__imageSrc","TEXT_ALIGN_TO_ANCHOR","adjustTextY$1","svgText","textSvgEl","textSvgElStyle","equals","newLen","oldLen","editLength","maxEditLength","bestPath","newPos","oldPos","extractCommon","added","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","clonePath","pushComponent","buildValues","commonCount","componentPos","componentLen","arrayDiff","MARK_UNUSED","MARK_USED","Definable","zrId","svgRoot","tagNames","markLabel","domName","nextId","_domName","_zrId","_svgRoot","_tagNames","_markLabel","getDefs","isForceCreating","defs","getElementsByTagName","defs_1","contains","doUpdate","onUpdate","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","markDomUsed","removeUnused","getSvgProxy","getSvgElement","isLinearGradient","isRadialGradient","GradientManager","addWithoutUpdate","svgElement","that_1","__dom","markUsed","updateDom","stop_1","hex","ClippathManager","isText","clipPathEl","domKey","svgProxy","cloneNode","_textDom","ShadowManager","_shadowDom","_shadowDomId","domChildArr","domChild","stdDx","stdDy","stdDeviation","parseInt10$1","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","createMethodNotSupport","svgDom","bgRoot","_gradientManager","_clipPathManager","_shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","_backgroundNode","bgNode","visibleList","listLen","newVisibleList","prevSvgElement","_getDefs","viewportStyle","encodeURIComponent","outerHTML","util"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function mergeAll(targetAndSources, overwrite) {\r\n var result = targetAndSources[0];\r\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\r\n result = merge(result, targetAndSources[i], overwrite);\r\n }\r\n return result;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function find(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n return arr[i];\r\n }\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function concatArray(a, b) {\r\n var newArray = new a.constructor(a.length + b.length);\r\n for (var i = 0; i < a.length; i++) {\r\n newArray[i] = a[i];\r\n }\r\n var offset = a.length;\r\n for (var i = 0; i < b.length; i++) {\r\n newArray[i + offset] = b[i];\r\n }\r\n return newArray;\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n var zrUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $override: $override,\n guid: guid,\n logError: logError,\n clone: clone,\n merge: merge,\n mergeAll: mergeAll,\n extend: extend,\n defaults: defaults,\n createCanvas: createCanvas,\n indexOf: indexOf,\n inherits: inherits,\n mixin: mixin,\n isArrayLike: isArrayLike,\n each: each,\n map: map,\n reduce: reduce,\n filter: filter,\n find: find,\n keys: keys,\n bind: bind,\n curry: curry,\n isArray: isArray,\n isFunction: isFunction,\n isString: isString,\n isStringSafe: isStringSafe,\n isNumber: isNumber,\n isObject: isObject,\n isBuiltInObject: isBuiltInObject,\n isTypedArray: isTypedArray,\n isDom: isDom,\n isGradientObject: isGradientObject,\n isPatternObject: isPatternObject,\n isRegExp: isRegExp,\n eqNaN: eqNaN,\n retrieve: retrieve,\n retrieve2: retrieve2,\n retrieve3: retrieve3,\n slice: slice,\n normalizeCssArray: normalizeCssArray,\n assert: assert,\n trim: trim,\n setAsPrimitive: setAsPrimitive,\n isPrimitive: isPrimitive,\n HashMap: HashMap,\n createHashMap: createHashMap,\n concatArray: concatArray,\n createObject: createObject,\n hasOwn: hasOwn,\n noop: noop\n });\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function set(out, a, b) {\r\n out[0] = a;\r\n out[1] = b;\r\n return out;\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n var length = len;\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n var lengthSquare = lenSquare;\r\n function mul(out, v1, v2) {\r\n out[0] = v1[0] * v2[0];\r\n out[1] = v1[1] * v2[1];\r\n return out;\r\n }\r\n function div(out, v1, v2) {\r\n out[0] = v1[0] / v2[0];\r\n out[1] = v1[1] / v2[1];\r\n return out;\r\n }\r\n function dot(v1, v2) {\r\n return v1[0] * v2[0] + v1[1] * v2[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function negate(out, v) {\r\n out[0] = -v[0];\r\n out[1] = -v[1];\r\n return out;\r\n }\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var vector = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create,\n copy: copy,\n clone: clone$1,\n set: set,\n add: add,\n scaleAndAdd: scaleAndAdd,\n sub: sub,\n len: len,\n length: length,\n lenSquare: lenSquare,\n lengthSquare: lengthSquare,\n mul: mul,\n div: div,\n dot: dot,\n scale: scale,\n normalize: normalize,\n distance: distance,\n dist: dist,\n distanceSquare: distanceSquare,\n distSquare: distSquare,\n negate: negate,\n lerp: lerp,\n applyTransform: applyTransform,\n min: min,\n max: max\n });\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len;) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n var _calcOut = [];\r\n function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\r\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\r\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\r\n }\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut$1 = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut$1, el, ex, ey)) {\r\n out.zrX = _calcOut$1[0];\r\n out.zrY = _calcOut$1[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\r\n function isMiddleOrRightButtonOnMouseUpDown(e) {\r\n return e.which === 2 || e.which === 3;\r\n }\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n while (el) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n if (el.__dirty) {\r\n el.update();\r\n }\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.markRedraw();\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n if (typeof window !== 'undefined') {\r\n requestAnimationFrame = (window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame;\r\n }\r\n else {\r\n requestAnimationFrame = function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n }\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssAngle(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 360 ? 360 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function lerpNumber(a, b, p) {\r\n return a + (b - a) * p;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n if (str.charAt(0) === '#') {\r\n if (str.length === 4) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (str.length === 7) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === str.length) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function rgba2hsla(rgba) {\r\n if (!rgba) {\r\n return;\r\n }\r\n var R = rgba[0] / 255;\r\n var G = rgba[1] / 255;\r\n var B = rgba[2] / 255;\r\n var vMin = Math.min(R, G, B);\r\n var vMax = Math.max(R, G, B);\r\n var delta = vMax - vMin;\r\n var L = (vMax + vMin) / 2;\r\n var H;\r\n var S;\r\n if (delta === 0) {\r\n H = 0;\r\n S = 0;\r\n }\r\n else {\r\n if (L < 0.5) {\r\n S = delta / (vMax + vMin);\r\n }\r\n else {\r\n S = delta / (2 - vMax - vMin);\r\n }\r\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\r\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\r\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\r\n if (R === vMax) {\r\n H = deltaB - deltaG;\r\n }\r\n else if (G === vMax) {\r\n H = (1 / 3) + deltaR - deltaB;\r\n }\r\n else if (B === vMax) {\r\n H = (2 / 3) + deltaG - deltaR;\r\n }\r\n if (H < 0) {\r\n H += 1;\r\n }\r\n if (H > 1) {\r\n H -= 1;\r\n }\r\n }\r\n var hsla = [H * 360, S, L];\r\n if (rgba[3] != null) {\r\n hsla.push(rgba[3]);\r\n }\r\n return hsla;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function toHex(color) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\r\n }\r\n }\r\n function fastLerp(normalizedValue, colors, out) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n out = out || [];\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = colors[leftIndex];\r\n var rightColor = colors[rightIndex];\r\n var dv = value - leftIndex;\r\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\r\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\r\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\r\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\r\n return out;\r\n }\r\n var fastMapToColor = fastLerp;\r\n function lerp$1(normalizedValue, colors, fullOutput) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = parse(colors[leftIndex]);\r\n var rightColor = parse(colors[rightIndex]);\r\n var dv = value - leftIndex;\r\n var color = stringify([\r\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\r\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\r\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\r\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\r\n ], 'rgba');\r\n return fullOutput\r\n ? {\r\n color: color,\r\n leftIndex: leftIndex,\r\n rightIndex: rightIndex,\r\n value: value\r\n }\r\n : color;\r\n }\r\n var mapToColor = lerp$1;\r\n function modifyHSL(color, h, s, l) {\r\n var colorArr = parse(color);\r\n if (color) {\r\n colorArr = rgba2hsla(colorArr);\r\n h != null && (colorArr[0] = clampCssAngle(h));\r\n s != null && (colorArr[1] = parseCssFloat(s));\r\n l != null && (colorArr[2] = parseCssFloat(l));\r\n return stringify(hsla2rgba(colorArr), 'rgba');\r\n }\r\n }\r\n function modifyAlpha(color, alpha) {\r\n var colorArr = parse(color);\r\n if (colorArr && alpha != null) {\r\n colorArr[3] = clampCssFloat(alpha);\r\n return stringify(colorArr, 'rgba');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\r\n function random() {\r\n var r = Math.round(Math.random() * 255);\r\n var g = Math.round(Math.random() * 255);\r\n var b = Math.round(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\n\n var color = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse,\n lift: lift,\n toHex: toHex,\n fastLerp: fastLerp,\n fastMapToColor: fastMapToColor,\n lerp: lerp$1,\n mapToColor: mapToColor,\n modifyHSL: modifyHSL,\n modifyAlpha: modifyAlpha,\n stringify: stringify,\n lum: lum,\n random: random\n });\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.interpolable\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, this._additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + this._additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._doneList = [];\r\n this._onframeList = [];\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimator = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.during = function (callback) {\r\n this._onframeList.push(callback);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._tracks = null;\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n if (self._additiveAnimator && !self._additiveAnimator._clip) {\r\n self._additiveAnimator = null;\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n for (var i = 0; i < self._onframeList.length; i++) {\r\n self._onframeList[i](self._target, percent);\r\n }\r\n },\r\n ondestroy: function () {\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].setFinished();\r\n }\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n var animation = this.animation;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n if (animation) {\r\n animation.removeClip(clip);\r\n }\r\n this._clip = null;\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted && this.animation) {\r\n this.animation.removeClip(this._clip);\r\n this._clip = null;\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function () {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n if (this.stage.update) {\r\n this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this.__localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this.__globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this.__localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this.__localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this.__globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this.__globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul$1(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\r\n function clone$2(a) {\r\n var b = create$1();\r\n copy$1(b, a);\r\n return b;\r\n }\n\n var matrix = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create$1,\n identity: identity,\n copy: copy$1,\n mul: mul$1,\n translate: translate,\n rotate: rotate,\n scale: scale$1,\n invert: invert,\n clone: clone$2\n });\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul$1(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul$1(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul$1(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n this.updateInnerText();\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + 255 * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function () {\r\n this.useState(PRESERVED_NORMAL_STATE, false);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var count = animators.length;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n }\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n if (animators.length > 0 && typeof cfg.during === 'function') {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i]\r\n .done(done)\r\n .start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0 || cfg.force) {\r\n var existsAnimators = animatable.animators;\r\n var lastAnimator = void 0;\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n lastAnimator = existsAnimators[i];\r\n }\r\n }\r\n if (!additive && lastAnimator) {\r\n var allAborted = lastAnimator.stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, lastAnimator);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? lastAnimator : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this._getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n var delta = endAngle - startAngle;\r\n endAngle = startAngle + delta;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = 1 - data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, !!anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n if (i === 1) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var scaleX = (rx > ry) ? 1 : rx / ry;\r\n var scaleY = (rx > ry) ? ry / rx : 1;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse) {\r\n ctx.translate(cx, cy);\r\n ctx.rotate(psi);\r\n ctx.scale(scaleX, scaleY);\r\n ctx.arc(0, 0, r, startAngle, endAngle, anticlockwise);\r\n ctx.scale(1 / scaleX, 1 / scaleY);\r\n ctx.rotate(-psi);\r\n ctx.translate(-cx, -cy);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta % PI2$4 < 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (anticlockwise) {\r\n var tmp_1 = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp_1);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(data, lineWidth, isStroke, x, y) {\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i > 1) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathData, x, y) {\r\n return containPath(pathData, 0, false, x, y);\r\n }\r\n function containStroke$4(pathData, lineWidth, x, y) {\r\n return containPath(pathData, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.6) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke()) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n w = Math.max(w, this.strokeContainThreshold || 4);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathData = this.path.data;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathData, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathData, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath (path, m) {\r\n var data = path.data;\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < data.length;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\r\n function extendFromString(str, defaultOpts) {\r\n var innerOpts = createPathOptions(str, defaultOpts);\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.applyTransform = innerOpts.applyTransform;\r\n _this.buildPath = innerOpts.buildPath;\r\n return _this;\r\n }\r\n return Sub;\r\n }(SVGPath));\r\n return Sub;\r\n }\r\n function mergePath(pathEls, opts) {\r\n var pathList = [];\r\n var len = pathEls.length;\r\n for (var i = 0; i < len; i++) {\r\n var pathEl = pathEls[i];\r\n if (!pathEl.path) {\r\n pathEl.createPathProxy();\r\n }\r\n if (pathEl.shapeChanged()) {\r\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\r\n }\r\n pathList.push(pathEl.path);\r\n }\r\n var pathBundle = new Path(opts);\r\n pathBundle.createPathProxy();\r\n pathBundle.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.appendPath(pathList);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n };\r\n return pathBundle;\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline (points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier (points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top'\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n function parseXML(svg) {\r\n if (isString(svg)) {\r\n var parser = new DOMParser();\r\n svg = parser.parseFromString(svg, 'text/xml');\r\n }\r\n var svgNode = svg;\r\n if (svgNode.nodeType === 9) {\r\n svgNode = svgNode.firstChild;\r\n }\r\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\r\n svgNode = svgNode.nextSibling;\r\n }\r\n return svgNode;\r\n }\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: cb, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.opacity = retrieve2(style.opacity, 1);\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var shadowStyle = (rectEl || imgEl).style;\r\n shadowStyle.shadowBlur = style.shadowBlur || 0;\r\n shadowStyle.shadowColor = style.shadowColor || 'transparent';\r\n shadowStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n shadowStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$2 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$2 / n;\r\n var deg = -PI$2 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var SectorShape = (function () {\r\n function SectorShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SectorShape;\r\n }());\r\n var Sector = (function (_super) {\r\n __extends(Sector, _super);\r\n function Sector(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Sector.prototype.getDefaultShape = function () {\r\n return new SectorShape();\r\n };\r\n Sector.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r0 + x, unitY * r0 + y);\r\n ctx.lineTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n }\r\n ctx.closePath();\r\n };\r\n Sector.prototype.isZeroArea = function () {\r\n return this.shape.startAngle === this.shape.endAngle\r\n || this.shape.r === this.shape.r0;\r\n };\r\n return Sector;\r\n }(Path));\r\n Sector.prototype.type = 'sector';\n\n var PI$3 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$3 / n) / cos$2(PI$3 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n var instances = {};\r\n function delInstance(id) {\r\n delete instances[id];\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: bind(this.flush, this)\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this._needsRefresh = true;\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update();\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n var triggerRendered;\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(true);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered');\r\n }\r\n else {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > 10) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover) {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n instances[zr.id] = zr;\r\n return zr;\r\n }\r\n function dispose(zr) {\r\n zr.dispose();\r\n }\r\n function disposeAll() {\r\n for (var key in instances) {\r\n if (instances.hasOwnProperty(key)) {\r\n instances[key].dispose();\r\n }\r\n }\r\n instances = {};\r\n }\r\n function getInstance(id) {\r\n return instances[id];\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\r\n var version = '5.0.0-alpha.1';\n\n var zrender = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init,\n dispose: dispose,\n disposeAll: disposeAll,\n getInstance: getInstance,\n registerPainter: registerPainter,\n version: version\n });\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function asc(arr) {\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n return arr;\r\n }\r\n function getPrecision(val) {\r\n val = +val;\r\n if (isNaN(val)) {\r\n return 0;\r\n }\r\n var e = 1;\r\n var count = 0;\r\n while (Math.round(val * e) / e !== val) {\r\n e *= 10;\r\n count++;\r\n }\r\n return count;\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n var MAX_SAFE_INTEGER = 9007199254740991;\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function quantile(ascArr, p) {\r\n var H = (ascArr.length - 1) * p + 1;\r\n var h = Math.floor(H);\r\n var v = +ascArr[h - 1];\r\n var e = H - h;\r\n return e ? v + e * (ascArr[h] - v) : v;\r\n }\r\n function reformIntervals(list) {\r\n list.sort(function (a, b) {\r\n return littleThan(a, b, 0) ? -1 : 1;\r\n });\r\n var curr = -Infinity;\r\n var currClose = 1;\r\n for (var i = 0; i < list.length;) {\r\n var interval = list[i].interval;\r\n var close_1 = list[i].close;\r\n for (var lg = 0; lg < 2; lg++) {\r\n if (interval[lg] <= curr) {\r\n interval[lg] = curr;\r\n close_1[lg] = (!lg ? 1 - currClose : 1);\r\n }\r\n curr = interval[lg];\r\n currClose = close_1[lg];\r\n }\r\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\r\n list.splice(i, 1);\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return list;\r\n function littleThan(a, b, lg) {\r\n return a.interval[lg] < b.interval[lg]\r\n || (a.interval[lg] === b.interval[lg]\r\n && ((a.close[lg] - b.close[lg] === (!lg ? 1 : -1))\r\n || (!lg && littleThan(a, b, 1))));\r\n }\r\n }\r\n function isNumeric(v) {\r\n return v - parseFloat(v) >= 0;\r\n }\n\n var number = /*#__PURE__*/Object.freeze({\n __proto__: null,\n linearMap: linearMap,\n parsePercent: parsePercent$2,\n round: round$1,\n asc: asc,\n getPrecision: getPrecision,\n getPrecisionSafe: getPrecisionSafe,\n getPixelPrecision: getPixelPrecision,\n getPercentWithPrecision: getPercentWithPrecision,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,\n remRadian: remRadian,\n isRadianAroundZero: isRadianAroundZero,\n parseDate: parseDate,\n quantity: quantity,\n quantityExponent: quantityExponent,\n nice: nice,\n quantile: quantile,\n reformIntervals: reformIntervals,\n isNumeric: isNumeric\n });\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n cmptOption.id == null || validateIdOrName(cmptOption.id);\r\n cmptOption.name == null || validateIdOrName(cmptOption.name);\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n var nextIdx = 0;\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = obj1[attr];\r\n var key2 = obj2[attr];\r\n return key1 != null && key2 != null && key1 + '' === key2 + '';\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return val + '';\r\n }\r\n function validateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n assert(isValidIdOrName(idOrName), '`' + idOrName + '` is invalid id or name. Must be a string.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function makeInternalComponentId(idSuffix) {\r\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = Math.round(Math.random() * 5);\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (mainType !== defaultMainType && value == null)\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: mainType === defaultMainType,\r\n enableAll: true,\r\n enableNone: true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n var MULTIPLE_REFERRING = { useDefault: false, enableAll: true, enableNone: true };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\r\n function getTooltipRenderMode(renderModeOption) {\r\n if (renderModeOption === 'auto') {\r\n return env.domSupported ? 'html' : 'richText';\r\n }\r\n else {\r\n return renderModeOption || 'html';\r\n }\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper (properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color$1) {\r\n if (typeof color$1 !== 'string') {\r\n return color$1;\r\n }\r\n var liftedColor = liftedColorCache.get(color$1);\r\n if (!liftedColor) {\r\n liftedColor = lift(color$1, -0.1);\r\n liftedColorCache.put(color$1, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange) {\r\n if ((el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(ecIns) {\r\n var model = ecIns.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? ecIns.getViewOfSeriesModel(componentModel)\r\n : ecIns.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, ecIns, isBlur) {\r\n var ecModel = ecIns.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(ecIns);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = ecIns.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = ecIns.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, ecIns) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, ecIns, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, ecIns, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, ecIns) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n if (focus != null) {\r\n var ecData = getECData(el);\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var styleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getterType) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = model[getterType || styleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : val;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\n\n var EMPTY_OBJ = {};\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : null;\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n textContent = targetEl.getTextContent();\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n stateObj.ignore = !retrieve2(stateModel.getShallow('show'), showNormal);\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'opacity',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var lineWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (lineWidth != null) {\r\n textStyle.lineWidth = lineWidth;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n var style = getLineStyle(this, excludes);\r\n style.lineDash = this.getLineDash(style.lineWidth);\r\n return style;\r\n };\r\n LineStyleMixin.prototype.getLineDash = function (lineWidth) {\r\n if (lineWidth == null) {\r\n lineWidth = 1;\r\n }\r\n var lineType = this.get('type');\r\n var dotSize = Math.max(lineWidth, 2);\r\n var dashSize = lineWidth * 4;\r\n return (lineType === 'solid' || lineType == null)\r\n ? false\r\n : lineType === 'dashed'\r\n ? [dashSize, dashSize]\r\n : [dotSize, dotSize];\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n var style = getItemStyle(this, excludes, includes);\r\n var lineDash = this.getBorderLineDash();\r\n lineDash && (style.lineDash = lineDash);\r\n return style;\r\n };\r\n ItemStyleMixin.prototype.getBorderLineDash = function () {\r\n var lineType = this.get('borderType');\r\n return (lineType === 'solid' || lineType == null) ? null\r\n : (lineType === 'dashed' ? [5, 5] : [1, 1]);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var stack = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (stack.length) {\r\n var currComponentType = stack.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n throw new Error('Circle dependency may exists');\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n stack.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}:{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, lang, isUTC) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, lang, isUTC);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n var time = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ONE_SECOND: ONE_SECOND,\n ONE_MINUTE: ONE_MINUTE,\n ONE_HOUR: ONE_HOUR,\n ONE_DAY: ONE_DAY,\n ONE_YEAR: ONE_YEAR,\n defaultLeveledFormatter: defaultLeveledFormatter,\n fullLeveledFormatter: fullLeveledFormatter,\n primaryTimeUnits: primaryTimeUnits,\n timeUnits: timeUnits,\n pad: pad,\n getPrimaryTimeUnit: getPrimaryTimeUnit,\n isPrimaryTimeUnit: isPrimaryTimeUnit,\n getDefaultFormatPrecisionOfInterval: getDefaultFormatPrecisionOfInterval,\n format: format,\n leveledFormat: leveledFormat,\n getUnitFromValue: getUnitFromValue,\n getUnitValue: getUnitValue,\n fullYearGetterName: fullYearGetterName,\n monthGetterName: monthGetterName,\n dateGetterName: dateGetterName,\n hoursGetterName: hoursGetterName,\n minutesGetterName: minutesGetterName,\n secondsGetterName: secondsGetterName,\n millisecondsGetterName: millisecondsGetterName,\n fullYearSetterName: fullYearSetterName,\n monthSetterName: monthSetterName,\n dateSetterName: dateSetterName,\n hoursSetterName: hoursSetterName,\n minutesSetterName: minutesSetterName,\n secondsSetterName: secondsSetterName,\n millisecondsSetterName: millisecondsSetterName\n });\n\n var mathMax$3 = Math.max;\r\n var mathMin$3 = Math.min;\r\n var _customShapeMap = {};\r\n var innerLabel = makeInner();\r\n function extendShape(opts) {\r\n return Path.extend(opts);\r\n }\r\n var extendPathFromString = extendFromString;\r\n function extendPath(pathData, opts) {\r\n return extendPathFromString(pathData, opts);\r\n }\r\n function registerShape(name, ShapeClass) {\r\n _customShapeMap[name] = ShapeClass;\r\n }\r\n function getShapeClass(name) {\r\n if (_customShapeMap.hasOwnProperty(name)) {\r\n return _customShapeMap[name];\r\n }\r\n }\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n var mergePath$1 = mergePath;\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function subPixelOptimizeLine$1(param) {\r\n subPixelOptimizeLine(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n function subPixelOptimizeRect$1(param) {\r\n subPixelOptimizeRect(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n var subPixelOptimize$1 = subPixelOptimize;\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n duration = 200;\r\n animationEasing = 'cubicOut';\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n }\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(), el.attr(props), cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, function (percent) {\r\n during && during(percent);\r\n });\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function animateOrSetLabel(animationType, el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n var valueAnimationEnabled = labelModel && labelModel.get('valueAnimation');\r\n if (valueAnimationEnabled) {\r\n var precisionOption = labelModel.get('precision');\r\n var precision_1 = !precisionOption || precisionOption === 'auto'\r\n ? 0\r\n : precisionOption;\r\n var interpolateValues_1;\r\n var rawValues_1 = seriesModel.getRawValue(dataIndex);\r\n var isRawValueNumber_1 = false;\r\n if (typeof rawValues_1 === 'number') {\r\n isRawValueNumber_1 = true;\r\n interpolateValues_1 = rawValues_1;\r\n }\r\n else {\r\n interpolateValues_1 = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type !== 'ordinal') {\r\n interpolateValues_1.push(rawValues_1[i]);\r\n }\r\n }\r\n }\r\n var text = el.getTextContent();\r\n var host_1 = text && innerLabel(text);\r\n host_1 && (host_1.startValue = host_1.nextValue);\r\n var during = function (percent) {\r\n var text = el.getTextContent();\r\n if (!text || !host_1) {\r\n return;\r\n }\r\n var interpolated;\r\n if (isRawValueNumber_1) {\r\n var value = interpolateNumber(host_1.startValue || 0, interpolateValues_1, percent);\r\n interpolated = round$1(value, precision_1);\r\n }\r\n else {\r\n interpolated = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = rawValues_1[i];\r\n }\r\n else {\r\n var startValues = host_1.startValue;\r\n var value = startValues == null\r\n ? rawValues_1[i]\r\n : interpolateNumber(startValues && startValues[i] ? startValues[i] : 0, interpolateValues_1[i], percent);\r\n interpolated[i] = round$1(value), precision_1;\r\n }\r\n }\r\n }\r\n host_1.nextValue = interpolated;\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n labelFetcher: seriesModel,\r\n defaultText: defaultTextGetter\r\n ? defaultTextGetter(interpolated)\r\n : interpolated + ''\r\n }, { normal: labelModel }, interpolated);\r\n text.style.text = labelText.normal;\r\n text.dirty();\r\n };\r\n var props = {};\r\n animateOrSetProps(animationType, el, props, animatableModel, dataIndex, null, during);\r\n }\r\n }\r\n function updateLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('update', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function initLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('init', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function getTransform(target, ancestor) {\r\n var mat = identity([]);\r\n while (target && target !== ancestor) {\r\n mul$1(mat, target.getLocalTransform(), mat);\r\n target = target.parent;\r\n }\r\n return mat;\r\n }\r\n function applyTransform$1(target, transform, invert$1) {\r\n if (transform && !isArrayLike(transform)) {\r\n transform = Transformable.getLocalTransform(transform);\r\n }\r\n if (invert$1) {\r\n transform = invert([], transform);\r\n }\r\n return applyTransform([], target, transform);\r\n }\r\n function transformDirection(direction, transform, invert) {\r\n var hBase = (transform[4] === 0 || transform[5] === 0 || transform[0] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[0]);\r\n var vBase = (transform[4] === 0 || transform[5] === 0 || transform[2] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[2]);\r\n var vertex = [\r\n direction === 'left' ? -hBase : direction === 'right' ? hBase : 0,\r\n direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0\r\n ];\r\n vertex = applyTransform$1(vertex, transform, invert);\r\n return Math.abs(vertex[0]) > Math.abs(vertex[1])\r\n ? (vertex[0] > 0 ? 'right' : 'left')\r\n : (vertex[1] > 0 ? 'bottom' : 'top');\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\r\n function clipPointsByRect(points, rect) {\r\n return map(points, function (point) {\r\n var x = point[0];\r\n x = mathMax$3(x, rect.x);\r\n x = mathMin$3(x, rect.x + rect.width);\r\n var y = point[1];\r\n y = mathMax$3(y, rect.y);\r\n y = mathMin$3(y, rect.y + rect.height);\r\n return [x, y];\r\n });\r\n }\r\n function clipRectByRect(targetRect, rect) {\r\n var x = mathMax$3(targetRect.x, rect.x);\r\n var x2 = mathMin$3(targetRect.x + targetRect.width, rect.x + rect.width);\r\n var y = mathMax$3(targetRect.y, rect.y);\r\n var y2 = mathMin$3(targetRect.y + targetRect.height, rect.y + rect.height);\r\n if (x2 >= x && y2 >= y) {\r\n return {\r\n x: x,\r\n y: y,\r\n width: x2 - x,\r\n height: y2 - y\r\n };\r\n }\r\n }\r\n function createIcon(iconStr, opt, rect) {\r\n var innerOpts = extend({ rectHover: true }, opt);\r\n var style = innerOpts.style = { strokeNoScale: true };\r\n rect = rect || { x: -1, y: -1, width: 2, height: 2 };\r\n if (iconStr) {\r\n return iconStr.indexOf('image://') === 0\r\n ? (style.image = iconStr.slice(8),\r\n defaults(style, rect),\r\n new ZRImage(innerOpts))\r\n : (makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center'));\r\n }\r\n }\r\n function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\r\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\r\n var p = points[i];\r\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\r\n return true;\r\n }\r\n p2 = p;\r\n }\r\n }\r\n function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\r\n var mx = a2x - a1x;\r\n var my = a2y - a1y;\r\n var nx = b2x - b1x;\r\n var ny = b2y - b1y;\r\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\r\n if (nearZero(nmCrossProduct)) {\r\n return false;\r\n }\r\n var b1a1x = a1x - b1x;\r\n var b1a1y = a1y - b1y;\r\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\r\n if (q < 0 || q > 1) {\r\n return false;\r\n }\r\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\r\n if (p < 0 || p > 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function crossProduct2d(x1, y1, x2, y2) {\r\n return x1 * y2 - x2 * y1;\r\n }\r\n function nearZero(val) {\r\n return val <= (1e-6) && val >= -(1e-6);\r\n }\r\n registerShape('circle', Circle);\r\n registerShape('ellipse', Ellipse);\r\n registerShape('sector', Sector);\r\n registerShape('ring', Ring);\r\n registerShape('polygon', Polygon);\r\n registerShape('polyline', Polyline);\r\n registerShape('rect', Rect);\r\n registerShape('line', Line);\r\n registerShape('bezierCurve', BezierCurve);\r\n registerShape('arc', Arc);\n\n var graphic = /*#__PURE__*/Object.freeze({\n __proto__: null,\n extendShape: extendShape,\n extendPath: extendPath,\n registerShape: registerShape,\n getShapeClass: getShapeClass,\n makePath: makePath,\n makeImage: makeImage,\n mergePath: mergePath$1,\n resizePath: resizePath,\n subPixelOptimizeLine: subPixelOptimizeLine$1,\n subPixelOptimizeRect: subPixelOptimizeRect$1,\n subPixelOptimize: subPixelOptimize$1,\n updateProps: updateProps,\n initProps: initProps,\n removeElement: removeElement,\n removeElementWithFadeOut: removeElementWithFadeOut,\n isElementRemoved: isElementRemoved,\n updateLabel: updateLabel,\n initLabel: initLabel,\n getTransform: getTransform,\n applyTransform: applyTransform$1,\n transformDirection: transformDirection,\n groupTransition: groupTransition,\n clipPointsByRect: clipPointsByRect,\n clipRectByRect: clipRectByRect,\n createIcon: createIcon,\n linePolygonIntersect: linePolygonIntersect,\n lineLineIntersect: lineLineIntersect,\n Group: Group,\n Image: ZRImage,\n Text: ZRText,\n Circle: Circle,\n Ellipse: Ellipse,\n Sector: Sector,\n Ring: Ring,\n Polygon: Polygon,\n Polyline: Polyline,\n Rect: Rect,\n Line: Line,\n BezierCurve: BezierCurve,\n Arc: Arc,\n IncrementalDisplayable: IncrementalDisplayble,\n CompoundPath: CompoundPath,\n LinearGradient: LinearGradient,\n RadialGradient: RadialGradient,\n BoundingRect: BoundingRect,\n OrientedBoundingRect: OrientedBoundingRect,\n Point: Point,\n Path: Path\n });\n\n function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\r\n deprecateLog('getTextRect is deprecated.');\r\n var textEl = new ZRText({\r\n style: {\r\n text: text,\r\n font: font,\r\n align: align,\r\n verticalAlign: verticalAlign,\r\n padding: padding,\r\n rich: rich,\r\n overflow: truncate ? 'truncate' : null,\r\n lineHeight: lineHeight\r\n }\r\n });\r\n return textEl.getBoundingRect();\r\n }\n\n function addCommas(x) {\r\n if (isNaN(x)) {\r\n return '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n function toCamelCase(str, upperCaseFirst) {\r\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (upperCaseFirst && str) {\r\n str = str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n return str;\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': '''\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n function concatTooltipHtml(html, value, dontEncodeHtml) {\r\n return (dontEncodeHtml ? html : \"\" + encodeHTML(html) + \"\")\r\n + (value ? '' : '')\r\n + encodeHTML(value)\r\n + (value ? '' : '');\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var isTimeAxis = paramsList[0].axisType && paramsList[0].axisType.indexOf('time') >= 0;\r\n if (isTimeAxis) {\r\n var axisValue = paramsList[0].data[paramsList[0].axisIndex];\r\n var date = parseDate(axisValue);\r\n return format(date, tpl);\r\n }\r\n else {\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n }\r\n return tpl;\r\n }\r\n function formatTplSimple(tpl, param, encode) {\r\n each(param, function (value, key) {\r\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\r\n });\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n var markerId = opt.markerId || 'X';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? ''\r\n : '';\r\n }\r\n else {\r\n return {\r\n renderMode: renderMode,\r\n content: '{marker' + markerId + '|} ',\r\n style: {\r\n color: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\r\n function capitalFirst(str) {\r\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\r\n }\r\n function windowOpen(link, target) {\r\n if (target === '_blank' || target === 'blank') {\r\n var blank = window.open();\r\n blank.opener = null;\r\n blank.location.href = link;\r\n }\r\n else {\r\n window.open(link, target);\r\n }\r\n }\n\n var format$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addCommas: addCommas,\n toCamelCase: toCamelCase,\n normalizeCssArray: normalizeCssArray$1,\n encodeHTML: encodeHTML,\n concatTooltipHtml: concatTooltipHtml,\n formatTpl: formatTpl,\n formatTplSimple: formatTplSimple,\n getTooltipMarker: getTooltipMarker,\n formatTime: formatTime,\n capitalFirst: capitalFirst,\n windowOpen: windowOpen,\n truncateText: truncateText,\n getTextRect: getTextRect\n });\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var box = boxLayout;\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function positionElement(el, positionInfo, containerRect, margin, opt) {\r\n var h = !opt || !opt.hv || opt.hv[0];\r\n var v = !opt || !opt.hv || opt.hv[1];\r\n var boundingMode = opt && opt.boundingMode || 'all';\r\n if (!h && !v) {\r\n return;\r\n }\r\n var rect;\r\n if (boundingMode === 'raw') {\r\n rect = el.type === 'group'\r\n ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0)\r\n : el.getBoundingRect();\r\n }\r\n else {\r\n rect = el.getBoundingRect();\r\n if (el.needLocalTransform()) {\r\n var transform = el.getLocalTransform();\r\n rect = rect.clone();\r\n rect.applyTransform(transform);\r\n }\r\n }\r\n var layoutRect = getLayoutRect(defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin);\r\n var dx = h ? layoutRect.x - rect.x : 0;\r\n var dy = v ? layoutRect.y - rect.y : 0;\r\n if (boundingMode === 'raw') {\r\n el.x = dx;\r\n el.y = dy;\r\n }\r\n else {\r\n el.x += dx;\r\n el.y += dy;\r\n }\r\n el.markRedraw();\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#ffbf25',\r\n '#ef6868',\r\n '#ffa086',\r\n '#b25790',\r\n '#fe719b',\r\n '#59d9d2',\r\n '#46a9ee'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var inner$1 = makeInner();\r\n function getNearestColorPalette(colors, requestColorNum) {\r\n var paletteNum = colors.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (colors[i].length > requestColorNum) {\r\n return colors[i];\r\n }\r\n }\r\n return colors[paletteNum - 1];\r\n }\r\n var ColorPaletteMixin = (function () {\r\n function ColorPaletteMixin() {\r\n }\r\n ColorPaletteMixin.prototype.clearColorPalette = function () {\r\n inner$1(this).colorIdx = 0;\r\n inner$1(this).colorNameMap = {};\r\n };\r\n ColorPaletteMixin.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n scope = scope || this;\r\n var scopeFields = inner$1(scope);\r\n var colorIdx = scopeFields.colorIdx || 0;\r\n var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {};\r\n if (colorNameMap.hasOwnProperty(name)) {\r\n return colorNameMap[name];\r\n }\r\n var defaultColorPalette = normalizeToArray(this.get('color', true));\r\n var layeredColorPalette = this.get('colorLayer', true);\r\n var colorPalette = ((requestColorNum == null || !layeredColorPalette)\r\n ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum));\r\n colorPalette = colorPalette || defaultColorPalette;\r\n if (!colorPalette || !colorPalette.length) {\r\n return;\r\n }\r\n var color = colorPalette[colorIdx];\r\n if (name) {\r\n colorNameMap[name] = color;\r\n }\r\n scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\r\n return color;\r\n };\r\n return ColorPaletteMixin;\r\n }());\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var Source = (function () {\r\n function Source(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectCount = fields.dimensionsDetectCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n Source.seriesDataToSource = function (data) {\r\n return new Source({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n };\r\n return Source;\r\n }());\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var dimInfo = determineSourceDimensions(sourceData, sourceFormat, thisMetaRawOption.seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new Source({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: thisMetaRawOption.seriesLayoutBy,\r\n dimensionsDefine: dimInfo.dimensionsDefine,\r\n startIndex: dimInfo.startIndex,\r\n dimensionsDetectCount: dimInfo.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function inheritSourceMetaRawOption(opt) {\r\n return defaults(opt.thisNew, opt.parent);\r\n }\r\n function cloneSourceShallow(source) {\r\n return new Source({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectCount: source.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (item, index) {\r\n item = extend({}, isObject(item) ? item : { name: item });\r\n if (item.name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function registerInternalOptionCreator(mainType, creator) {\r\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\r\n internalOptionCreatorMap.set(mainType, creator);\r\n }\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeReplaceMergeInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeReplaceMergeInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (!newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.name === name; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n componentTypes.push(componentType);\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seiresIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap(idOrName);\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n validateIdOrName(idOrNameItem);\r\n keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n validateIdOrName(idOrName);\r\n return filter(cmpts, function (cmpt) { return cmpt && cmpt[attr] === idOrName + ''; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeReplaceMergeInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, ColorPaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getModel',\r\n 'getOption',\r\n 'getViewOfComponentModel',\r\n 'getViewOfSeriesModel',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var timelineOptions = [];\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var timelineOpt = rawOption.timeline;\r\n if (rawOption.baseOption) {\r\n baseOption = rawOption.baseOption;\r\n }\r\n if (timelineOpt || rawOption.options) {\r\n baseOption = baseOption || {};\r\n timelineOptions = (rawOption.options || []).slice();\r\n }\r\n if (rawOption.media) {\r\n baseOption = baseOption || {};\r\n var media = rawOption.media;\r\n each(media, function (singleMedia) {\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n if (!baseOption) {\r\n baseOption = rawOption;\r\n }\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOpt;\r\n }\r\n each([baseOption].concat(timelineOptions)\r\n .concat(map(mediaList, function (media) {\r\n return media.option;\r\n })), function (option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n });\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptions,\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function compatStyle (option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set$1(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function backwardCompat (option, isTheme) {\r\n compatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set$1(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack (ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !(sourceParam instanceof Source)\r\n ? Source.seriesDataToSource(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var offset = this._dimSize * idx;\r\n for (var i = 0; i < this._dimSize; i++) {\r\n out[i] = this._data[offset + i];\r\n }\r\n return out;\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var col = rawData[dimsDef[i].name];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfoAll = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawHeaderItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveItemValue = function (rawItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertDataValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(data, sourceFormat, dimsDef, sourceHeaderCount) {\r\n var extSource = new ExternalSource();\r\n extSource.data = data;\r\n extSource.sourceFormat = sourceFormat;\r\n extSource.sourceHeaderCount = sourceHeaderCount;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n assert(!hasOwn(dimsByName, name), 'dimension name \"' + name + '\" duplicated.');\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.getRawDataItem = bind(rawItemGetter, null, data, sourceHeaderCount, dimensions);\r\n extSource.getRawHeaderItem = function (dataIndex) {\r\n if (dataIndex < sourceHeaderCount) {\r\n return rawItemGetter(data, 0, dimensions, dataIndex);\r\n }\r\n };\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveItemValue = function (rawItem, dimIndex) {\r\n if (rawItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(rawItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.getDimensionInfoAll = bind(getDimensionInfoAll, null, dimensions);\r\n return extSource;\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function getDimensionInfoAll(dimensions) {\r\n return dimensions;\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n assert(type, 'Must have a `type` when `registerTransform`.');\r\n var typeParsed = type.split(':');\r\n assert(typeParsed.length === 2, 'Name must include namespace like \"ns:regression\".');\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n }\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n for (var i = 0, len = pipedTransOption.length; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n var isFinal = i === len - 1;\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, isFinal);\r\n if (!isFinal) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(rawTransOption, upSourceList, infoForPrint, isFinal) {\r\n assert(upSourceList.length, 'Must have at least one upstream dataset.');\r\n var transOption = rawTransOption;\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n assert(externalTransform, 'Can not find transform on type \"' + transType + '\".');\r\n var sourceList = map(upSourceList, function (source) {\r\n return createExternalSource(source.data, source.sourceFormat, source.dimensionsDefine, source.startIndex);\r\n });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n source: sourceList[0],\r\n sourceList: sourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (isFinal && transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n return [\r\n '--- datasetIndex: ' + infoForPrint.datasetIndex + '---',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions),\r\n '- transform result sourceHeader: ' + extSource.sourceHeader,\r\n '------'\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n assert(isObject(result), 'A transform should not return some empty results.');\r\n assert(isObject(result.data) || isArrayLike(result.data), 'Result data should be object or array in data transform.');\r\n var resultMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSourceList[0].metaRawOption,\r\n thisNew: {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: result.sourceHeader,\r\n dimensions: result.dimensions\r\n }\r\n });\r\n return createSource(result.data, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSource ? upSource.metaRawOption : null,\r\n thisNew: this._createSourceMetaRawOption()\r\n });\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._createSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n var sourceList;\r\n var upstreamSignList;\r\n if (transformOption) {\r\n var upSourceList_1 = [];\r\n upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n upSourceList_1.push(upMgr.getSource());\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n sourceList = applyDataTransform(transformOption, upSourceList_1, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n if (upMgrList.length !== 1) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n var upMgr = upMgrList[0];\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult);\r\n upstreamSignList = [upMgr._getVersionSign()];\r\n sourceList = [cloneSourceShallow(upSource)];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._createSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var inner$2 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$2(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$2(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$2(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$2(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$2(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$2(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var series = this;\r\n renderMode = renderMode || 'html';\r\n var newLine = renderMode === 'html' ? '' : '\\n';\r\n var isRichText = renderMode === 'richText';\r\n var markers = {};\r\n var markerId = 0;\r\n function formatArrayValue(value) {\r\n var vertially = reduce(value, function (vertially, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return vertially |= (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, 0);\r\n var result = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n var dimType = dimInfo.type;\r\n var markName = 'sub' + series.seriesIndex + 'at' + markerId;\r\n var dimHead = getTooltipMarker({\r\n color: colorStr,\r\n type: 'subItem',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content;\r\n var valStr = (vertially\r\n ? ''\r\n + dimHeadStr + encodeHTML(dimInfo.displayName || '-')\r\n + ''\r\n : '')\r\n + ''\r\n + encodeHTML(dimType === 'ordinal'\r\n ? val + ''\r\n : dimType === 'time'\r\n ? (multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val))\r\n : addCommas(val))\r\n + '';\r\n valStr && result.push(\"
\" + valStr + \"
\");\r\n if (isRichText) {\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n }\r\n }\r\n var newLine = vertially ? (isRichText ? '\\n' : '') : '';\r\n var content = newLine + result.join(newLine || '');\r\n return {\r\n renderMode: renderMode,\r\n content: content,\r\n style: markers\r\n };\r\n }\r\n function formatSingleValue(val) {\r\n return {\r\n renderMode: renderMode,\r\n content: encodeHTML(addCommas(val)),\r\n style: markers\r\n };\r\n }\r\n var data = this.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = this.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style[this.visualDrawType];\r\n var colorStr;\r\n if (isString(color)) {\r\n colorStr = color;\r\n }\r\n else if (color && color.colorStops) {\r\n colorStr = (color.colorStops[0] || {}).color;\r\n }\r\n colorStr = colorStr || 'transparent';\r\n var formattedValue = (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? formatArrayValue(value)\r\n : tooltipDimLen\r\n ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0]))\r\n : formatSingleValue(isValueArr ? value[0] : value);\r\n var content = isRichText\r\n ? formattedValue.content\r\n : (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? '
'\r\n + formattedValue.content + '
'\r\n : ''\r\n + formattedValue.content + '';\r\n var markName = series.seriesIndex + 'at' + markerId;\r\n var colorEl = getTooltipMarker({\r\n color: colorStr,\r\n type: 'item',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n var name = data.getName(dataIndex);\r\n var seriesName = this.name;\r\n if (!isNameSpecified(this)) {\r\n seriesName = '';\r\n }\r\n seriesName = seriesName\r\n ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ' ')\r\n : '';\r\n colorStr = isString(colorEl) ? colorEl : colorEl.content;\r\n var html = '';\r\n if (!isRichText) {\r\n seriesName = seriesName\r\n ? !multipleSeries\r\n ? \"
\" + seriesName + \"
\"\r\n : \"\" + seriesName + \"\"\r\n : '';\r\n html = !multipleSeries\r\n ? seriesName + (\"
\")\r\n + colorStr\r\n + (name\r\n ? \"\" + encodeHTML(name) + \"\" + content\r\n : content) + '
'\r\n : \"
\" + colorStr + seriesName + content + \"
\";\r\n }\r\n else {\r\n html = !multipleSeries\r\n ? seriesName + (seriesName ? '\\n' : '') + ''\r\n + colorStr\r\n + (name\r\n ? encodeHTML(name) + \": \" + content\r\n : content) + ''\r\n : \"\" + colorStr + seriesName + \": \" + content;\r\n }\r\n return { html: html, markers: markers };\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = ColorPaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, ColorPaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(data.CHANGABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataSelfChange, seriesModel));\r\n });\r\n }\r\n function onDataSelfChange(seriesModel) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd(this.count());\r\n }\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner () {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = fields.large;\r\n var originalProgressive = fields.progressiveRender;\r\n var large = fields.large = pipelineContext && pipelineContext.large;\r\n var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;\r\n return (!!((originalLarge ^ large) || (originalProgressive ^ progressive)) && 'reset');\r\n };\r\n }\n\n var inner$3 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$3(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$3(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n var ORIGIN_METHOD = '\\0__throttleOriginMethod';\r\n var RATE = '\\0__throttleRate';\r\n var THROTTLE_TYPE = '\\0__throttleType';\r\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\r\n function createOrUpdate(obj, fnAttr, rate, throttleType) {\r\n var fn = obj[fnAttr];\r\n if (!fn) {\r\n return;\r\n }\r\n var originFn = fn[ORIGIN_METHOD] || fn;\r\n var lastThrottleType = fn[THROTTLE_TYPE];\r\n var lastRate = fn[RATE];\r\n if (lastRate !== rate || lastThrottleType !== throttleType) {\r\n if (rate == null || !throttleType) {\r\n return (obj[fnAttr] = originFn);\r\n }\r\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\r\n fn[ORIGIN_METHOD] = originFn;\r\n fn[THROTTLE_TYPE] = throttleType;\r\n fn[RATE] = rate;\r\n }\r\n return fn;\r\n }\r\n function clear(obj, fnAttr) {\r\n var fn = obj[fnAttr];\r\n if (fn && fn[ORIGIN_METHOD]) {\r\n obj[fnAttr] = fn[ORIGIN_METHOD];\r\n }\r\n }\n\n var inner$4 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$4(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$4(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || (rawIdx + ''), colorScope, dataAll.count());\r\n }\r\n });\r\n });\r\n }\r\n };\n\n function aria (dom, ecModel) {\r\n var ariaModel = ecModel.getModel('aria');\r\n if (!ariaModel.get('show')) {\r\n return;\r\n }\r\n else if (ariaModel.get('description')) {\r\n dom.setAttribute('aria-label', ariaModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = 0;\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n ++seriesCnt;\r\n }, this);\r\n var maxDataCnt = ariaModel.get('data.maxCount') || 10;\r\n var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n ariaLabel = replace(getConfig('general.withTitle'), {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = getConfig('general.withoutTitle');\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? 'series.multiple.prefix'\r\n : 'series.single.prefix';\r\n ariaLabel += replace(getConfig(prefix), { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var seriesTpl = 'series.'\r\n + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\r\n seriesLabel = getConfig(seriesName\r\n ? seriesTpl + 'withName'\r\n : seriesTpl + 'withoutName');\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n window.data = data;\r\n if (data.count() > maxDataCnt) {\r\n seriesLabel += replace(getConfig('data.partialData'), {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += getConfig('data.allData');\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n dataLabels.push(replace(name_1\r\n ? getConfig('data.withName')\r\n : getConfig('data.withoutName'), {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n seriesLabel += dataLabels\r\n .join(getConfig('data.separator.middle'))\r\n + getConfig('data.separator.end');\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n ariaLabel += seriesLabels_1\r\n .join(getConfig('series.multiple.separator.middle'))\r\n + getConfig('series.multiple.separator.end');\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getConfig(path) {\r\n var userConfig = ariaModel.get(path);\r\n if (userConfig == null) {\r\n var pathArr = path.split('.');\r\n var result = ecModel.getLocale('aria');\r\n for (var i = 0; i < pathArr.length; ++i) {\r\n result = result[pathArr[i]];\r\n }\r\n return result;\r\n }\r\n else {\r\n return userConfig;\r\n }\r\n }\r\n function getTitle() {\r\n var title = ecModel.getModel('title').option;\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocale(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n var PI$4 = Math.PI;\r\n function loadingDefault (api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#c23531',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$4 / 2,\r\n endAngle: -PI$4 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$4 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$4 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.ecInstance.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap\r\n || (stageHandlerRecord.seriesTaskMap = createHashMap());\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = seriesTaskMap.get(pipelineId)\r\n || seriesTaskMap.set(pipelineId, createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n task.dispose();\r\n seriesTaskMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap\r\n || createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = agentStubMap.get(pipelineId);\r\n if (!stub) {\r\n stub = agentStubMap.set(pipelineId, createTask({ reset: stubReset, onDirty: stubOnDirty }));\r\n overallTask.dirty();\r\n }\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n agentStubMap.each(function (stub, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n stub.dispose();\r\n overallTask.dirty();\r\n agentStubMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#eee';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n axisTick: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n axisLabel: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n type: 'dashed',\r\n color: '#aaa'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53',\r\n '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: '#333',\r\n tooltip: {\r\n axisPointer: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n crossStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n color: '#000'\r\n }\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n normal: {\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n dataZoom: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n itemStyle: {\r\n normal: {\r\n color: colorPalette[1]\r\n }\r\n },\r\n label: {\r\n normal: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n controlStyle: {\r\n normal: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\n\n var PI2$5 = Math.PI * 2;\r\n var CMD$3 = PathProxy.CMD;\r\n var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\r\n function getCandidateAnchor(pos, distance, rect, outPt, outDir) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n switch (pos) {\r\n case 'top':\r\n outPt.set(rect.x + width / 2, rect.y - distance);\r\n outDir.set(0, -1);\r\n break;\r\n case 'bottom':\r\n outPt.set(rect.x + width / 2, rect.y + height + distance);\r\n outDir.set(0, 1);\r\n break;\r\n case 'left':\r\n outPt.set(rect.x - distance, rect.y + height / 2);\r\n outDir.set(-1, 0);\r\n break;\r\n case 'right':\r\n outPt.set(rect.x + width + distance, rect.y + height / 2);\r\n outDir.set(1, 0);\r\n break;\r\n }\r\n }\r\n function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n x /= d;\r\n y /= d;\r\n var ox = x * r + cx;\r\n var oy = y * r + cy;\r\n if (Math.abs(startAngle - endAngle) % PI2$5 < 1e-4) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$5;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$5;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$5 >= startAngle && angle + PI2$5 <= endAngle)) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n var x1 = r * Math.cos(startAngle) + cx;\r\n var y1 = r * Math.sin(startAngle) + cy;\r\n var x2 = r * Math.cos(endAngle) + cx;\r\n var y2 = r * Math.sin(endAngle) + cy;\r\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\r\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\r\n if (d1 < d2) {\r\n out[0] = x1;\r\n out[1] = y1;\r\n return Math.sqrt(d1);\r\n }\r\n else {\r\n out[0] = x2;\r\n out[1] = y2;\r\n return Math.sqrt(d2);\r\n }\r\n }\r\n function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\r\n var dx = x - x1;\r\n var dy = y - y1;\r\n var dx1 = x2 - x1;\r\n var dy1 = y2 - y1;\r\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n dx1 /= lineLen;\r\n dy1 /= lineLen;\r\n var projectedLen = dx * dx1 + dy * dy1;\r\n var t = projectedLen / lineLen;\r\n if (limitToEnds) {\r\n t = Math.min(Math.max(t, 0), 1);\r\n }\r\n t *= lineLen;\r\n var ox = out[0] = x1 + t * dx1;\r\n var oy = out[1] = y1 + t * dy1;\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n function projectPointToRect(x1, y1, width, height, x, y, out) {\r\n if (width < 0) {\r\n x1 = x1 + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y1 = y1 + height;\r\n height = -height;\r\n }\r\n var x2 = x1 + width;\r\n var y2 = y1 + height;\r\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\r\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n var tmpPt = [];\r\n function nearestPointOnRect(pt, rect, out) {\r\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\r\n out.set(tmpPt[0], tmpPt[1]);\r\n return dist;\r\n }\r\n function nearestPointOnPath(pt, path, out) {\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n var minDist = Infinity;\r\n var data = path.data;\r\n var x = pt.x;\r\n var y = pt.y;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var d = minDist;\r\n switch (cmd) {\r\n case CMD$3.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$3.L:\r\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.C:\r\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.Q:\r\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i <= 1) {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\r\n break;\r\n case CMD$3.Z:\r\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n if (d < minDist) {\r\n minDist = d;\r\n out.set(tmpPt[0], tmpPt[1]);\r\n }\r\n }\r\n return minDist;\r\n }\r\n var pt0 = new Point();\r\n var pt1 = new Point();\r\n var pt2 = new Point();\r\n var dir = new Point();\r\n var dir2 = new Point();\r\n function updateLabelLinePoints(target, labelLineModel) {\r\n if (!target) {\r\n return;\r\n }\r\n var labelLine = target.getTextGuideLine();\r\n var label = target.getTextContent();\r\n if (!(label && labelLine)) {\r\n return;\r\n }\r\n var labelGuideConfig = target.textGuideLineConfig || {};\r\n var points = [[0, 0], [0, 0], [0, 0]];\r\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\r\n var labelRect = label.getBoundingRect().clone();\r\n labelRect.applyTransform(label.getComputedTransform());\r\n var minDist = Infinity;\r\n var anchorPoint = labelGuideConfig && labelGuideConfig.anchor;\r\n var targetTransform = target.getComputedTransform();\r\n var targetInversedTransform = targetTransform && invert([], targetTransform);\r\n var len = labelLineModel.get('length2') || 0;\r\n if (anchorPoint) {\r\n pt2.copy(anchorPoint);\r\n }\r\n for (var i = 0; i < searchSpace.length; i++) {\r\n var candidate = searchSpace[i];\r\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\r\n Point.scaleAndAdd(pt1, pt0, dir, len);\r\n pt1.transform(targetInversedTransform);\r\n var boundingRect = target.getBoundingRect();\r\n var dist = anchorPoint ? anchorPoint.distance(pt1)\r\n : (target instanceof Path\r\n ? nearestPointOnPath(pt1, target.path, pt2)\r\n : nearestPointOnRect(pt1, boundingRect, pt2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n pt1.transform(targetTransform);\r\n pt2.transform(targetTransform);\r\n pt2.toArray(points[0]);\r\n pt1.toArray(points[1]);\r\n pt0.toArray(points[2]);\r\n }\r\n }\r\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\r\n labelLine.setShape({ points: points });\r\n }\r\n var tmpArr = [];\r\n var tmpProjPoint = new Point();\r\n function limitTurnAngle(linePoints, minTurnAngle) {\r\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\r\n return;\r\n }\r\n minTurnAngle = minTurnAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt0, pt1);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(dir2);\r\n var minTurnAngleCos = Math.cos(minTurnAngle);\r\n if (minTurnAngleCos < angleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\r\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\r\n return;\r\n }\r\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt1, pt0);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(surfaceNormal);\r\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\r\n if (angleCos < maxSurfaceAngleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n label.hide();\r\n labelLine && labelLine.hide();\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var labelAttr = labelItem.defaultAttr;\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelAttr.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n rect: labelRect,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null && !textEl.disableLabelLayout) {\r\n _this._addLabel(dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n var itemModel = data.getItemModel(labelItem.dataIndex);\r\n label.on('drag', createDragHandler(hostEl, itemModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shift-x';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shift-y';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel);\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n var ecModel = ecIns.getModel();\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n return ctx.createPattern(image, pattern.repeat || 'repeat');\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = style.width;\r\n var height = style.height;\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n }\r\n ctx.setLineDash(lineDash || []);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (el.invisible\r\n || el.style.opacity === 0\r\n || (el.culling && isDisplayableCulled(el, scope.viewWidth, scope.viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n el.__dirty = 0;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length - 1; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.__dirty = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n ctx.clearRect(0, 0, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(0, 0, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n var domBack = this.domBack;\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, 0, 0, width, height);\r\n ctx.restore();\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, paintAll, redrawId);\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, paintAll) {\r\n var layerList = [];\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n for (var k = 0; k < layerList.length; k++) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this._zlevelList[0]\r\n ? this._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i = void 0;\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n brush(ctx, el, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n ctx.restore();\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version$1 = '5.0.0-alpha.1';\r\n var dependencies = {\r\n zrender: '5.0.0-alpha.1'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var defaultRenderer = 'canvas';\r\n if (__DEV__) {\r\n defaultRenderer = (typeof window === 'undefined' ? global : window).__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && backwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances$1, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '' + item.dom + '';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n var ecData = el && getECData(el);\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n }\r\n else if (el && ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances$1[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap(normalizeToArray(excludeSeriesId));\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (payload.statusChanged) {\r\n markStatusToUpdate(this);\r\n }\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n function getDispatcher(target, det) {\r\n while (target && !det(target)) {\r\n if (target.__hostTarget) {\r\n target = target.__hostTarget;\r\n }\r\n else {\r\n target = target.parent;\r\n }\r\n }\r\n return target;\r\n }\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateZ(seriesModel, chartView);\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n aria(ecIns._zr.dom, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 1;\r\n }\r\n if (labelLine) {\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 - 1;\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances$1, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances$1 = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances$1[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose$1(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances$1[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances$1[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances$1[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerPreprocessor(backwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', loadingDefault);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n var i;\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (i = 0; i < oldArr.length; i++) {\r\n var key = oldDataKeyArr[i];\r\n var idx = newDataIndexMap[key];\r\n if (idx != null) {\r\n var len = idx.length;\r\n if (len) {\r\n len === 1 && (newDataIndexMap[key] = null);\r\n idx = idx.shift();\r\n }\r\n else {\r\n newDataIndexMap[key] = null;\r\n }\r\n this._update && this._update(idx, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n for (i = 0; i < newDataKeyArr.length; i++) {\r\n var key = newDataKeyArr[i];\r\n if (newDataIndexMap.hasOwnProperty(key)) {\r\n var idx = newDataIndexMap[key];\r\n if (idx == null) {\r\n continue;\r\n }\r\n if (!idx.length) {\r\n this._add && this._add(idx);\r\n }\r\n else {\r\n for (var j = 0, len = idx.length; j < len; j++) {\r\n this._add && this._add(idx[j]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n var existence = map[key];\r\n if (existence == null) {\r\n keyArr.push(key);\r\n map[key] = i;\r\n }\r\n else {\r\n if (!existence.length) {\r\n map[key] = existence = [existence];\r\n }\r\n existence.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var isObject$3 = isObject;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getRawValueFromStore;\r\n var getIndicesCtor;\r\n var prepareChunks;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var cloneDimStore;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._chunkSize = 1e5;\r\n this._chunkCount = 0;\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = data instanceof Source || isArrayLike(data);\r\n if (notProvider) {\r\n data = new DefaultDataProvider(data, this.dimensions.length);\r\n }\r\n if (__DEV__) {\r\n if (!notProvider\r\n && (typeof data.getItem !== 'function' || typeof data.count !== 'function')) {\r\n throw new Error('Inavlid data provider.');\r\n }\r\n }\r\n this._rawData = data;\r\n this._storage = {};\r\n this._indices = null;\r\n this._nameList = nameList || [];\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, data.count());\r\n if (data.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var chunkSize = this._chunkSize;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, this._dimensionInfos[dim], chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var emptyDataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, k);\r\n storage[dim][chunkIndex][chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var chunkSize = this._chunkSize;\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var nameRepeatCount = this._nameRepeatCount = {};\r\n var nameDimIdx;\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n var dimInfo = dimensionInfoMap[dim];\r\n if (dimInfo.otherDims.itemName === 0) {\r\n nameDimIdx = this._nameDimIdx = i;\r\n }\r\n if (dimInfo.otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, dimInfo, chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var dataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var dimStorage = storage[dim][chunkIndex];\r\n var val = this._dimValueGetter(dataItem, dim, idx, k);\r\n dimStorage[chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (!rawData.pure) {\r\n var name_1 = nameList[idx];\r\n if (dataItem && name_1 == null) {\r\n if (dataItem.name != null) {\r\n nameList[idx] = name_1 = dataItem.name;\r\n }\r\n else if (nameDimIdx != null) {\r\n var nameDim = dimensions[nameDimIdx];\r\n var nameDimChunk = storage[nameDim][chunkIndex];\r\n if (nameDimChunk) {\r\n name_1 = nameDimChunk[chunkOffset];\r\n var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n name_1 = ordinalMeta.categories[name_1];\r\n }\r\n }\r\n }\r\n }\r\n var id = dataItem == null ? null : dataItem.id;\r\n if (id == null && name_1 != null) {\r\n nameRepeatCount[name_1] = nameRepeatCount[name_1] || 0;\r\n id = name_1;\r\n if (nameRepeatCount[name_1] > 0) {\r\n id += '__ec__' + nameRepeatCount[name_1];\r\n }\r\n nameRepeatCount[name_1]++;\r\n }\r\n id != null && (idList[idx] = id);\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var storage = this._storage;\r\n if (!storage[dim]) {\r\n return NaN;\r\n }\r\n idx = this.getRawIndex(idx);\r\n var chunkIndex = Math.floor(idx / this._chunkSize);\r\n var chunkOffset = idx % this._chunkSize;\r\n var chunkStore = storage[dim][chunkIndex];\r\n var value = chunkStore[chunkOffset];\r\n return value;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n if (!dimStore) {\r\n return NaN;\r\n }\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = dimStore[chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype._getFast = function (dim, rawIdx) {\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = this._storage[dim][chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var value = this._getFast(dim, this.getRawIndex(i));\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var diff = value - this.get(dim, i);\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n return this._nameList[rawIndex]\r\n || getRawValueFromStore(this, this._nameDimIdx, rawIndex)\r\n || '';\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n for (var i = 0; i < this.count(); i++) {\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, this.get(dimNames[0], i), i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, this.get(dimNames[0], i), this.get(dimNames[1], i), i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = this.get(dimNames[k], i);\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dim0 = dimNames[0];\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = this._getFast(dim0, rawIdx);\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = this._getFast(dim0, rawIdx);\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n if (!this._count) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = this._storage[dimensions[0]];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = this._storage[dim0];\r\n var dimStorage2 = this._storage[dimensions[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var chunkStorage2 = dimStorage2[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n var val2 = chunkStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = this._getFast(dim0, rawIndex);\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = this._getFast(dimk, rawIndex);\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var storage = list._storage;\r\n var tmpRetValue = [];\r\n var chunkSize = this._chunkSize;\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[chunkIndex][chunkOffset] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = Math.floor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var chunkSize = this._chunkSize;\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n var originalChunkIndex = Math.floor(dataIdx / chunkSize);\r\n var originalChunkOffset = dataIdx % chunkSize;\r\n frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize);\r\n var sampleChunkOffset = sampleFrameIdx % chunkSize;\r\n dimStore[sampleChunkIndex][sampleChunkOffset] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (!val) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_2 in key) {\r\n if (key.hasOwnProperty(name_2)) {\r\n this.setLayout(name_2, key[name_2]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getRawValueFromStore = function (list, dimIndex, rawIndex) {\r\n var val;\r\n if (dimIndex != null) {\r\n var chunkSize = list._chunkSize;\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n var dim = list.dimensions[dimIndex];\r\n var chunk = list._storage[dim][chunkIndex];\r\n if (chunk) {\r\n val = chunk[chunkOffset];\r\n var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n }\r\n return val;\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareChunks = function (storage, dimInfo, chunkSize, chunkCount, end) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var lastChunkIndex = chunkCount - 1;\r\n var dim = dimInfo.name;\r\n var resizeChunkArray = storage[dim][lastChunkIndex];\r\n if (resizeChunkArray && resizeChunkArray.length < chunkSize) {\r\n var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize));\r\n for (var j = 0; j < resizeChunkArray.length; j++) {\r\n newStore[j] = resizeChunkArray[j];\r\n }\r\n storage[dim][lastChunkIndex] = newStore;\r\n }\r\n for (var k = chunkCount * chunkSize; k < end; k += chunkSize) {\r\n storage[dim].push(new DataCtor(Math.min(end - k, chunkSize)));\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null) {\r\n id = getRawValueFromStore(list, list._idDimIdx, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = [dimensions];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneDimStore(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n cloneDimStore = function (originalDimStore) {\r\n var newDimStore = new Array(originalDimStore.length);\r\n for (var j = 0; j < originalDimStore.length; j++) {\r\n newDimStore[j] = cloneChunk(originalDimStore[j]);\r\n }\r\n return newDimStore;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions (source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n result.firstCategoryDimIndex = index;\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta || isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({ categories: ordinalMeta });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC);\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\r\n var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n function createList(seriesModel) {\r\n return createListFromArray(seriesModel.getSource(), seriesModel);\r\n }\r\n var dataStack$1 = {\r\n isDimensionStacked: isDimensionStacked,\r\n enableDataStack: enableDataStack,\r\n getStackedDimension: getStackedDimension\r\n };\r\n function createScale(dataExtent, option) {\r\n var axisModel = option;\r\n if (!(option instanceof Model)) {\r\n axisModel = new Model(option);\r\n }\r\n var scale = createScaleByModel(axisModel);\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n niceScaleExtent(scale, axisModel);\r\n return scale;\r\n }\r\n function mixinAxisModelCommonMethods(Model) {\r\n mixin(Model, AxisModelCommonMixin);\r\n }\n\n var helper = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createList: createList,\n getLayoutRect: getLayoutRect,\n dataStack: dataStack$1,\n createScale: createScale,\n mixinAxisModelCommonMethods: mixinAxisModelCommonMethods,\n createDimensions: createDimensions,\n createSymbol: createSymbol\n });\n\n var EPSILON$3 = 1e-8;\r\n function isAroundEqual$1(a, b) {\r\n return Math.abs(a - b) < EPSILON$3;\r\n }\r\n function contain$2(points, x, y) {\r\n var w = 0;\r\n var p = points[0];\r\n if (!p) {\r\n return false;\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n var p2 = points[i];\r\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\r\n p = p2;\r\n }\r\n var p0 = points[0];\r\n if (!isAroundEqual$1(p[0], p0[0]) || !isAroundEqual$1(p[1], p0[1])) {\r\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\r\n }\r\n return w !== 0;\r\n }\n\n var Region = (function () {\r\n function Region(name, geometries, cp) {\r\n this.name = name;\r\n this.geometries = geometries;\r\n if (!cp) {\r\n var rect = this.getBoundingRect();\r\n cp = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n else {\r\n cp = [cp[0], cp[1]];\r\n }\r\n this.center = cp;\r\n }\r\n Region.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n if (rect) {\r\n return rect;\r\n }\r\n var MAX_NUMBER = Number.MAX_VALUE;\r\n var min$1 = [MAX_NUMBER, MAX_NUMBER];\r\n var max$1 = [-MAX_NUMBER, -MAX_NUMBER];\r\n var min2 = [];\r\n var max2 = [];\r\n var geometries = this.geometries;\r\n var i = 0;\r\n for (; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n fromPoints(exterior, min2, max2);\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return (this._rect = new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]));\r\n };\r\n Region.prototype.contain = function (coord) {\r\n var rect = this.getBoundingRect();\r\n var geometries = this.geometries;\r\n if (!rect.contain(coord[0], coord[1])) {\r\n return false;\r\n }\r\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n if (contain$2(exterior, coord[0], coord[1])) {\r\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\r\n if (contain$2(interiors[k], coord[0], coord[1])) {\r\n continue loopGeo;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Region.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var aspect = rect.width / rect.height;\r\n if (!width) {\r\n width = aspect * height;\r\n }\r\n else if (!height) {\r\n height = width / aspect;\r\n }\r\n var target = new BoundingRect(x, y, width, height);\r\n var transform = rect.calculateTransform(target);\r\n var geometries = this.geometries;\r\n for (var i = 0; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n for (var p = 0; p < exterior.length; p++) {\r\n applyTransform(exterior[p], exterior[p], transform);\r\n }\r\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\r\n for (var p = 0; p < interiors[h].length; p++) {\r\n applyTransform(interiors[h][p], interiors[h][p], transform);\r\n }\r\n }\r\n }\r\n rect = this._rect;\r\n rect.copy(target);\r\n this.center = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n };\r\n Region.prototype.cloneShallow = function (name) {\r\n name == null && (name = this.name);\r\n var newRegion = new Region(name, this.geometries, this.center);\r\n newRegion._rect = this._rect;\r\n newRegion.transformTo = null;\r\n return newRegion;\r\n };\r\n return Region;\r\n }());\n\n function decode(json) {\r\n if (!json.UTF8Encoding) {\r\n return json;\r\n }\r\n var jsonCompressed = json;\r\n var encodeScale = jsonCompressed.UTF8Scale;\r\n if (encodeScale == null) {\r\n encodeScale = 1024;\r\n }\r\n var features = jsonCompressed.features;\r\n for (var f = 0; f < features.length; f++) {\r\n var feature = features[f];\r\n var geometry = feature.geometry;\r\n if (geometry.type === 'Polygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\r\n }\r\n }\r\n else if (geometry.type === 'MultiPolygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n var coordinate = coordinates[c];\r\n for (var c2 = 0; c2 < coordinate.length; c2++) {\r\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\r\n }\r\n }\r\n }\r\n }\r\n jsonCompressed.UTF8Encoding = false;\r\n return jsonCompressed;\r\n }\r\n function decodePolygon(coordinate, encodeOffsets, encodeScale) {\r\n var result = [];\r\n var prevX = encodeOffsets[0];\r\n var prevY = encodeOffsets[1];\r\n for (var i = 0; i < coordinate.length; i += 2) {\r\n var x = coordinate.charCodeAt(i) - 64;\r\n var y = coordinate.charCodeAt(i + 1) - 64;\r\n x = (x >> 1) ^ (-(x & 1));\r\n y = (y >> 1) ^ (-(y & 1));\r\n x += prevX;\r\n y += prevY;\r\n prevX = x;\r\n prevY = y;\r\n result.push([x / encodeScale, y / encodeScale]);\r\n }\r\n return result;\r\n }\r\n function parseGeoJSON (geoJson, nameProperty) {\r\n geoJson = decode(geoJson);\r\n return map(filter(geoJson.features, function (featureObj) {\r\n return featureObj.geometry\r\n && featureObj.properties\r\n && featureObj.geometry.coordinates.length > 0;\r\n }), function (featureObj) {\r\n var properties = featureObj.properties;\r\n var geo = featureObj.geometry;\r\n var geometries = [];\r\n if (geo.type === 'Polygon') {\r\n var coordinates = geo.coordinates;\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: coordinates[0],\r\n interiors: coordinates.slice(1)\r\n });\r\n }\r\n if (geo.type === 'MultiPolygon') {\r\n var coordinates = geo.coordinates;\r\n each(coordinates, function (item) {\r\n if (item[0]) {\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: item[0],\r\n interiors: item.slice(1)\r\n });\r\n }\r\n });\r\n }\r\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\r\n region.properties = properties;\r\n return region;\r\n });\r\n }\n\n var inner$5 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$5(axis)[prop] || (inner$5(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$5(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$5(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$5(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var parseGeoJson = parseGeoJSON;\r\n var ecUtil = {};\r\n each([\r\n 'map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter',\r\n 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction',\r\n 'extend', 'defaults', 'clone', 'merge'\r\n ], function (name) {\r\n ecUtil[name] = zrUtil[name];\r\n });\r\n var GRAPHIC_KEYS = [\r\n 'extendShape', 'extendPath', 'makePath', 'makeImage',\r\n 'mergePath', 'resizePath', 'createIcon',\r\n 'updateProps', 'initProps', 'getTransform',\r\n 'clipPointsByRect', 'clipRectByRect',\r\n 'registerShape', 'getShapeClass',\r\n 'Group',\r\n 'Image',\r\n 'Text',\r\n 'Circle',\r\n 'Ellipse',\r\n 'Sector',\r\n 'Ring',\r\n 'Polygon',\r\n 'Polyline',\r\n 'Rect',\r\n 'Line',\r\n 'BezierCurve',\r\n 'Arc',\r\n 'IncrementalDisplayable',\r\n 'CompoundPath',\r\n 'LinearGradient',\r\n 'RadialGradient',\r\n 'BoundingRect'\r\n ];\r\n var graphic$1 = {};\r\n each(GRAPHIC_KEYS, function (name) {\r\n graphic$1[name] = graphic[name];\r\n });\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n function getDefaultLabel(data, dataIndex, interpolatedValues) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[0])\r\n : interpolatedValues;\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var val = interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[i])\r\n : interpolatedValues;\r\n vals.push(val);\r\n }\r\n return vals.join(' ');\r\n }\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n updateProps(symbolPath, {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n }, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n symbolPath.ensureState('emphasis').style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n this.ensureState('emphasis');\r\n this.setSymbolScale(1);\r\n }\r\n else {\r\n this.states.emphasis = null;\r\n }\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n var emphasisState = this.states.emphasis;\r\n if (emphasisState) {\r\n var hoverScale = Math.max(scale * 1.1, 3 / this._sizeY + scale);\r\n emphasisState.scaleX = hoverScale;\r\n emphasisState.scaleY = hoverScale;\r\n }\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n this.silent = symbolPath.silent = true;\r\n !(opt && opt.keepLabel) && (symbolPath.removeTextContent());\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, this._seriesModel, getECData(this).dataIndex, cb);\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var seriesScope = makeSeriesScope(data);\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = data.getItemLayout(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = data.getItemLayout(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope);\r\n updateProps(symbolEl, {\r\n x: point[0],\r\n y: point[1]\r\n }, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = data.getItemLayout(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff (oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n var currentPt = oldData.getItemLayout(diffItem.idx);\r\n var nextPt = newData.getItemLayout(diffItem.idx1);\r\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\r\n currentPt = nextPt.slice();\r\n }\r\n currPoints.push(currentPt);\r\n nextPoints.push(nextPt);\r\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\r\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var idxAdd = diffItem.idx;\r\n currPoints.push(oldCoordSys.dataToPoint([\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idxAdd),\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idxAdd)\r\n ]));\r\n nextPoints.push(newData.getItemLayout(idxAdd).slice());\r\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idxAdd));\r\n nextStackedPoints.push(newStackedOnPoints[idxAdd]);\r\n rawIndices.push(newData.getRawIndex(idxAdd));\r\n break;\r\n case '-':\r\n var idxMinus = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(idxMinus);\r\n if (rawIndex !== idxMinus) {\r\n currPoints.push(oldData.getItemLayout(idxMinus));\r\n nextPoints.push(newCoordSys.dataToPoint([\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idxMinus),\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idxMinus)\r\n ]));\r\n currStackedPoints.push(oldStackedOnPoints[idxMinus]);\r\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idxMinus));\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var sortedCurrPoints = [];\r\n var sortedNextPoints = [];\r\n var sortedCurrStackedPoints = [];\r\n var sortedNextStackedPoints = [];\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n sortedCurrPoints[i] = currPoints[idx];\r\n sortedNextPoints[i] = nextPoints[idx];\r\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\r\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var vec2Min = min;\r\n var vec2Max = max;\r\n var scaleAndAdd$1 = scaleAndAdd;\r\n var v2Copy = copy;\r\n var v = [];\r\n var cp0 = [];\r\n var cp1 = [];\r\n function isPointNull(p) {\r\n return isNaN(p[0]) || isNaN(p[1]);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n return ((smoothMonotone === 'none' || !smoothMonotone) ? drawNonMono : drawMono)(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls);\r\n }\r\n function drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var prevP = points[prevIdx];\r\n var dim = smoothMonotone === 'y' ? 1 : 0;\r\n var ctrlLen = (p[dim] - prevP[dim]) * smooth;\r\n v2Copy(cp0, prevP);\r\n cp0[dim] = prevP[dim] + ctrlLen;\r\n v2Copy(cp1, p);\r\n cp1[dim] = p[dim] - ctrlLen;\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n v2Copy(cp0, p);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextP = points[nextIdx];\r\n if (connectNulls) {\r\n while (nextP && isPointNull(points[nextIdx])) {\r\n nextIdx += dir;\r\n nextP = points[nextIdx];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var prevP = points[prevIdx];\r\n nextP = points[nextIdx];\r\n if (!nextP || isPointNull(nextP)) {\r\n v2Copy(cp1, p);\r\n }\r\n else {\r\n if (isPointNull(nextP) && !connectNulls) {\r\n nextP = p;\r\n }\r\n sub(v, nextP, prevP);\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x' || smoothMonotone === 'y') {\r\n var dim = smoothMonotone === 'x' ? 0 : 1;\r\n lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\r\n lenNextSeg = Math.abs(p[dim] - nextP[dim]);\r\n }\r\n else {\r\n lenPrevSeg = dist(p, prevP);\r\n lenNextSeg = dist(p, nextP);\r\n }\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n scaleAndAdd$1(cp1, p, v, -smooth * (1 - ratioNextSeg));\r\n }\r\n vec2Min(cp0, cp0, smoothMax);\r\n vec2Max(cp0, cp0, smoothMin);\r\n vec2Min(cp1, cp1, smoothMax);\r\n vec2Max(cp1, cp1, smoothMin);\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n scaleAndAdd$1(cp0, p, v, smooth * ratioNextSeg);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function getBoundingBox(points, smoothConstraint) {\r\n var ptMin = [Infinity, Infinity];\r\n var ptMax = [-Infinity, -Infinity];\r\n if (smoothConstraint) {\r\n for (var i = 0; i < points.length; i++) {\r\n var pt = points[i];\r\n if (pt[0] < ptMin[0]) {\r\n ptMin[0] = pt[0];\r\n }\r\n if (pt[1] < ptMin[1]) {\r\n ptMin[1] = pt[1];\r\n }\r\n if (pt[0] > ptMax[0]) {\r\n ptMax[0] = pt[0];\r\n }\r\n if (pt[1] > ptMax[1]) {\r\n ptMax[1] = pt[1];\r\n }\r\n }\r\n }\r\n return {\r\n min: smoothConstraint ? ptMin : ptMax,\r\n max: smoothConstraint ? ptMax : ptMin\r\n };\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n this.connectNulls = false;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length;\r\n var result = getBoundingBox(points, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length;\r\n var smoothMonotone = shape.smoothMonotone;\r\n var bbox = getBoundingBox(points, shape.smoothConstraint);\r\n var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel) {\r\n var rect = cartesian.getArea();\r\n var isHorizontal = cartesian.getBaseAxis().isHorizontal();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: round$1(sectorArea.r0, 1),\r\n r: round$1(sectorArea.r, 1),\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n return null;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n var p1 = points1[i];\r\n var p2 = points2[i];\r\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var min1 = [];\r\n var max1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n fromPoints(points1, min1, max1);\r\n fromPoints(points2, min2, max2);\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var points = [];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n for (; i < points.length - 1; i++) {\r\n var nextPt = points[i + 1];\r\n var pt = points[i];\r\n stepPoints.push(pt);\r\n var stepPt = [];\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n stepPoints.push(stepPt2);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n }\r\n }\r\n points[i] && stepPoints.push(points[i]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function createLineClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.mapArray(data.getItemLayout);\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n data.eachItemGraphicEl(function (el) {\r\n el && el.stopAnimation(null, true);\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n var shouldBolderOnEmphasis = seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder';\r\n if (shouldBolderOnEmphasis) {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel'\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var pt = data.getItemLayout(dataIndex);\r\n if (!pt) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.setPosition(pt);\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._updateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n polyline.stopAnimation();\r\n updateProps(polyline, {\r\n shape: {\r\n points: next\r\n }\r\n }, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n el.setPosition(polyline.shape.__points[updatedDataInfo[i].ptIdx]);\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function layoutPoints (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeRender = pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = isLargeRender && new Float32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.get(dims[0], i);\r\n point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n var x = tmpIn[0] = data.get(dims[0], i);\r\n var y = tmpIn[1] = data.get(dims[1], i);\r\n point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (isLargeRender) {\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n else {\r\n data.setItemLayout(i, (point && point.slice()) || [NaN, NaN]);\r\n }\r\n }\r\n isLargeRender && data.setLayout('symbolPoints', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var size = extent[1] - extent[0];\r\n var rate = Math.round(data.count() / size);\r\n if (rate > 1) {\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator (axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n sort: false,\r\n realtimeSort: false,\r\n sortSeriesIndex: null,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var PI$5 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$5) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$5 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$5 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$5 * 1.5 && rotationDiff > PI$5 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul$1([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul$1([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$5 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function collect(ecModel, api) {\r\n var result = {\r\n axesInfo: {},\r\n seriesInvolved: false,\r\n coordSysAxesInfo: {},\r\n coordSysMap: {}\r\n };\r\n collectAxesInfo(result, ecModel, api);\r\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\r\n return result;\r\n }\r\n function collectAxesInfo(result, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\r\n var linksOption = globalAxisPointerModel.get('link', true) || [];\r\n var linkGroups = [];\r\n each(api.getCoordinateSystems(), function (coordSys) {\r\n if (!coordSys.axisPointerEnabled) {\r\n return;\r\n }\r\n var coordSysKey = makeKey(coordSys.model);\r\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\r\n result.coordSysMap[coordSysKey] = coordSys;\r\n var coordSysModel = coordSys.model;\r\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\r\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\r\n if (coordSys.getTooltipAxes\r\n && globalTooltipModel\r\n && baseTooltipModel.get('show')) {\r\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\r\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\r\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\r\n if (triggerAxis || cross) {\r\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\r\n }\r\n if (cross) {\r\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\r\n }\r\n }\r\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\r\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\r\n var axisPointerShow = axisPointerModel.get('show');\r\n if (!axisPointerShow || (axisPointerShow === 'auto'\r\n && !fromTooltip\r\n && !isHandleTrigger(axisPointerModel))) {\r\n return;\r\n }\r\n if (triggerTooltip == null) {\r\n triggerTooltip = axisPointerModel.get('triggerTooltip');\r\n }\r\n axisPointerModel = fromTooltip\r\n ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip)\r\n : axisPointerModel;\r\n var snap = axisPointerModel.get('snap');\r\n var axisKey = makeKey(axis.model);\r\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\r\n var axisInfo = result.axesInfo[axisKey] = {\r\n key: axisKey,\r\n axis: axis,\r\n coordSys: coordSys,\r\n axisPointerModel: axisPointerModel,\r\n triggerTooltip: triggerTooltip,\r\n involveSeries: involveSeries,\r\n snap: snap,\r\n useHandle: isHandleTrigger(axisPointerModel),\r\n seriesModels: [],\r\n linkGroup: null\r\n };\r\n axesInfoInCoordSys[axisKey] = axisInfo;\r\n result.seriesInvolved = result.seriesInvolved || involveSeries;\r\n var groupIndex = getLinkGroupIndex(linksOption, axis);\r\n if (groupIndex != null) {\r\n var linkGroup = linkGroups[groupIndex]\r\n || (linkGroups[groupIndex] = { axesInfo: {} });\r\n linkGroup.axesInfo[axisKey] = axisInfo;\r\n linkGroup.mapper = linksOption[groupIndex].mapper;\r\n axisInfo.linkGroup = linkGroup;\r\n }\r\n }\r\n });\r\n }\r\n function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\r\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\r\n var fields = [\r\n 'type', 'snap', 'lineStyle', 'shadowStyle', 'label',\r\n 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'\r\n ];\r\n var volatileOption = {};\r\n each(fields, function (field) {\r\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\r\n });\r\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\r\n if (tooltipAxisPointerModel.get('type') === 'cross') {\r\n volatileOption.type = 'line';\r\n }\r\n var labelOption = volatileOption.label || (volatileOption.label = {});\r\n labelOption.show == null && (labelOption.show = false);\r\n if (fromTooltip === 'cross') {\r\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\r\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\r\n if (!triggerTooltip) {\r\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\r\n crossStyle && defaults(labelOption, crossStyle.textStyle);\r\n }\r\n }\r\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\r\n }\r\n function collectSeriesInfo(result, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\r\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\r\n if (!coordSys\r\n || seriesTooltipTrigger === 'none'\r\n || seriesTooltipTrigger === false\r\n || seriesTooltipTrigger === 'item'\r\n || seriesTooltipShow === false\r\n || seriesModel.get(['axisPointer', 'show'], true) === false) {\r\n return;\r\n }\r\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\r\n var axis = axisInfo.axis;\r\n if (coordSys.getAxis(axis.dim) === axis) {\r\n axisInfo.seriesModels.push(seriesModel);\r\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\r\n axisInfo.seriesDataCount += seriesModel.getData().count();\r\n }\r\n });\r\n });\r\n }\r\n function getLinkGroupIndex(linksOption, axis) {\r\n var axisModel = axis.model;\r\n var dim = axis.dim;\r\n for (var i = 0; i < linksOption.length; i++) {\r\n var linkOption = linksOption[i] || {};\r\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id)\r\n || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex)\r\n || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\r\n return i;\r\n }\r\n }\r\n }\r\n function checkPropInLink(linkPropValue, axisPropValue) {\r\n return linkPropValue === 'all'\r\n || (isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0)\r\n || linkPropValue === axisPropValue;\r\n }\r\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$6 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$6(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$6(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$6(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 60,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(layoutPoints('line'));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (!ignoreContainLabel && gridModel.get('containLabel')) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$4 = Math.max;\r\n var mathMin$4 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea;\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n coordSysClipArea = coord.getArea && coord.getArea();\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n var isReorder = payload && payload.type === 'changeAxisOrder';\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, isReorder);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) {\r\n var that = this;\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 var lastAnimator = null;\r\n if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var axisSort = coord.type === 'cartesian2d' && axis2DModel.get('sort')\r\n && axis2DModel.get('sortSeriesIndex') === seriesModel.seriesIndex;\r\n var realtimeSort = axisSort && axis2DModel.get('realtimeSort');\r\n if (realtimeSort && this._isFirstFrame && data.count()) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\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 data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false);\r\n animator && (lastAnimator = animator);\r\n }\r\n else if (coord.type === 'cartesian2d') {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\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 if (drawBackground) {\r\n var bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\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 }\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true);\r\n animator && (lastAnimator = animator);\r\n }\r\n else {\r\n updateProps(el, { shape: layout }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n if (lastAnimator) {\r\n lastAnimator.during(function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n that._updateSort(data, orderMap, baseAxis, api);\r\n });\r\n }\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function () {\r\n this._clear(this._model);\r\n };\r\n BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var 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;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$4(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$4(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$4(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$4(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function () {\r\n return false;\r\n }\r\n };\r\n var 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 if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\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\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, data, newIndex, isHorizontal, isUpdate) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\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 }\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 (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n var lastAnimator = el.animators.length\r\n ? find(el.animators, function (animator) { return animator.targetName === 'shape' && !!animator.getTrack('width'); })\r\n : null;\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n var defaultTextGetter = function (values) {\r\n return getDefaultLabel(seriesModel.getData(), newIndex, values);\r\n };\r\n var labelModel = seriesModel.getModel('label');\r\n (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter);\r\n return lastAnimator;\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\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 };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n el.ignore = isZeroOnPolar(layout);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n setLabelStyle(el, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\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 }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\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 var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var 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 function 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 barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function 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 }\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 function 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 ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\n\n function createListSimply (seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function labelLayout (seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.x -= margin / 2;\r\n textRect.y -= margin / 2;\r\n textRect.width += margin;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend({}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = {\r\n r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0)\r\n };\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var labelText = sector.getTextContent();\r\n var itemModel = data.getItemModel(idx);\r\n var labelTextEmphasisState = labelText.ensureState('emphasis');\r\n var labelModel = itemModel.getModel('label');\r\n var labelHoverModel = itemModel.getModel(['emphasis', 'label']);\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n }, { normal: {\r\n opacity: style && style.opacity\r\n } });\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n labelText.ignore = !labelModel.get('show');\r\n labelTextEmphasisState.ignore = !labelHoverModel.get('show');\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: style && style.opacity\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var hasAnimation = ecModel.get('animation');\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n labelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$6 = Math.PI * 2;\r\n var RADIAN$1 = Math.PI / 180;\r\n function getViewRect(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function pieLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var viewRect = getViewRect(seriesModel, api);\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = parsePercent$2(viewRect.width, api.getWidth());\r\n var height = parsePercent$2(viewRect.height, api.getHeight());\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width) + viewRect.x;\r\n var cy = parsePercent$2(center[1], height) + viewRect.y;\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$1;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$1;\r\n var validDataCount = 0;\r\n data.each(valueDim, function (value) {\r\n !isNaN(value) && validDataCount++;\r\n });\r\n var sum = data.getSum(valueDim);\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var clockwise = seriesModel.get('clockwise');\r\n var roseType = seriesModel.get('roseType');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var extent = data.getDataExtent(valueDim);\r\n extent[0] = 0;\r\n var restAngle = PI2$6;\r\n var valueSumLargerThanMinAngle = 0;\r\n var currentAngle = startAngle;\r\n var dir = clockwise ? 1 : -1;\r\n data.setLayout({ viewRect: viewRect, r: r });\r\n data.each(valueDim, function (value, idx) {\r\n var angle;\r\n if (isNaN(value)) {\r\n data.setItemLayout(idx, {\r\n angle: NaN,\r\n startAngle: NaN,\r\n endAngle: NaN,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? NaN\r\n : r\r\n });\r\n return;\r\n }\r\n if (roseType !== 'area') {\r\n angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n }\r\n else {\r\n angle = PI2$6 / validDataCount;\r\n }\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n restAngle -= minAngle;\r\n }\r\n else {\r\n valueSumLargerThanMinAngle += value;\r\n }\r\n var endAngle = currentAngle + dir * angle;\r\n data.setItemLayout(idx, {\r\n angle: angle,\r\n startAngle: currentAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? linearMap(value, extent, [r0, r])\r\n : r\r\n });\r\n currentAngle = endAngle;\r\n });\r\n if (restAngle < PI2$6 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$6 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n var ScatterSeriesModel = (function (_super) {\r\n __extends(ScatterSeriesModel, _super);\r\n function ScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n ScatterSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 5e3 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n ScatterSeriesModel.type = 'series.scatter';\r\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n ScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n symbolSize: 10,\r\n large: false,\r\n largeThreshold: 2000,\r\n itemStyle: {\r\n opacity: 0.8\r\n },\r\n emphasis: {\r\n scale: true\r\n },\r\n clip: true,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return ScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ScatterSeriesModel);\n\n var BOOST_SIZE_THRESHOLD = 4;\r\n var LargeSymbolPathShape = (function () {\r\n function LargeSymbolPathShape() {\r\n }\r\n return LargeSymbolPathShape;\r\n }());\r\n var LargeSymbolPath = (function (_super) {\r\n __extends(LargeSymbolPath, _super);\r\n function LargeSymbolPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeSymbolPath.prototype.getDefaultShape = function () {\r\n return new LargeSymbolPathShape();\r\n };\r\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\r\n var points = shape.points;\r\n var size = shape.size;\r\n var symbolProxy = this.symbolProxy;\r\n var symbolProxyShape = symbolProxy.shape;\r\n var ctx = path.getContext\r\n ? path.getContext()\r\n : path;\r\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\r\n if (canBoost) {\r\n this._ctx = ctx;\r\n return;\r\n }\r\n this._ctx = null;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n symbolProxyShape.x = x - size[0] / 2;\r\n symbolProxyShape.y = y - size[1] / 2;\r\n symbolProxyShape.width = size[0];\r\n symbolProxyShape.height = size[1];\r\n symbolProxy.buildPath(path, symbolProxyShape, true);\r\n }\r\n };\r\n LargeSymbolPath.prototype.afterBrush = function () {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var ctx = this._ctx;\r\n if (!ctx) {\r\n return;\r\n }\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\r\n }\r\n };\r\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var w = Math.max(size[0], 4);\r\n var h = Math.max(size[1], 4);\r\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\r\n var i = idx * 2;\r\n var x0 = points[i] - w / 2;\r\n var y0 = points[i + 1] - h / 2;\r\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\r\n return idx;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeSymbolPath;\r\n }(Path));\r\n var LargeSymbolDraw = (function () {\r\n function LargeSymbolDraw() {\r\n this.group = new Group();\r\n }\r\n LargeSymbolDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\r\n this.group.removeAll();\r\n var symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, false, opt);\r\n this.group.add(symbolEl);\r\n this._incremental = null;\r\n };\r\n LargeSymbolDraw.prototype.updateLayout = function (data) {\r\n if (this._incremental) {\r\n return;\r\n }\r\n var points = data.getLayout('symbolPoints');\r\n this.group.eachChild(function (child) {\r\n if (child.startIndex != null) {\r\n var len = (child.endIndex - child.startIndex) * 2;\r\n var byteOffset = child.startIndex * 4 * 2;\r\n points = new Float32Array(points.buffer, byteOffset, len);\r\n }\r\n child.setShape('points', points);\r\n });\r\n };\r\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 2e6) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n var symbolEl;\r\n if (this._incremental) {\r\n symbolEl = new LargeSymbolPath();\r\n this._incremental.addDisplayable(symbolEl, true);\r\n }\r\n else {\r\n symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default',\r\n startIndex: taskParams.start,\r\n endIndex: taskParams.end\r\n });\r\n symbolEl.incremental = true;\r\n this.group.add(symbolEl);\r\n }\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, !!this._incremental, opt);\r\n };\r\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\r\n var hostModel = data.hostModel;\r\n opt = opt || {};\r\n var size = data.getVisual('symbolSize');\r\n symbolEl.setShape('size', (size instanceof Array) ? size : [size, size]);\r\n symbolEl.softClipShape = opt.clipShape || null;\r\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\r\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\r\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\r\n symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\r\n var globalStyle = data.getVisual('style');\r\n var visualColor = globalStyle && globalStyle.fill;\r\n if (visualColor) {\r\n symbolEl.setColor(visualColor);\r\n }\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(symbolEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n symbolEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex >= 0) {\r\n ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\r\n }\r\n });\r\n }\r\n };\r\n LargeSymbolDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeSymbolDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeSymbolDraw;\r\n }());\n\n var ScatterView = (function (_super) {\r\n __extends(ScatterView, _super);\r\n function ScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterView.type;\r\n return _this;\r\n }\r\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.updateData(data, {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = true;\r\n };\r\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.incrementalPrepareUpdate(data);\r\n this._finished = false;\r\n };\r\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = layoutPoints().reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({ start: 0, end: data.count(), count: data.count() }, data);\r\n }\r\n this._symbolDraw.updateLayout(data);\r\n }\r\n };\r\n ScatterView.prototype._getClipShape = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\r\n return seriesModel.get('clip', true) ? clipArea : null;\r\n };\r\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\r\n var symbolDraw = this._symbolDraw;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\r\n symbolDraw && symbolDraw.remove();\r\n symbolDraw = this._symbolDraw = isLargeDraw\r\n ? new LargeSymbolDraw()\r\n : new SymbolDraw();\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(symbolDraw.group);\r\n return symbolDraw;\r\n };\r\n ScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n this._symbolDraw = null;\r\n };\r\n ScatterView.prototype.dispose = function () { };\r\n ScatterView.type = 'scatter';\r\n return ScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(ScatterView);\n\n registerLayout(layoutPoints('scatter'));\n\n var _nonShapeGraphicElements = {\r\n path: null,\r\n compoundPath: null,\r\n group: Group,\r\n image: ZRImage,\r\n text: ZRText\r\n };\r\n registerPreprocessor(function (option) {\r\n var graphicOption = option.graphic;\r\n if (isArray(graphicOption)) {\r\n if (!graphicOption[0] || !graphicOption[0].elements) {\r\n option.graphic = [{ elements: graphicOption }];\r\n }\r\n else {\r\n option.graphic = [option.graphic[0]];\r\n }\r\n }\r\n else if (graphicOption && !graphicOption.elements) {\r\n option.graphic = [{ elements: [graphicOption] }];\r\n }\r\n });\r\n var GraphicModel = extendComponentModel({\r\n type: 'graphic',\r\n defaultOption: {\r\n elements: [],\r\n parentId: null\r\n },\r\n _elOptionsToUpdate: null,\r\n mergeOption: function (option) {\r\n var elements = this.option.elements;\r\n this.option.elements = null;\r\n GraphicModel.superApply(this, 'mergeOption', arguments);\r\n this.option.elements = elements;\r\n },\r\n optionUpdated: function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var newList = (isInit ? thisOption : newOption).elements;\r\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\r\n var flattenedList = [];\r\n this._flatten(newList, flattenedList);\r\n var mappingResult = mappingToExists(existList, flattenedList, 'normalMerge');\r\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\r\n each(mappingResult, function (resultItem, index) {\r\n var newElOption = resultItem.newOption;\r\n if (__DEV__) {\r\n assert(isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\r\n }\r\n if (!newElOption) {\r\n return;\r\n }\r\n elOptionsToUpdate.push(newElOption);\r\n setKeyInfoToNewElOption(resultItem, newElOption);\r\n mergeNewElOptionToExist(existList, index, newElOption);\r\n setLayoutInfoToExist(existList[index], newElOption);\r\n }, this);\r\n for (var i = existList.length - 1; i >= 0; i--) {\r\n if (existList[i] == null) {\r\n existList.splice(i, 1);\r\n }\r\n else {\r\n delete existList[i].$action;\r\n }\r\n }\r\n },\r\n _flatten: function (optionList, result, parentOption) {\r\n each(optionList, function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (parentOption) {\r\n option.parentOption = parentOption;\r\n }\r\n result.push(option);\r\n var children = option.children;\r\n if (option.type === 'group' && children) {\r\n this._flatten(children, result, option);\r\n }\r\n delete option.children;\r\n }, this);\r\n },\r\n useElOptionsToUpdate: function () {\r\n var els = this._elOptionsToUpdate;\r\n this._elOptionsToUpdate = null;\r\n return els;\r\n }\r\n });\r\n extendComponentView({\r\n type: 'graphic',\r\n init: function (ecModel, api) {\r\n this._elMap = createHashMap();\r\n this._lastGraphicModel;\r\n },\r\n render: function (graphicModel, ecModel, api) {\r\n if (graphicModel !== this._lastGraphicModel) {\r\n this._clear();\r\n }\r\n this._lastGraphicModel = graphicModel;\r\n this._updateElements(graphicModel);\r\n this._relocate(graphicModel, api);\r\n },\r\n _updateElements: function (graphicModel) {\r\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\r\n if (!elOptionsToUpdate) {\r\n return;\r\n }\r\n var elMap = this._elMap;\r\n var rootGroup = this.group;\r\n each(elOptionsToUpdate, function (elOption) {\r\n var $action = elOption.$action;\r\n var id = elOption.id;\r\n var existEl = elMap.get(id);\r\n var parentId = elOption.parentId;\r\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\r\n var elOptionStyle = elOption.style;\r\n if (elOption.type === 'text' && elOptionStyle) {\r\n if (elOption.hv && elOption.hv[1]) {\r\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;\r\n }\r\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\r\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\r\n }\r\n var elOptionCleaned = getCleanedElOption(elOption);\r\n if (__DEV__) {\r\n existEl && assert(targetElParent === existEl.parent, 'Changing parent is not supported.');\r\n }\r\n if (!$action || $action === 'merge') {\r\n existEl\r\n ? existEl.attr(elOptionCleaned)\r\n : createEl(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'replace') {\r\n removeEl(existEl, elMap);\r\n createEl(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'remove') {\r\n removeEl(existEl, elMap);\r\n }\r\n var el = elMap.get(id);\r\n if (el) {\r\n el.__ecGraphicWidthOption = elOption.width;\r\n el.__ecGraphicHeightOption = elOption.height;\r\n setEventData(el, graphicModel);\r\n }\r\n });\r\n },\r\n _relocate: function (graphicModel, api) {\r\n var elOptions = graphicModel.option.elements;\r\n var rootGroup = this.group;\r\n var elMap = this._elMap;\r\n var apiWidth = api.getWidth();\r\n var apiHeight = api.getHeight();\r\n for (var i = 0; i < elOptions.length; i++) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el || !el.isGroup) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var isParentRoot = parentEl === rootGroup;\r\n el.__ecGraphicWidth = parsePercent$2(el.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentEl.__ecGraphicWidth) || 0;\r\n el.__ecGraphicHeight = parsePercent$2(el.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentEl.__ecGraphicHeight) || 0;\r\n }\r\n for (var i = elOptions.length - 1; i >= 0; i--) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var containerInfo = parentEl === rootGroup\r\n ? {\r\n width: apiWidth,\r\n height: apiHeight\r\n }\r\n : {\r\n width: parentEl.__ecGraphicWidth,\r\n height: parentEl.__ecGraphicHeight\r\n };\r\n positionElement(el, elOption, containerInfo, null, { hv: elOption.hv, boundingMode: elOption.bounding });\r\n }\r\n },\r\n _clear: function () {\r\n var elMap = this._elMap;\r\n elMap.each(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n this._elMap = createHashMap();\r\n },\r\n dispose: function () {\r\n this._clear();\r\n }\r\n });\r\n function createEl(id, targetElParent, elOption, elMap) {\r\n var graphicType = elOption.type;\r\n if (__DEV__) {\r\n assert(graphicType, 'graphic type MUST be set');\r\n }\r\n var Clz = _nonShapeGraphicElements.hasOwnProperty(graphicType)\r\n ? _nonShapeGraphicElements[graphicType]\r\n : getShapeClass(graphicType);\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type can not be found');\r\n }\r\n var el = new Clz(elOption);\r\n targetElParent.add(el);\r\n elMap.set(id, el);\r\n el.__ecGraphicId = id;\r\n }\r\n function removeEl(existEl, elMap) {\r\n var existElParent = existEl && existEl.parent;\r\n if (existElParent) {\r\n existEl.type === 'group' && existEl.traverse(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n elMap.removeKey(existEl.__ecGraphicId);\r\n existElParent.remove(existEl);\r\n }\r\n }\r\n function getCleanedElOption(elOption) {\r\n elOption = extend({}, elOption);\r\n each(['id', 'parentId', '$action', 'hv', 'bounding'].concat(LOCATION_PARAMS), function (name) {\r\n delete elOption[name];\r\n });\r\n return elOption;\r\n }\r\n function isSetLoc(obj, props) {\r\n var isSet;\r\n each(props, function (prop) {\r\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\r\n });\r\n return isSet;\r\n }\r\n function setKeyInfoToNewElOption(resultItem, newElOption) {\r\n var existElOption = resultItem.existing;\r\n newElOption.id = resultItem.keyInfo.id;\r\n !newElOption.type && existElOption && (newElOption.type = existElOption.type);\r\n if (newElOption.parentId == null) {\r\n var newElParentOption = newElOption.parentOption;\r\n if (newElParentOption) {\r\n newElOption.parentId = newElParentOption.id;\r\n }\r\n else if (existElOption) {\r\n newElOption.parentId = existElOption.parentId;\r\n }\r\n }\r\n newElOption.parentOption = null;\r\n }\r\n function mergeNewElOptionToExist(existList, index, newElOption) {\r\n var newElOptCopy = extend({}, newElOption);\r\n var existElOption = existList[index];\r\n var $action = newElOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n if (existElOption) {\r\n if (__DEV__) {\r\n var newType = newElOption.type;\r\n assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\r\n }\r\n merge(existElOption, newElOptCopy, true);\r\n mergeLayoutParam(existElOption, newElOptCopy, { ignoreSize: true });\r\n copyLayoutParams(newElOption, existElOption);\r\n }\r\n else {\r\n existList[index] = newElOptCopy;\r\n }\r\n }\r\n else if ($action === 'replace') {\r\n existList[index] = newElOptCopy;\r\n }\r\n else if ($action === 'remove') {\r\n existElOption && (existList[index] = null);\r\n }\r\n }\r\n function setLayoutInfoToExist(existItem, newElOption) {\r\n if (!existItem) {\r\n return;\r\n }\r\n existItem.hv = newElOption.hv = [\r\n isSetLoc(newElOption, ['left', 'right']),\r\n isSetLoc(newElOption, ['top', 'bottom'])\r\n ];\r\n if (existItem.type === 'group') {\r\n existItem.width == null && (existItem.width = newElOption.width = 0);\r\n existItem.height == null && (existItem.height = newElOption.height = 0);\r\n }\r\n }\r\n function setEventData(el, graphicModel, elOption) {\r\n var eventData = el.eventData;\r\n if (!el.silent && !el.ignore && !eventData) {\r\n eventData = el.eventData = {\r\n componentType: 'graphic',\r\n componentIndex: graphicModel.componentIndex,\r\n name: el.name\r\n };\r\n }\r\n if (eventData) {\r\n eventData.info = el.info;\r\n }\r\n }\n\n function findPointFromSeries (finder, ecModel) {\r\n var point = [];\r\n var seriesIndex = finder.seriesIndex;\r\n var seriesModel;\r\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\r\n return {\r\n point: []\r\n };\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, finder);\r\n if (dataIndex == null || dataIndex < 0 || isArray(dataIndex)) {\r\n return { point: [] };\r\n }\r\n var el = data.getItemGraphicEl(dataIndex);\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (seriesModel.getTooltipPosition) {\r\n point = seriesModel.getTooltipPosition(dataIndex) || [];\r\n }\r\n else if (coordSys && coordSys.dataToPoint) {\r\n if (finder.isStacked) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueAxisDim = valueAxis.dim;\r\n var baseAxisDim = baseAxis.dim;\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\r\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\r\n point = coordSys.dataToPoint(stackedData) || [];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }), dataIndex)) || [];\r\n }\r\n }\r\n else if (el) {\r\n var rect = el.getBoundingRect().clone();\r\n rect.applyTransform(el.transform);\r\n point = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n return { point: point, el: el };\r\n }\n\n var inner$7 = makeInner();\r\n function axisTrigger (payload, ecModel, api) {\r\n var currTrigger = payload.currTrigger;\r\n var point = [payload.x, payload.y];\r\n var finder = payload;\r\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer')\r\n .coordSysAxesInfo;\r\n if (!coordSysAxesInfo) {\r\n return;\r\n }\r\n if (illegalPoint(point)) {\r\n point = findPointFromSeries({\r\n seriesIndex: finder.seriesIndex,\r\n dataIndex: finder.dataIndex\r\n }, ecModel).point;\r\n }\r\n var isIllegalPoint = illegalPoint(point);\r\n var inputAxesInfo = finder.axesInfo;\r\n var axesInfo = coordSysAxesInfo.axesInfo;\r\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\r\n var outputPayload = {};\r\n var showValueMap = {};\r\n var dataByCoordSys = {\r\n list: [],\r\n map: {}\r\n };\r\n var updaters = {\r\n showPointer: curry(showPointer, showValueMap),\r\n showTooltip: curry(showTooltip, dataByCoordSys)\r\n };\r\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\r\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\r\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\r\n var axis = axisInfo.axis;\r\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\r\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\r\n var val = inputAxisInfo && inputAxisInfo.value;\r\n if (val == null && !isIllegalPoint) {\r\n val = axis.pointToData(point);\r\n }\r\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\r\n }\r\n });\r\n });\r\n var linkTriggers = {};\r\n each(axesInfo, function (tarAxisInfo, tarKey) {\r\n var linkGroup = tarAxisInfo.linkGroup;\r\n if (linkGroup && !showValueMap[tarKey]) {\r\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\r\n var srcValItem = showValueMap[srcKey];\r\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\r\n var val = srcValItem.value;\r\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\r\n linkTriggers[tarAxisInfo.key] = val;\r\n }\r\n });\r\n }\r\n });\r\n each(linkTriggers, function (val, tarKey) {\r\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\r\n });\r\n updateModelActually(showValueMap, axesInfo, outputPayload);\r\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\r\n dispatchHighDownActually(axesInfo, dispatchAction, api);\r\n return outputPayload;\r\n }\r\n function processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\r\n var axis = axisInfo.axis;\r\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\r\n return;\r\n }\r\n if (!axisInfo.involveSeries) {\r\n updaters.showPointer(axisInfo, newValue);\r\n return;\r\n }\r\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var snapToValue = payloadInfo.snapToValue;\r\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\r\n extend(outputFinder, payloadBatch[0]);\r\n }\r\n if (!noSnap && axisInfo.snap) {\r\n if (axis.containData(snapToValue) && snapToValue != null) {\r\n newValue = snapToValue;\r\n }\r\n }\r\n updaters.showPointer(axisInfo, newValue, payloadBatch);\r\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\r\n }\r\n function buildPayloadsBySeries(value, axisInfo) {\r\n var axis = axisInfo.axis;\r\n var dim = axis.dim;\r\n var snapToValue = value;\r\n var payloadBatch = [];\r\n var minDist = Number.MAX_VALUE;\r\n var minDiff = -1;\r\n each(axisInfo.seriesModels, function (series, idx) {\r\n var dataDim = series.getData().mapDimensionsAll(dim);\r\n var seriesNestestValue;\r\n var dataIndices;\r\n if (series.getAxisTooltipData) {\r\n var result = series.getAxisTooltipData(dataDim, value, axis);\r\n dataIndices = result.dataIndices;\r\n seriesNestestValue = result.nestestValue;\r\n }\r\n else {\r\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\r\n if (!dataIndices.length) {\r\n return;\r\n }\r\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\r\n }\r\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\r\n return;\r\n }\r\n var diff = value - seriesNestestValue;\r\n var dist = Math.abs(diff);\r\n if (dist <= minDist) {\r\n if (dist < minDist || (diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n snapToValue = seriesNestestValue;\r\n payloadBatch.length = 0;\r\n }\r\n each(dataIndices, function (dataIndex) {\r\n payloadBatch.push({\r\n seriesIndex: series.seriesIndex,\r\n dataIndexInside: dataIndex,\r\n dataIndex: series.getData().getRawIndex(dataIndex)\r\n });\r\n });\r\n }\r\n });\r\n return {\r\n payloadBatch: payloadBatch,\r\n snapToValue: snapToValue\r\n };\r\n }\r\n function showPointer(showValueMap, axisInfo, value, payloadBatch) {\r\n showValueMap[axisInfo.key] = {\r\n value: value,\r\n payloadBatch: payloadBatch\r\n };\r\n }\r\n function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var axis = axisInfo.axis;\r\n var axisModel = axis.model;\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\r\n return;\r\n }\r\n var coordSysModel = axisInfo.coordSys.model;\r\n var coordSysKey = makeKey(coordSysModel);\r\n var coordSysItem = dataByCoordSys.map[coordSysKey];\r\n if (!coordSysItem) {\r\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\r\n coordSysId: coordSysModel.id,\r\n coordSysIndex: coordSysModel.componentIndex,\r\n coordSysType: coordSysModel.type,\r\n coordSysMainType: coordSysModel.mainType,\r\n dataByAxis: []\r\n };\r\n dataByCoordSys.list.push(coordSysItem);\r\n }\r\n coordSysItem.dataByAxis.push({\r\n axisDim: axis.dim,\r\n axisIndex: axisModel.componentIndex,\r\n axisType: axisModel.type,\r\n axisId: axisModel.id,\r\n value: value,\r\n valueLabelOpt: {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n },\r\n seriesDataIndices: payloadBatch.slice()\r\n });\r\n }\r\n function updateModelActually(showValueMap, axesInfo, outputPayload) {\r\n var outputAxesInfo = outputPayload.axesInfo = [];\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n var valItem = showValueMap[key];\r\n if (valItem) {\r\n !axisInfo.useHandle && (option.status = 'show');\r\n option.value = valItem.value;\r\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\r\n }\r\n else {\r\n !axisInfo.useHandle && (option.status = 'hide');\r\n }\r\n option.status === 'show' && outputAxesInfo.push({\r\n axisDim: axisInfo.axis.dim,\r\n axisIndex: axisInfo.axis.model.componentIndex,\r\n value: option.value\r\n });\r\n });\r\n }\r\n function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\r\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\r\n dispatchAction({ type: 'hideTip' });\r\n return;\r\n }\r\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\r\n dispatchAction({\r\n type: 'showTip',\r\n escapeConnect: true,\r\n x: point[0],\r\n y: point[1],\r\n tooltipOption: payload.tooltipOption,\r\n position: payload.position,\r\n dataIndexInside: sampleItem.dataIndexInside,\r\n dataIndex: sampleItem.dataIndex,\r\n seriesIndex: sampleItem.seriesIndex,\r\n dataByCoordSys: dataByCoordSys.list\r\n });\r\n }\r\n function dispatchHighDownActually(axesInfo, dispatchAction, api) {\r\n var zr = api.getZr();\r\n var highDownKey = 'axisPointerLastHighlights';\r\n var lastHighlights = inner$7(zr)[highDownKey] || {};\r\n var newHighlights = inner$7(zr)[highDownKey] = {};\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\r\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\r\n newHighlights[key] = batchItem;\r\n });\r\n });\r\n var toHighlight = [];\r\n var toDownplay = [];\r\n each(lastHighlights, function (batchItem, key) {\r\n !newHighlights[key] && toDownplay.push(batchItem);\r\n });\r\n each(newHighlights, function (batchItem, key) {\r\n !lastHighlights[key] && toHighlight.push(batchItem);\r\n });\r\n toDownplay.length && api.dispatchAction({\r\n type: 'downplay',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toDownplay\r\n });\r\n toHighlight.length && api.dispatchAction({\r\n type: 'highlight',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toHighlight\r\n });\r\n }\r\n function findInputAxisInfo(inputAxesInfo, axisInfo) {\r\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\r\n var inputAxisInfo = inputAxesInfo[i];\r\n if (axisInfo.axis.dim === inputAxisInfo.axisDim\r\n && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\r\n return inputAxisInfo;\r\n }\r\n }\r\n }\r\n function makeMapperParam(axisInfo) {\r\n var axisModel = axisInfo.axis.model;\r\n var item = {};\r\n var dim = item.axisDim = axisInfo.axis.dim;\r\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\r\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\r\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\r\n return item;\r\n }\r\n function illegalPoint(point) {\r\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\r\n }\n\n var inner$8 = makeInner();\r\n var each$4 = each;\r\n function register(key, api, handler) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n inner$8(zr).records || (inner$8(zr).records = {});\r\n initGlobalListeners(zr, api);\r\n var record = inner$8(zr).records[key] || (inner$8(zr).records[key] = {});\r\n record.handler = handler;\r\n }\r\n function initGlobalListeners(zr, api) {\r\n if (inner$8(zr).initialized) {\r\n return;\r\n }\r\n inner$8(zr).initialized = true;\r\n useHandler('click', curry(doEnter, 'click'));\r\n useHandler('mousemove', curry(doEnter, 'mousemove'));\r\n useHandler('globalout', onLeave);\r\n function useHandler(eventType, cb) {\r\n zr.on(eventType, function (e) {\r\n var dis = makeDispatchAction(api);\r\n each$4(inner$8(zr).records, function (record) {\r\n record && cb(record, e, dis.dispatchAction);\r\n });\r\n dispatchTooltipFinally(dis.pendings, api);\r\n });\r\n }\r\n }\r\n function dispatchTooltipFinally(pendings, api) {\r\n var showLen = pendings.showTip.length;\r\n var hideLen = pendings.hideTip.length;\r\n var actuallyPayload;\r\n if (showLen) {\r\n actuallyPayload = pendings.showTip[showLen - 1];\r\n }\r\n else if (hideLen) {\r\n actuallyPayload = pendings.hideTip[hideLen - 1];\r\n }\r\n if (actuallyPayload) {\r\n actuallyPayload.dispatchAction = null;\r\n api.dispatchAction(actuallyPayload);\r\n }\r\n }\r\n function onLeave(record, e, dispatchAction) {\r\n record.handler('leave', null, dispatchAction);\r\n }\r\n function doEnter(currTrigger, record, e, dispatchAction) {\r\n record.handler(currTrigger, e, dispatchAction);\r\n }\r\n function makeDispatchAction(api) {\r\n var pendings = {\r\n showTip: [],\r\n hideTip: []\r\n };\r\n var dispatchAction = function (payload) {\r\n var pendingList = pendings[payload.type];\r\n if (pendingList) {\r\n pendingList.push(payload);\r\n }\r\n else {\r\n payload.dispatchAction = dispatchAction;\r\n api.dispatchAction(payload);\r\n }\r\n };\r\n return {\r\n dispatchAction: dispatchAction,\r\n pendings: pendings\r\n };\r\n }\r\n function unregister(key, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n var record = (inner$8(zr).records || {})[key];\r\n if (record) {\r\n inner$8(zr).records[key] = null;\r\n }\r\n }\n\n var AxisPointerView = (function (_super) {\r\n __extends(AxisPointerView, _super);\r\n function AxisPointerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerView.type;\r\n return _this;\r\n }\r\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var triggerOn = globalAxisPointerModel.get('triggerOn')\r\n || (globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click');\r\n register('axisPointer', api, function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none'\r\n && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\r\n dispatchAction({\r\n type: 'updateAxisPointer',\r\n currTrigger: currTrigger,\r\n x: e && e.offsetX,\r\n y: e && e.offsetY\r\n });\r\n }\r\n });\r\n };\r\n AxisPointerView.prototype.remove = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.prototype.dispose = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.type = 'axisPointer';\r\n return AxisPointerView;\r\n }(ComponentView));\r\n ComponentView.registerClass(AxisPointerView);\n\n var inner$9 = makeInner();\r\n var clone$3 = clone;\r\n var bind$1 = bind;\r\n var BaseAxisPointer = (function () {\r\n function BaseAxisPointer() {\r\n this._dragging = false;\r\n this.animationThreshold = 15;\r\n }\r\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\r\n var value = axisPointerModel.get('value');\r\n var status = axisPointerModel.get('status');\r\n this._axisModel = axisModel;\r\n this._axisPointerModel = axisPointerModel;\r\n this._api = api;\r\n if (!forceRender\r\n && this._lastValue === value\r\n && this._lastStatus === status) {\r\n return;\r\n }\r\n this._lastValue = value;\r\n this._lastStatus = status;\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (!status || status === 'hide') {\r\n group && group.hide();\r\n handle && handle.hide();\r\n return;\r\n }\r\n group && group.show();\r\n handle && handle.show();\r\n var elOption = {};\r\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\r\n var graphicKey = elOption.graphicKey;\r\n if (graphicKey !== this._lastGraphicKey) {\r\n this.clear(api);\r\n }\r\n this._lastGraphicKey = graphicKey;\r\n var moveAnimation = this._moveAnimation =\r\n this.determineAnimation(axisModel, axisPointerModel);\r\n if (!group) {\r\n group = this._group = new Group();\r\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\r\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\r\n api.getZr().add(group);\r\n }\r\n else {\r\n var doUpdateProps = curry(updateProps$1, axisPointerModel, moveAnimation);\r\n this.updatePointerEl(group, elOption, doUpdateProps);\r\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\r\n }\r\n updateMandatoryProps(group, axisPointerModel, true);\r\n this._renderHandle(value);\r\n };\r\n BaseAxisPointer.prototype.remove = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.dispose = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\r\n var animation = axisPointerModel.get('animation');\r\n var axis = axisModel.axis;\r\n var isCategoryAxis = axis.type === 'category';\r\n var useSnap = axisPointerModel.get('snap');\r\n if (!useSnap && !isCategoryAxis) {\r\n return false;\r\n }\r\n if (animation === 'auto' || animation == null) {\r\n var animationThreshold = this.animationThreshold;\r\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\r\n return true;\r\n }\r\n if (useSnap) {\r\n var seriesDataCount = getAxisInfo(axisModel).seriesDataCount;\r\n var axisExtent = axis.getExtent();\r\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\r\n }\r\n return false;\r\n }\r\n return animation === true;\r\n };\r\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n };\r\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\r\n var pointerOption = elOption.pointer;\r\n if (pointerOption) {\r\n var pointerEl = inner$9(group).pointerEl = new graphic[pointerOption.type](clone$3(elOption.pointer));\r\n group.add(pointerEl);\r\n }\r\n };\r\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\r\n if (elOption.label) {\r\n var labelEl = inner$9(group).labelEl = new ZRText(clone$3(elOption.label));\r\n group.add(labelEl);\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\r\n var pointerEl = inner$9(group).pointerEl;\r\n if (pointerEl && elOption.pointer) {\r\n pointerEl.setStyle(elOption.pointer.style);\r\n updateProps(pointerEl, { shape: elOption.pointer.shape });\r\n }\r\n };\r\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\r\n var labelEl = inner$9(group).labelEl;\r\n if (labelEl) {\r\n labelEl.setStyle(elOption.label.style);\r\n updateProps(labelEl, {\r\n x: elOption.label.x,\r\n y: elOption.label.y\r\n });\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype._renderHandle = function (value) {\r\n if (this._dragging || !this.updateHandleTransform) {\r\n return;\r\n }\r\n var axisPointerModel = this._axisPointerModel;\r\n var zr = this._api.getZr();\r\n var handle = this._handle;\r\n var handleModel = axisPointerModel.getModel('handle');\r\n var status = axisPointerModel.get('status');\r\n if (!handleModel.get('show') || !status || status === 'hide') {\r\n handle && zr.remove(handle);\r\n this._handle = null;\r\n return;\r\n }\r\n var isInit;\r\n if (!this._handle) {\r\n isInit = true;\r\n handle = this._handle = createIcon(handleModel.get('icon'), {\r\n cursor: 'move',\r\n draggable: true,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n onmousedown: bind$1(this._onHandleDragMove, this, 0, 0),\r\n drift: bind$1(this._onHandleDragMove, this),\r\n ondragend: bind$1(this._onHandleDragEnd, this)\r\n });\r\n zr.add(handle);\r\n }\r\n updateMandatoryProps(handle, axisPointerModel, false);\r\n handle.setStyle(handleModel.getItemStyle(null, [\r\n 'color', 'borderColor', 'borderWidth', 'opacity',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ]));\r\n var handleSize = handleModel.get('size');\r\n if (!isArray(handleSize)) {\r\n handleSize = [handleSize, handleSize];\r\n }\r\n handle.scaleX = handleSize[0] / 2;\r\n handle.scaleY = handleSize[1] / 2;\r\n createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\r\n this._moveHandleToValue(value, isInit);\r\n };\r\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\r\n updateProps$1(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\r\n };\r\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n this._dragging = true;\r\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\r\n this._payloadInfo = trans;\r\n handle.stopAnimation();\r\n handle.attr(getHandleTransProps(trans));\r\n inner$9(handle).lastProp = null;\r\n this._doDispatchAxisPointer();\r\n };\r\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var payloadInfo = this._payloadInfo;\r\n var axisModel = this._axisModel;\r\n this._api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payloadInfo.cursorPoint[0],\r\n y: payloadInfo.cursorPoint[1],\r\n tooltipOption: payloadInfo.tooltipOption,\r\n axesInfo: [{\r\n axisDim: axisModel.axis.dim,\r\n axisIndex: axisModel.componentIndex\r\n }]\r\n });\r\n };\r\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\r\n this._dragging = false;\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var value = this._axisPointerModel.get('value');\r\n this._moveHandleToValue(value);\r\n this._api.dispatchAction({\r\n type: 'hideTip'\r\n });\r\n };\r\n BaseAxisPointer.prototype.clear = function (api) {\r\n this._lastValue = null;\r\n this._lastStatus = null;\r\n var zr = api.getZr();\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (zr && group) {\r\n this._lastGraphicKey = null;\r\n group && zr.remove(group);\r\n handle && zr.remove(handle);\r\n this._group = null;\r\n this._handle = null;\r\n this._payloadInfo = null;\r\n }\r\n };\r\n BaseAxisPointer.prototype.doClear = function () {\r\n };\r\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n };\r\n return BaseAxisPointer;\r\n }());\r\n function updateProps$1(animationModel, moveAnimation, el, props) {\r\n if (!propsEqual(inner$9(el).lastProp, props)) {\r\n inner$9(el).lastProp = props;\r\n moveAnimation\r\n ? updateProps(el, props, animationModel)\r\n : (el.stopAnimation(), el.attr(props));\r\n }\r\n }\r\n function propsEqual(lastProps, newProps) {\r\n if (isObject(lastProps) && isObject(newProps)) {\r\n var equals_1 = true;\r\n each(newProps, function (item, key) {\r\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\r\n });\r\n return !!equals_1;\r\n }\r\n else {\r\n return lastProps === newProps;\r\n }\r\n }\r\n function updateLabelShowHide(labelEl, axisPointerModel) {\r\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\r\n }\r\n function getHandleTransProps(trans) {\r\n return {\r\n x: trans.x || 0,\r\n y: trans.y || 0,\r\n rotation: trans.rotation || 0\r\n };\r\n }\r\n function updateMandatoryProps(group, axisPointerModel, silent) {\r\n var z = axisPointerModel.get('z');\r\n var zlevel = axisPointerModel.get('zlevel');\r\n group && group.traverse(function (el) {\r\n if (el.type !== 'group') {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n el.silent = silent;\r\n }\r\n });\r\n }\n\n function buildElStyle(axisPointerModel) {\r\n var axisPointerType = axisPointerModel.get('type');\r\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\r\n var style;\r\n if (axisPointerType === 'line') {\r\n style = styleModel.getLineStyle();\r\n style.fill = null;\r\n }\r\n else if (axisPointerType === 'shadow') {\r\n style = styleModel.getAreaStyle();\r\n style.stroke = null;\r\n }\r\n return style;\r\n }\r\n function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\r\n var value = axisPointerModel.get('value');\r\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n });\r\n var labelModel = axisPointerModel.getModel('label');\r\n var paddings = normalizeCssArray$1(labelModel.get('padding') || 0);\r\n var font = labelModel.getFont();\r\n var textRect = getBoundingRect(text, font);\r\n var position = labelPos.position;\r\n var width = textRect.width + paddings[1] + paddings[3];\r\n var height = textRect.height + paddings[0] + paddings[2];\r\n var align = labelPos.align;\r\n align === 'right' && (position[0] -= width);\r\n align === 'center' && (position[0] -= width / 2);\r\n var verticalAlign = labelPos.verticalAlign;\r\n verticalAlign === 'bottom' && (position[1] -= height);\r\n verticalAlign === 'middle' && (position[1] -= height / 2);\r\n confineInContainer(position, width, height, api);\r\n var bgColor = labelModel.get('backgroundColor');\r\n if (!bgColor || bgColor === 'auto') {\r\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n }\r\n elOption.label = {\r\n x: position[0],\r\n y: position[1],\r\n style: {\r\n text: text,\r\n textFont: font,\r\n fill: labelModel.getTextColor(),\r\n padding: paddings,\r\n backgroundColor: bgColor,\r\n borderColor: labelModel.get('borderColor') || 'transparent',\r\n borderRadius: labelModel.get('borderRadius'),\r\n borderWidth: labelModel.get('borderWidth') || 0,\r\n shadowBlur: labelModel.get('shadowBlur'),\r\n shadowColor: labelModel.get('shadowColor'),\r\n shadowOffsetX: labelModel.get('shadowOffsetX'),\r\n shadowOffsetY: labelModel.get('shadowOffsetY')\r\n },\r\n z2: 10\r\n };\r\n }\r\n function confineInContainer(position, width, height, api) {\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n position[0] = Math.min(position[0] + width, viewWidth) - width;\r\n position[1] = Math.min(position[1] + height, viewHeight) - height;\r\n position[0] = Math.max(position[0], 0);\r\n position[1] = Math.max(position[1], 0);\r\n }\r\n function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\r\n value = axis.scale.parse(value);\r\n var text = axis.scale.getLabel({\r\n value: value\r\n }, {\r\n precision: opt.precision\r\n });\r\n var formatter = opt.formatter;\r\n if (formatter) {\r\n var params_1 = {\r\n value: getAxisRawValue(axis, { value: value }),\r\n axisDimension: axis.dim,\r\n axisIndex: axis.index,\r\n seriesData: []\r\n };\r\n each(seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams && params_1.seriesData.push(dataParams);\r\n });\r\n if (isString(formatter)) {\r\n text = formatter.replace('{value}', text);\r\n }\r\n else if (isFunction(formatter)) {\r\n text = formatter(params_1);\r\n }\r\n }\r\n return text;\r\n }\r\n function getTransformedPosition(axis, value, layoutInfo) {\r\n var transform = create$1();\r\n rotate(transform, transform, layoutInfo.rotation);\r\n translate(transform, transform, layoutInfo.position);\r\n return applyTransform$1([\r\n axis.dataToCoord(value),\r\n (layoutInfo.labelOffset || 0)\r\n + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)\r\n ], transform);\r\n }\r\n function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\r\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\r\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\r\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\r\n align: textLayout.textAlign,\r\n verticalAlign: textLayout.textVerticalAlign\r\n });\r\n }\r\n function makeLineShape(p1, p2, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x1: p1[xDimIndex],\r\n y1: p1[1 - xDimIndex],\r\n x2: p2[xDimIndex],\r\n y2: p2[1 - xDimIndex]\r\n };\r\n }\r\n function makeRectShape(xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n }\n\n var CartesianAxisPointer = (function (_super) {\r\n __extends(CartesianAxisPointer, _super);\r\n function CartesianAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisPointerType = axisPointerModel.get('type');\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$1(grid.model, axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$1(axisModel.axis.grid.model, axisModel, {\r\n labelInside: false\r\n });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var pos = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisExtent = axis.getGlobalExtent(true);\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var dimIndex = axis.dim === 'x' ? 0 : 1;\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n var tooltipOptions = [\r\n { verticalAlign: 'middle' },\r\n { align: 'center' }\r\n ];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: tooltipOptions[dimIndex]\r\n };\r\n };\r\n return CartesianAxisPointer;\r\n }(BaseAxisPointer));\r\n function getCartesian(grid, axis) {\r\n var opt = {};\r\n opt[axis.dim + 'AxisIndex'] = axis.index;\r\n return grid.getCartesian(opt);\r\n }\r\n var pointerShapeBuilder = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getAxisDimIndex(axis) {\r\n return axis.dim === 'x' ? 0 : 1;\r\n }\r\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n\n var AxisPointerModel = (function (_super) {\r\n __extends(AxisPointerModel, _super);\r\n function AxisPointerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerModel.type;\r\n return _this;\r\n }\r\n AxisPointerModel.type = 'axisPointer';\r\n AxisPointerModel.defaultOption = {\r\n show: 'auto',\r\n zlevel: 0,\r\n z: 50,\r\n type: 'line',\r\n snap: false,\r\n triggerTooltip: true,\r\n value: null,\r\n status: null,\r\n link: [],\r\n animation: null,\r\n animationDurationUpdate: 200,\r\n lineStyle: {\r\n color: '#B9BEC9',\r\n width: 1,\r\n type: 'dashed'\r\n },\r\n shadowStyle: {\r\n color: 'rgba(210,219,238,0.2)'\r\n },\r\n label: {\r\n show: true,\r\n formatter: null,\r\n precision: 'auto',\r\n margin: 3,\r\n color: '#fff',\r\n padding: [5, 7, 5, 7],\r\n backgroundColor: 'auto',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderRadius: 3\r\n },\r\n handle: {\r\n show: false,\r\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\r\n size: 45,\r\n margin: 50,\r\n color: '#333',\r\n shadowBlur: 3,\r\n shadowColor: '#aaa',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 2,\r\n throttle: 40\r\n }\r\n };\r\n return AxisPointerModel;\r\n }(ComponentModel));\n\n ComponentModel.registerClass(AxisPointerModel);\r\n registerPreprocessor(function (option) {\r\n if (option) {\r\n (!option.axisPointer || option.axisPointer.length === 0)\r\n && (option.axisPointer = {});\r\n var link = option.axisPointer.link;\r\n if (link && !isArray(link)) {\r\n option.axisPointer.link = [link];\r\n }\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\r\n ecModel.getComponent('axisPointer').coordSysAxesInfo =\r\n collect(ecModel, api);\r\n });\r\n registerAction({\r\n type: 'updateAxisPointer',\r\n event: 'updateAxisPointer',\r\n update: ':updateAxisPointer'\r\n }, axisTrigger);\n\n var TooltipModel = (function (_super) {\r\n __extends(TooltipModel, _super);\r\n function TooltipModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipModel.type;\r\n return _this;\r\n }\r\n TooltipModel.type = 'tooltip';\r\n TooltipModel.dependencies = ['axisPointer'];\r\n TooltipModel.defaultOption = {\r\n zlevel: 0,\r\n z: 60,\r\n show: true,\r\n showContent: true,\r\n trigger: 'item',\r\n triggerOn: 'mousemove|click',\r\n alwaysShowContent: false,\r\n displayMode: 'single',\r\n renderMode: 'auto',\r\n confine: false,\r\n showDelay: 0,\r\n hideDelay: 100,\r\n transitionDuration: 0.4,\r\n enterable: false,\r\n backgroundColor: '#fff',\r\n shadowBlur: 10,\r\n shadowColor: 'rgba(0, 0, 0, .2)',\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 2,\r\n borderColor: '#333',\r\n borderRadius: 4,\r\n borderWidth: 1,\r\n padding: 10,\r\n extraCssText: '',\r\n axisPointer: {\r\n type: 'line',\r\n axis: 'auto',\r\n animation: 'auto',\r\n animationDurationUpdate: 200,\r\n animationEasingUpdate: 'exponentialOut',\r\n crossStyle: {\r\n color: '#999',\r\n width: 1,\r\n type: 'dashed',\r\n textStyle: {}\r\n }\r\n },\r\n textStyle: {\r\n color: '#666',\r\n fontSize: 14\r\n }\r\n };\r\n return TooltipModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TooltipModel);\n\n var each$5 = each;\r\n var toCamelCase$1 = toCamelCase;\r\n var vendors = ['', '-webkit-', '-moz-', '-o-'];\r\n var gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\r\n function mirrowPos(pos) {\r\n pos = pos === 'left'\r\n ? 'right'\r\n : pos === 'right'\r\n ? 'left'\r\n : pos === 'top'\r\n ? 'bottom'\r\n : 'top';\r\n return pos;\r\n }\r\n function getFinalColor(color) {\r\n var finalNearPointColor = '#fff';\r\n if (isObject(color) && color.type !== 'pattern') {\r\n finalNearPointColor = color.colorStops[0].color;\r\n }\r\n else if (isObject(color) && (color.type === 'pattern')) {\r\n finalNearPointColor = 'transparent';\r\n }\r\n else if (isString(color)) {\r\n finalNearPointColor = color;\r\n }\r\n return finalNearPointColor;\r\n }\r\n function assembleArrow(backgroundColor, borderColor, arrowPosition) {\r\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\r\n return '';\r\n }\r\n borderColor = getFinalColor(borderColor);\r\n var arrowPos = mirrowPos(arrowPosition);\r\n var centerPos = '';\r\n var rotate = 0;\r\n if (['left', 'right'].includes(arrowPos)) {\r\n centerPos = arrowPos + \":-6px;top:50%;transform:translateY(-50%)\";\r\n rotate = arrowPos === 'left' ? -225 : -45;\r\n }\r\n else {\r\n centerPos = arrowPos + \":-6px;left:50%;transform:translateX(-50%)\";\r\n rotate = arrowPos === 'top' ? 225 : 45;\r\n }\r\n var styleCss = [\r\n 'style=\"position:absolute;width:10px;height:10px;',\r\n \"\" + centerPos,\r\n \"rotate(\" + rotate + \"deg);\",\r\n \"border-bottom: \" + borderColor + \" solid 1px;\",\r\n \"border-right: \" + borderColor + \" solid 1px;\",\r\n \"background-color: \" + backgroundColor + \";\",\r\n 'box-shadow: 8px 8px 16px -3px #000',\r\n '\"'\r\n ];\r\n return \"
\";\r\n }\r\n function assembleTransition(duration) {\r\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\r\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ','\r\n + 'top ' + duration + 's ' + transitionCurve;\r\n return map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transition:' + transitionText;\r\n }).join(';');\r\n }\r\n function assembleFont(textStyleModel) {\r\n var cssText = [];\r\n var fontSize = textStyleModel.get('fontSize');\r\n var color = textStyleModel.getTextColor();\r\n color && cssText.push('color:' + color);\r\n cssText.push('font:' + textStyleModel.getFont());\r\n fontSize\r\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\r\n each$5(['decoration', 'align'], function (name) {\r\n var val = textStyleModel.get(name);\r\n val && cssText.push('text-' + name + ':' + val);\r\n });\r\n return cssText.join(';');\r\n }\r\n function assembleCssText(tooltipModel) {\r\n var cssText = [];\r\n var transitionDuration = tooltipModel.get('transitionDuration');\r\n var backgroundColor = tooltipModel.get('backgroundColor');\r\n var shadowBlur = tooltipModel.get('shadowBlur');\r\n var shadowColor = tooltipModel.get('shadowColor');\r\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\r\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n var padding = tooltipModel.get('padding');\r\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\r\n cssText.push('box-shadow:' + boxShadow);\r\n transitionDuration\r\n && !(['top', 'left', 'bottom', 'right'].includes(tooltipModel.get('position')))\r\n && tooltipModel.get('trigger') !== 'item'\r\n && cssText.push(assembleTransition(transitionDuration));\r\n if (backgroundColor) {\r\n if (env.canvasSupported) {\r\n cssText.push('background-Color:' + backgroundColor);\r\n }\r\n else {\r\n cssText.push('background-Color:#' + toHex(backgroundColor));\r\n cssText.push('filter:alpha(opacity=70)');\r\n }\r\n }\r\n each$5(['width', 'color', 'radius'], function (name) {\r\n var borderName = 'border-' + name;\r\n var camelCase = toCamelCase$1(borderName);\r\n var val = tooltipModel.get(camelCase);\r\n val != null\r\n && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\r\n });\r\n cssText.push(assembleFont(textStyleModel));\r\n if (padding != null) {\r\n cssText.push('padding:' + normalizeCssArray$1(padding).join('px ') + 'px');\r\n }\r\n return cssText.join(';') + ';';\r\n }\r\n function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\r\n var zrPainter = zr && zr.painter;\r\n if (appendToBody) {\r\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\r\n if (zrViewportRoot) {\r\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\r\n }\r\n }\r\n else {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\r\n if (viewportRootOffset) {\r\n out[0] += viewportRootOffset.offsetLeft;\r\n out[1] += viewportRootOffset.offsetTop;\r\n }\r\n }\r\n }\r\n var TooltipHTMLContent = (function () {\r\n function TooltipHTMLContent(container, api, opt) {\r\n this._show = false;\r\n this._styleCoord = [0, 0];\r\n this._enterable = true;\r\n if (env.wxa) {\r\n return null;\r\n }\r\n var el = document.createElement('div');\r\n el.domBelongToZr = true;\r\n this.el = el;\r\n var zr = this._zr = api.getZr();\r\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\r\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\r\n if (appendToBody) {\r\n document.body.appendChild(el);\r\n }\r\n else {\r\n container.appendChild(el);\r\n }\r\n this._container = container;\r\n var self = this;\r\n el.onmouseenter = function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n };\r\n el.onmousemove = function (e) {\r\n e = e || window.event;\r\n if (!self._enterable) {\r\n var handler = zr.handler;\r\n var zrViewportRoot = zr.painter.getViewportRoot();\r\n normalizeEvent(zrViewportRoot, e, true);\r\n handler.dispatch('mousemove', e);\r\n }\r\n };\r\n el.onmouseleave = function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n };\r\n }\r\n TooltipHTMLContent.prototype.update = function () {\r\n var container = this._container;\r\n var stl = container.currentStyle\r\n || document.defaultView.getComputedStyle(container);\r\n var domStyle = container.style;\r\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\r\n domStyle.position = 'relative';\r\n }\r\n };\r\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\r\n clearTimeout(this._hideTimeout);\r\n var el = this.el;\r\n var styleCoord = this._styleCoord;\r\n var offset = el.offsetHeight / 2;\r\n nearPointColor = getFinalColor(nearPointColor);\r\n el.style.cssText = gCssText + assembleCssText(tooltipModel)\r\n + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;'\r\n + (\"border-color: \" + nearPointColor + \";\")\r\n + (tooltipModel.get('extraCssText') || '');\r\n el.style.display = el.innerHTML ? 'block' : 'none';\r\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\r\n this._show = true;\r\n };\r\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\r\n if (content == null) {\r\n return;\r\n }\r\n this.el.innerHTML = content;\r\n this.el.innerHTML += (isString(arrowPosition)\r\n && tooltipModel.get('trigger') === 'item'\r\n && !tooltipModel.get('confine'))\r\n ? assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition) : '';\r\n };\r\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipHTMLContent.prototype.getSize = function () {\r\n var el = this.el;\r\n return [el.clientWidth, el.clientHeight];\r\n };\r\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\r\n var style = this.el.style;\r\n style.left = styleCoord[0] + 'px';\r\n style.top = styleCoord[1] + 'px';\r\n };\r\n TooltipHTMLContent.prototype.hide = function () {\r\n this.el.style.display = 'none';\r\n this._show = false;\r\n };\r\n TooltipHTMLContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipHTMLContent.prototype.dispose = function () {\r\n this.el.parentNode.removeChild(this.el);\r\n };\r\n TooltipHTMLContent.prototype.getOuterSize = function () {\r\n var width = this.el.clientWidth;\r\n var height = this.el.clientHeight;\r\n if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var stl = document.defaultView.getComputedStyle(this.el);\r\n if (stl) {\r\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\r\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\r\n }\r\n }\r\n return { width: width, height: height };\r\n };\r\n return TooltipHTMLContent;\r\n }());\n\n var TooltipRichContent = (function () {\r\n function TooltipRichContent(api) {\r\n this._show = false;\r\n this._enterable = true;\r\n this._zr = api.getZr();\r\n }\r\n TooltipRichContent.prototype.update = function () {\r\n };\r\n TooltipRichContent.prototype.show = function () {\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n }\r\n this.el.show();\r\n this._show = true;\r\n };\r\n TooltipRichContent.prototype.setContent = function (content, markerRich, tooltipModel, borderColor, arrowPosition) {\r\n if (this.el) {\r\n this._zr.remove(this.el);\r\n }\r\n var markers = {};\r\n var text = content;\r\n var prefix = '{marker';\r\n var suffix = '|}';\r\n var startId = text.indexOf(prefix);\r\n while (startId >= 0) {\r\n var endId = text.indexOf(suffix);\r\n var name_1 = text.substr(startId + prefix.length, endId - startId - prefix.length);\r\n if (name_1.indexOf('sub') > -1) {\r\n markers['marker' + name_1] = {\r\n width: 4,\r\n height: 4,\r\n borderRadius: 2,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n else {\r\n markers['marker' + name_1] = {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 5,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n text = text.substr(endId + 1);\r\n startId = text.indexOf(prefix);\r\n }\r\n this.el = new ZRText({\r\n style: {\r\n rich: markers,\r\n text: content,\r\n lineHeight: 20,\r\n backgroundColor: tooltipModel.get('backgroundColor'),\r\n borderRadius: tooltipModel.get('borderRadius'),\r\n borderWidth: 1,\r\n borderColor: borderColor,\r\n shadowColor: tooltipModel.get('shadowColor'),\r\n shadowBlur: tooltipModel.get('shadowBlur'),\r\n shadowOffsetX: tooltipModel.get('shadowOffsetX'),\r\n shadowOffsetY: tooltipModel.get('shadowOffsetY'),\r\n fill: tooltipModel.get(['textStyle', 'color']),\r\n padding: tooltipModel.get('padding'),\r\n verticalAlign: 'middle',\r\n align: 'left'\r\n },\r\n z: tooltipModel.get('z')\r\n });\r\n this._zr.add(this.el);\r\n var self = this;\r\n this.el.on('mouseover', function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n });\r\n this.el.on('mouseout', function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n });\r\n };\r\n TooltipRichContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipRichContent.prototype.getSize = function () {\r\n var bounding = this.el.getBoundingRect();\r\n return [bounding.width, bounding.height];\r\n };\r\n TooltipRichContent.prototype.moveTo = function (x, y) {\r\n var el = this.el;\r\n if (el) {\r\n el.x = x;\r\n el.y = y;\r\n el.markRedraw();\r\n }\r\n };\r\n TooltipRichContent.prototype.hide = function () {\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n this._show = false;\r\n };\r\n TooltipRichContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipRichContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipRichContent.prototype.getOuterSize = function () {\r\n var size = this.getSize();\r\n return {\r\n width: size[0],\r\n height: size[1]\r\n };\r\n };\r\n TooltipRichContent.prototype.dispose = function () {\r\n this._zr.remove(this.el);\r\n };\r\n return TooltipRichContent;\r\n }());\n\n var bind$2 = bind;\r\n var each$6 = each;\r\n var parsePercent$3 = parsePercent$2;\r\n var proxyRect = new Rect({\r\n shape: { x: -1, y: -1, width: 2, height: 2 }\r\n });\r\n var TooltipView = (function (_super) {\r\n __extends(TooltipView, _super);\r\n function TooltipView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipView.type;\r\n return _this;\r\n }\r\n TooltipView.prototype.init = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var tooltipModel = ecModel.getComponent('tooltip');\r\n var renderMode = tooltipModel.get('renderMode');\r\n this._renderMode = getTooltipRenderMode(renderMode);\r\n var tooltipContent;\r\n if (this._renderMode === 'html') {\r\n tooltipContent = new TooltipHTMLContent(api.getDom(), api, {\r\n appendToBody: tooltipModel.get('appendToBody', true)\r\n });\r\n this._newLine = '';\r\n }\r\n else {\r\n tooltipContent = new TooltipRichContent(api);\r\n this._newLine = '\\n';\r\n }\r\n this._tooltipContent = tooltipContent;\r\n };\r\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this.group.removeAll();\r\n this._tooltipModel = tooltipModel;\r\n this._ecModel = ecModel;\r\n this._api = api;\r\n this._lastDataByCoordSys = null;\r\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n var tooltipContent = this._tooltipContent;\r\n tooltipContent.update();\r\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\r\n this._initGlobalListener();\r\n this._keepShow();\r\n };\r\n TooltipView.prototype._initGlobalListener = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var triggerOn = tooltipModel.get('triggerOn');\r\n register('itemTooltip', this._api, bind$2(function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none') {\r\n if (triggerOn.indexOf(currTrigger) >= 0) {\r\n this._tryShow(e, dispatchAction);\r\n }\r\n else if (currTrigger === 'leave') {\r\n this._hide(dispatchAction);\r\n }\r\n }\r\n }, this));\r\n };\r\n TooltipView.prototype._keepShow = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var ecModel = this._ecModel;\r\n var api = this._api;\r\n if (this._lastX != null\r\n && this._lastY != null\r\n && tooltipModel.get('triggerOn') !== 'none') {\r\n var self_1 = this;\r\n clearTimeout(this._refreshUpdateTimeout);\r\n this._refreshUpdateTimeout = setTimeout(function () {\r\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\r\n x: self_1._lastX,\r\n y: self_1._lastY\r\n });\r\n });\r\n }\r\n };\r\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\r\n if (payload.from === this.uid || env.node) {\r\n return;\r\n }\r\n var dispatchAction = makeDispatchAction$1(payload, api);\r\n this._ticket = '';\r\n var dataByCoordSys = payload.dataByCoordSys;\r\n if (payload.tooltip && payload.x != null && payload.y != null) {\r\n var el = proxyRect;\r\n el.x = payload.x;\r\n el.y = payload.y;\r\n el.update();\r\n el.tooltip = payload.tooltip;\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n target: el\r\n }, dispatchAction);\r\n }\r\n else if (dataByCoordSys) {\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n dataByCoordSys: dataByCoordSys,\r\n tooltipOption: payload.tooltipOption\r\n }, dispatchAction);\r\n }\r\n else if (payload.seriesIndex != null) {\r\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\r\n return;\r\n }\r\n var pointInfo = findPointFromSeries(payload, ecModel);\r\n var cx = pointInfo.point[0];\r\n var cy = pointInfo.point[1];\r\n if (cx != null && cy != null) {\r\n this._tryShow({\r\n offsetX: cx,\r\n offsetY: cy,\r\n position: payload.position,\r\n target: pointInfo.el\r\n }, dispatchAction);\r\n }\r\n }\r\n else if (payload.x != null && payload.y != null) {\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payload.x,\r\n y: payload.y\r\n });\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n target: api.getZr().findHover(payload.x, payload.y).target\r\n }, dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\r\n var tooltipContent = this._tooltipContent;\r\n if (!this._alwaysShowContent && this._tooltipModel) {\r\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\r\n }\r\n this._lastX = this._lastY = null;\r\n if (payload.from !== this.uid) {\r\n this._hide(makeDispatchAction$1(payload, api));\r\n }\r\n };\r\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\r\n var seriesIndex = payload.seriesIndex;\r\n var dataIndex = payload.dataIndex;\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\r\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (!seriesModel) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var tooltipCascadedModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n seriesModel,\r\n (seriesModel.coordinateSystem || {}).model,\r\n tooltipModel\r\n ]);\r\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\r\n return;\r\n }\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n seriesIndex: seriesIndex,\r\n dataIndex: dataIndex,\r\n position: payload.position\r\n });\r\n return true;\r\n };\r\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\r\n var el = e.target;\r\n var tooltipModel = this._tooltipModel;\r\n if (!tooltipModel) {\r\n return;\r\n }\r\n this._lastX = e.offsetX;\r\n this._lastY = e.offsetY;\r\n var dataByCoordSys = e.dataByCoordSys;\r\n if (dataByCoordSys && dataByCoordSys.length) {\r\n this._showAxisTooltip(dataByCoordSys, e);\r\n }\r\n else if (el && getECData(el).dataIndex != null) {\r\n this._lastDataByCoordSys = null;\r\n this._showSeriesItemTooltip(e, el, dispatchAction);\r\n }\r\n else if (el && el.tooltip) {\r\n this._lastDataByCoordSys = null;\r\n this._showComponentItemTooltip(e, el, dispatchAction);\r\n }\r\n else {\r\n this._lastDataByCoordSys = null;\r\n this._hide(dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\r\n var delay = tooltipModel.get('showDelay');\r\n cb = bind(cb, this);\r\n clearTimeout(this._showTimout);\r\n delay > 0\r\n ? (this._showTimout = setTimeout(cb, delay))\r\n : cb();\r\n };\r\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\r\n var ecModel = this._ecModel;\r\n var globalTooltipModel = this._tooltipModel;\r\n var point = [e.offsetX, e.offsetY];\r\n var singleDefaultHTML = [];\r\n var singleParamsList = [];\r\n var singleTooltipModel = buildTooltipModel([\r\n e.tooltipOption,\r\n globalTooltipModel\r\n ]);\r\n var renderMode = this._renderMode;\r\n var newLine = this._newLine;\r\n var markers = {};\r\n each$6(dataByCoordSys, function (itemCoordSys) {\r\n each$6(itemCoordSys.dataByAxis, function (item) {\r\n var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex);\r\n var axisValue = item.value;\r\n var seriesDefaultHTML = [];\r\n if (!axisModel || axisValue == null) {\r\n return;\r\n }\r\n var valueLabel = getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt);\r\n each(item.seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams.axisDim = item.axisDim;\r\n dataParams.axisIndex = item.axisIndex;\r\n dataParams.axisType = item.axisType;\r\n dataParams.axisId = item.axisId;\r\n dataParams.axisValue = getAxisRawValue(axisModel.axis, { value: axisValue });\r\n dataParams.axisValueLabel = valueLabel;\r\n dataParams.marker = getTooltipMarker({\r\n color: dataParams.color,\r\n renderMode: renderMode\r\n });\r\n singleParamsList.push(dataParams);\r\n var seriesTooltip = series.formatTooltip(dataIndex, true, null, renderMode);\r\n var html;\r\n if (isObject(seriesTooltip)) {\r\n html = seriesTooltip.html;\r\n var newMarkers = seriesTooltip.markers;\r\n merge(markers, newMarkers);\r\n }\r\n else {\r\n html = seriesTooltip;\r\n }\r\n dataParams.html = html;\r\n });\r\n switch (singleTooltipModel.get('order')) {\r\n case 'valueAsc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(a.data) - +(b.data);\r\n });\r\n break;\r\n case 'valueDesc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(b.data) - +(a.data);\r\n });\r\n break;\r\n case 'seriesDesc':\r\n singleParamsList.reverse();\r\n break;\r\n }\r\n each(singleParamsList, function (params) {\r\n seriesDefaultHTML.push(params.html);\r\n delete params.html;\r\n });\r\n var firstLine = valueLabel;\r\n if (renderMode !== 'html') {\r\n singleDefaultHTML.push(seriesDefaultHTML.join(newLine));\r\n }\r\n else {\r\n singleDefaultHTML.push((firstLine\r\n ? ('
'\r\n + encodeHTML(firstLine) + '
'\r\n + newLine)\r\n : '')\r\n + seriesDefaultHTML.reverse().join(newLine));\r\n }\r\n singleDefaultHTML.push('
');\r\n });\r\n }, this);\r\n singleDefaultHTML.pop();\r\n var singleDefaultHTMLStr = singleDefaultHTML.join(this._newLine + this._newLine);\r\n var positionExpr = e.position;\r\n this._showOrMove(singleTooltipModel, function () {\r\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\r\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList);\r\n }\r\n else {\r\n this._showTooltipContent(singleTooltipModel, singleDefaultHTMLStr, singleParamsList, Math.random() + '', point[0], point[1], positionExpr, undefined, markers);\r\n }\r\n });\r\n };\r\n TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\r\n var ecModel = this._ecModel;\r\n var ecData = getECData(el);\r\n var seriesIndex = ecData.seriesIndex;\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n var dataModel = ecData.dataModel || seriesModel;\r\n var dataIndex = ecData.dataIndex;\r\n var dataType = ecData.dataType;\r\n var data = dataModel.getData(dataType);\r\n var tooltipModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n dataModel,\r\n seriesModel && (seriesModel.coordinateSystem || {}).model,\r\n this._tooltipModel\r\n ]);\r\n var tooltipTrigger = tooltipModel.get('trigger');\r\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\r\n return;\r\n }\r\n var tooltipOrder = tooltipModel.get('order');\r\n var params = dataModel.getDataParams(dataIndex, dataType);\r\n params.marker = getTooltipMarker({\r\n color: params.color,\r\n renderMode: this._renderMode\r\n });\r\n var seriesTooltip = dataModel.formatTooltip(dataIndex, false, dataType, this._renderMode, tooltipOrder);\r\n var defaultHtml;\r\n var markers;\r\n if (isObject(seriesTooltip)) {\r\n defaultHtml = seriesTooltip.html;\r\n markers = seriesTooltip.markers;\r\n }\r\n else {\r\n defaultHtml = seriesTooltip;\r\n markers = null;\r\n }\r\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\r\n this._showOrMove(tooltipModel, function () {\r\n this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markers);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n dataIndexInside: dataIndex,\r\n dataIndex: data.getRawIndex(dataIndex),\r\n seriesIndex: seriesIndex,\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\r\n var tooltipOpt = el.tooltip;\r\n if (isString(tooltipOpt)) {\r\n var content = tooltipOpt;\r\n tooltipOpt = {\r\n content: content,\r\n formatter: content\r\n };\r\n }\r\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\r\n var defaultHtml = subTooltipModel.get('content');\r\n var asyncTicket = Math.random() + '';\r\n this._showOrMove(subTooltipModel, function () {\r\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markers) {\r\n this._ticket = '';\r\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\r\n return;\r\n }\r\n var tooltipContent = this._tooltipContent;\r\n var formatter = tooltipModel.get('formatter');\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var html = defaultHtml;\r\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'));\r\n if (formatter && isString(formatter)) {\r\n html = formatTpl(formatter, params, true);\r\n }\r\n else if (isFunction(formatter)) {\r\n var callback = bind$2(function (cbTicket, html) {\r\n if (cbTicket === this._ticket) {\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n }\r\n }, this);\r\n this._ticket = asyncTicket;\r\n html = formatter(params, asyncTicket, callback);\r\n }\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n tooltipContent.show(tooltipModel, nearPoint.color);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n };\r\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger) {\r\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\r\n return {\r\n color: this._renderMode === 'html' ? '#fff' : 'none'\r\n };\r\n }\r\n if (!isArray(tooltipDataParams)) {\r\n return {\r\n color: tooltipDataParams.color || tooltipDataParams.borderColor\r\n };\r\n }\r\n };\r\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\r\n var viewWidth = this._api.getWidth();\r\n var viewHeight = this._api.getHeight();\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var contentSize = content.getSize();\r\n var align = tooltipModel.get('align');\r\n var vAlign = tooltipModel.get('verticalAlign');\r\n var rect = el && el.getBoundingRect().clone();\r\n el && rect.applyTransform(el.transform);\r\n if (isFunction(positionExpr)) {\r\n positionExpr = positionExpr([x, y], params, content.el, rect, {\r\n viewSize: [viewWidth, viewHeight],\r\n contentSize: contentSize.slice()\r\n });\r\n }\r\n if (isArray(positionExpr)) {\r\n x = parsePercent$3(positionExpr[0], viewWidth);\r\n y = parsePercent$3(positionExpr[1], viewHeight);\r\n }\r\n else if (isObject(positionExpr)) {\r\n var boxLayoutPosition = positionExpr;\r\n boxLayoutPosition.width = contentSize[0];\r\n boxLayoutPosition.height = contentSize[1];\r\n var layoutRect = getLayoutRect(boxLayoutPosition, { width: viewWidth, height: viewHeight });\r\n x = layoutRect.x;\r\n y = layoutRect.y;\r\n align = null;\r\n vAlign = null;\r\n }\r\n else if (isString(positionExpr) && el) {\r\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n else {\r\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\r\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\r\n if (tooltipModel.get('confine')) {\r\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n content.moveTo(x, y);\r\n };\r\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\r\n var lastCoordSys = this._lastDataByCoordSys;\r\n var contentNotChanged = !!lastCoordSys\r\n && lastCoordSys.length === dataByCoordSys.length;\r\n contentNotChanged && each$6(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\r\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\r\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\r\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\r\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\r\n contentNotChanged && each$6(lastDataByAxis, function (lastItem, indexAxis) {\r\n var thisItem = thisDataByAxis[indexAxis] || {};\r\n var lastIndices = lastItem.seriesDataIndices || [];\r\n var newIndices = thisItem.seriesDataIndices || [];\r\n contentNotChanged = contentNotChanged\r\n && lastItem.value === thisItem.value\r\n && lastItem.axisType === thisItem.axisType\r\n && lastItem.axisId === thisItem.axisId\r\n && lastIndices.length === newIndices.length;\r\n contentNotChanged && each$6(lastIndices, function (lastIdxItem, j) {\r\n var newIdxItem = newIndices[j];\r\n contentNotChanged = contentNotChanged\r\n && lastIdxItem.seriesIndex === newIdxItem.seriesIndex\r\n && lastIdxItem.dataIndex === newIdxItem.dataIndex;\r\n });\r\n });\r\n });\r\n this._lastDataByCoordSys = dataByCoordSys;\r\n return !!contentNotChanged;\r\n };\r\n TooltipView.prototype._hide = function (dispatchAction) {\r\n this._lastDataByCoordSys = null;\r\n dispatchAction({\r\n type: 'hideTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype.dispose = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this._tooltipContent.dispose();\r\n unregister('itemTooltip', api);\r\n };\r\n TooltipView.type = 'tooltip';\r\n return TooltipView;\r\n }(ComponentView));\r\n function buildTooltipModel(modelCascade) {\r\n var resultModel = modelCascade.pop();\r\n while (modelCascade.length) {\r\n var tooltipOpt = modelCascade.pop();\r\n if (tooltipOpt) {\r\n if (tooltipOpt instanceof Model) {\r\n tooltipOpt = tooltipOpt.get('tooltip', true);\r\n }\r\n if (isString(tooltipOpt)) {\r\n tooltipOpt = {\r\n formatter: tooltipOpt\r\n };\r\n }\r\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\r\n }\r\n }\r\n return resultModel;\r\n }\r\n function makeDispatchAction$1(payload, api) {\r\n return payload.dispatchAction || bind(api.dispatchAction, api);\r\n }\r\n function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n if (gapH != null) {\r\n if (x + width + gapH > viewWidth) {\r\n x -= width + gapH;\r\n }\r\n else {\r\n x += gapH;\r\n }\r\n }\r\n if (gapV != null) {\r\n if (y + height + gapV > viewHeight) {\r\n y -= height + gapV;\r\n }\r\n else {\r\n y += gapV;\r\n }\r\n }\r\n return [x, y];\r\n }\r\n function confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n x = Math.min(x + width, viewWidth) - width;\r\n y = Math.min(y + height, viewHeight) - height;\r\n x = Math.max(x, 0);\r\n y = Math.max(y, 0);\r\n return [x, y];\r\n }\r\n function calcTooltipPosition(position, rect, contentSize) {\r\n var domWidth = contentSize[0];\r\n var domHeight = contentSize[1];\r\n var gap = 10;\r\n var offset = 5;\r\n var x = 0;\r\n var y = 0;\r\n var rectWidth = rect.width;\r\n var rectHeight = rect.height;\r\n switch (position) {\r\n case 'inside':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'top':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y - domHeight - gap;\r\n break;\r\n case 'bottom':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight + gap;\r\n break;\r\n case 'left':\r\n x = rect.x - domWidth - gap - offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'right':\r\n x = rect.x + rectWidth + gap + offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n }\r\n return [x, y];\r\n }\r\n function isCenterAlign(align) {\r\n return align === 'center' || align === 'middle';\r\n }\r\n ComponentView.registerClass(TooltipView);\n\n registerAction({\r\n type: 'showTip',\r\n event: 'showTip',\r\n update: 'tooltip:manuallyShowTip'\r\n }, function () { });\r\n registerAction({\r\n type: 'hideTip',\r\n event: 'hideTip',\r\n update: 'tooltip:manuallyHideTip'\r\n }, function () { });\n\n var getDefaultSelectorOptions = function (ecModel, type) {\r\n if (type === 'all') {\r\n return {\r\n type: 'all',\r\n title: ecModel.getLocale(['legend', 'selector', 'all'])\r\n };\r\n }\r\n else if (type === 'inverse') {\r\n return {\r\n type: 'inverse',\r\n title: ecModel.getLocale(['legend', 'selector', 'inverse'])\r\n };\r\n }\r\n };\r\n var LegendModel = (function (_super) {\r\n __extends(LegendModel, _super);\r\n function LegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendModel.type;\r\n _this.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n return _this;\r\n }\r\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n option.selected = option.selected || {};\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype._updateSelector = function (option) {\r\n var selector = option.selector;\r\n var ecModel = this.ecModel;\r\n if (selector === true) {\r\n selector = option.selector = ['all', 'inverse'];\r\n }\r\n if (isArray(selector)) {\r\n each(selector, function (item, index) {\r\n isString(item) && (item = { type: item });\r\n selector[index] = merge(item, getDefaultSelectorOptions(ecModel, item.type));\r\n });\r\n }\r\n };\r\n LegendModel.prototype.optionUpdated = function () {\r\n this._updateData(this.ecModel);\r\n var legendData = this._data;\r\n if (legendData[0] && this.get('selectedMode') === 'single') {\r\n var hasSelected = false;\r\n for (var i = 0; i < legendData.length; i++) {\r\n var name_1 = legendData[i].get('name');\r\n if (this.isSelected(name_1)) {\r\n this.select(name_1);\r\n hasSelected = true;\r\n break;\r\n }\r\n }\r\n !hasSelected && this.select(legendData[0].get('name'));\r\n }\r\n };\r\n LegendModel.prototype._updateData = function (ecModel) {\r\n var potentialData = [];\r\n var availableNames = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var seriesName = seriesModel.name;\r\n availableNames.push(seriesName);\r\n var isPotential;\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n var names = provider.getAllNames();\r\n if (!ecModel.isSeriesFiltered(seriesModel)) {\r\n availableNames = availableNames.concat(names);\r\n }\r\n if (names.length) {\r\n potentialData = potentialData.concat(names);\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n if (isPotential && isNameSpecified(seriesModel)) {\r\n potentialData.push(seriesModel.name);\r\n }\r\n });\r\n this._availableNames = availableNames;\r\n var rawData = this.get('data') || potentialData;\r\n var legendData = map(rawData, function (dataItem) {\r\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\r\n dataItem = {\r\n name: dataItem\r\n };\r\n }\r\n return new Model(dataItem, this, this.ecModel);\r\n }, this);\r\n this._data = legendData;\r\n };\r\n LegendModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n LegendModel.prototype.select = function (name) {\r\n var selected = this.option.selected;\r\n var selectedMode = this.get('selectedMode');\r\n if (selectedMode === 'single') {\r\n var data = this._data;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name')] = false;\r\n });\r\n }\r\n selected[name] = true;\r\n };\r\n LegendModel.prototype.unSelect = function (name) {\r\n if (this.get('selectedMode') !== 'single') {\r\n this.option.selected[name] = false;\r\n }\r\n };\r\n LegendModel.prototype.toggleSelected = function (name) {\r\n var selected = this.option.selected;\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n this[selected[name] ? 'unSelect' : 'select'](name);\r\n };\r\n LegendModel.prototype.allSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name', true)] = true;\r\n });\r\n };\r\n LegendModel.prototype.inverseSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n var name = dataItem.get('name', true);\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n selected[name] = !selected[name];\r\n });\r\n };\r\n LegendModel.prototype.isSelected = function (name) {\r\n var selected = this.option.selected;\r\n return !(selected.hasOwnProperty(name) && !selected[name])\r\n && indexOf(this._availableNames, name) >= 0;\r\n };\r\n LegendModel.prototype.getOrient = function () {\r\n return this.get('orient') === 'vertical'\r\n ? { index: 1, name: 'vertical' }\r\n : { index: 0, name: 'horizontal' };\r\n };\r\n LegendModel.type = 'legend.plain';\r\n LegendModel.dependencies = ['series'];\r\n LegendModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n orient: 'horizontal',\r\n left: 'center',\r\n top: 0,\r\n align: 'auto',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n itemWidth: 25,\r\n itemHeight: 14,\r\n inactiveColor: '#ccc',\r\n inactiveBorderColor: '#ccc',\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n textStyle: {\r\n color: '#333'\r\n },\r\n selectedMode: true,\r\n selector: false,\r\n selectorLabel: {\r\n show: true,\r\n borderRadius: 10,\r\n padding: [3, 5, 3, 5],\r\n fontSize: 12,\r\n fontFamily: ' sans-serif',\r\n color: '#666',\r\n borderWidth: 1,\r\n borderColor: '#666'\r\n },\r\n emphasis: {\r\n selectorLabel: {\r\n show: true,\r\n color: '#eee',\r\n backgroundColor: '#666'\r\n }\r\n },\r\n selectorPosition: 'auto',\r\n selectorItemGap: 7,\r\n selectorButtonGap: 10,\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return LegendModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(LegendModel);\n\n function legendSelectActionHandler(methodName, payload, ecModel) {\r\n var selectedMap = {};\r\n var isToggleSelect = methodName === 'toggleSelected';\r\n var isSelected;\r\n ecModel.eachComponent('legend', function (legendModel) {\r\n if (isToggleSelect && isSelected != null) {\r\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\r\n }\r\n else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\r\n legendModel[methodName]();\r\n }\r\n else {\r\n legendModel[methodName](payload.name);\r\n isSelected = legendModel.isSelected(payload.name);\r\n }\r\n var legendData = legendModel.getData();\r\n each(legendData, function (model) {\r\n var name = model.get('name');\r\n if (name === '\\n' || name === '') {\r\n return;\r\n }\r\n var isItemSelected = legendModel.isSelected(name);\r\n if (selectedMap.hasOwnProperty(name)) {\r\n selectedMap[name] = selectedMap[name] && isItemSelected;\r\n }\r\n else {\r\n selectedMap[name] = isItemSelected;\r\n }\r\n });\r\n });\r\n return (methodName === 'allSelect' || methodName === 'inverseSelect')\r\n ? {\r\n selected: selectedMap\r\n }\r\n : {\r\n name: payload.name,\r\n selected: selectedMap\r\n };\r\n }\r\n registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\r\n registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\r\n registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\r\n registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\r\n registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n\n function layout$2(group, componentModel, api) {\r\n var boxLayoutParams = componentModel.getBoxLayoutParams();\r\n var padding = componentModel.get('padding');\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\r\n box(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\r\n positionElement(group, boxLayoutParams, viewportSize, padding);\r\n }\r\n function makeBackground(rect, componentModel) {\r\n var padding = normalizeCssArray$1(componentModel.get('padding'));\r\n var style = componentModel.getItemStyle(['color', 'opacity']);\r\n style.fill = componentModel.get('backgroundColor');\r\n rect = new Rect({\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[1] + padding[3],\r\n height: rect.height + padding[0] + padding[2],\r\n r: componentModel.get('borderRadius')\r\n },\r\n style: style,\r\n silent: true,\r\n z2: -1\r\n });\r\n return rect;\r\n }\n\n var curry$1 = curry;\r\n var each$7 = each;\r\n var Group$1 = Group;\r\n var LegendView = (function (_super) {\r\n __extends(LegendView, _super);\r\n function LegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendView.type;\r\n _this.newlineDisabled = false;\r\n return _this;\r\n }\r\n LegendView.prototype.init = function () {\r\n this.group.add(this._contentGroup = new Group$1());\r\n this.group.add(this._selectorGroup = new Group$1());\r\n this._isFirstRender = true;\r\n };\r\n LegendView.prototype.getContentGroup = function () {\r\n return this._contentGroup;\r\n };\r\n LegendView.prototype.getSelectorGroup = function () {\r\n return this._selectorGroup;\r\n };\r\n LegendView.prototype.render = function (legendModel, ecModel, api) {\r\n var isFirstRender = this._isFirstRender;\r\n this._isFirstRender = false;\r\n this.resetInner();\r\n if (!legendModel.get('show', true)) {\r\n return;\r\n }\r\n var itemAlign = legendModel.get('align');\r\n var orient = legendModel.get('orient');\r\n if (!itemAlign || itemAlign === 'auto') {\r\n itemAlign = (legendModel.get('left') === 'right'\r\n && orient === 'vertical') ? 'right' : 'left';\r\n }\r\n var selector = legendModel.get('selector', true);\r\n var selectorPosition = legendModel.get('selectorPosition', true);\r\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\r\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\r\n }\r\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var positionInfo = legendModel.getBoxLayoutParams();\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var padding = legendModel.get('padding');\r\n var maxSize = getLayoutRect(positionInfo, viewportSize, padding);\r\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\r\n var layoutRect = getLayoutRect(defaults({\r\n width: mainRect.width,\r\n height: mainRect.height\r\n }, positionInfo), viewportSize, padding);\r\n this.group.x = layoutRect.x - mainRect.x;\r\n this.group.y = layoutRect.y - mainRect.y;\r\n this.group.markRedraw();\r\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\r\n };\r\n LegendView.prototype.resetInner = function () {\r\n this.getContentGroup().removeAll();\r\n this._backgroundEl && this.group.remove(this._backgroundEl);\r\n this.getSelectorGroup().removeAll();\r\n };\r\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var legendDrawnMap = createHashMap();\r\n var selectMode = legendModel.get('selectedMode');\r\n var excludeSeriesId = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\r\n });\r\n each$7(legendModel.getData(), function (itemModel, dataIndex) {\r\n var name = itemModel.get('name');\r\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\r\n var g = new Group$1();\r\n g.newline = true;\r\n contentGroup.add(g);\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByName(name)[0];\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel) {\r\n var data = seriesModel.getData();\r\n var style = data.getVisual('style');\r\n var color = style[data.getVisual('drawType')] || style.fill;\r\n var borderColor = style.stroke;\r\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\r\n var symbolType = data.getVisual('symbol');\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, name, null, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n else {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n if (!provider.containName(name)) {\r\n return;\r\n }\r\n var idx = provider.indexOfName(name);\r\n var style = provider.getItemVisual(idx, 'style');\r\n var borderColor = style.stroke;\r\n var color = style.fill;\r\n var colorArr = parse(style.fill);\r\n if (colorArr && colorArr[3] === 0) {\r\n colorArr[3] = 0.2;\r\n color = stringify(colorArr, 'rgba');\r\n }\r\n var legendSymbolType = 'roundRect';\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, null, name, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, null, name, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, null, name, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n }, this);\r\n }\r\n if (__DEV__) {\r\n if (!legendDrawnMap.get(name)) {\r\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\r\n }\r\n }\r\n }, this);\r\n if (selector) {\r\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\r\n }\r\n };\r\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n each$7(selector, function createSelectorButton(selectorItem) {\r\n var type = selectorItem.type;\r\n var labelText = new ZRText({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n },\r\n onclick: function () {\r\n api.dispatchAction({\r\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\r\n });\r\n }\r\n });\r\n selectorGroup.add(labelText);\r\n var labelModel = legendModel.getModel('selectorLabel');\r\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\r\n setLabelStyle(labelText, { normal: labelModel, emphasis: emphasisLabelModel }, {\r\n defaultText: selectorItem.title\r\n });\r\n enableHoverEmphasis(labelText);\r\n });\r\n };\r\n LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode) {\r\n var itemWidth = legendModel.get('itemWidth');\r\n var itemHeight = legendModel.get('itemHeight');\r\n var inactiveColor = legendModel.get('inactiveColor');\r\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\r\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\r\n var legendModelItemStyle = legendModel.getModel('itemStyle');\r\n var isSelected = legendModel.isSelected(name);\r\n var itemGroup = new Group$1();\r\n var textStyleModel = itemModel.getModel('textStyle');\r\n var itemIcon = itemModel.get('icon');\r\n var tooltipModel = itemModel.getModel('tooltip');\r\n var legendGlobalTooltipModel = tooltipModel.parentModel;\r\n legendSymbolType = itemIcon || legendSymbolType;\r\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n if (!itemIcon && symbolType\r\n && ((symbolType !== legendSymbolType) || symbolType === 'none')) {\r\n var size = itemHeight * 0.8;\r\n if (symbolType === 'none') {\r\n symbolType = 'circle';\r\n }\r\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n }\r\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\r\n var textAlign = itemAlign;\r\n var formatter = legendModel.get('formatter');\r\n var content = name;\r\n if (typeof formatter === 'string' && formatter) {\r\n content = formatter.replace('{name}', name != null ? name : '');\r\n }\r\n else if (typeof formatter === 'function') {\r\n content = formatter(name);\r\n }\r\n itemGroup.add(new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: content,\r\n x: textX,\r\n y: itemHeight / 2,\r\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\r\n align: textAlign,\r\n verticalAlign: 'middle'\r\n })\r\n }));\r\n var hitRect = new Rect({\r\n shape: itemGroup.getBoundingRect(),\r\n invisible: true\r\n });\r\n if (tooltipModel.get('show')) {\r\n var formatterParams = {\r\n componentType: 'legend',\r\n legendIndex: legendModel.componentIndex,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n hitRect.tooltip = extend({\r\n content: name,\r\n formatter: legendGlobalTooltipModel.get('formatter', true)\r\n || function (params) {\r\n return params.name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipModel.option);\r\n }\r\n itemGroup.add(hitRect);\r\n itemGroup.eachChild(function (child) {\r\n child.silent = true;\r\n });\r\n hitRect.silent = !selectMode;\r\n this.getContentGroup().add(itemGroup);\r\n enableHoverEmphasis(itemGroup);\r\n itemGroup.__legendDataIndex = dataIndex;\r\n return itemGroup;\r\n };\r\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var selectorGroup = this.getSelectorGroup();\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\r\n var contentRect = contentGroup.getBoundingRect();\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n selectorGroup.markRedraw();\r\n contentGroup.markRedraw();\r\n if (selector) {\r\n box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = orientIdx === 0 ? 'width' : 'height';\r\n var hw = orientIdx === 0 ? 'height' : 'width';\r\n var yx = orientIdx === 0 ? 'y' : 'x';\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\r\n }\r\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n return mainRect;\r\n }\r\n else {\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n return this.group.getBoundingRect();\r\n }\r\n };\r\n LegendView.prototype.remove = function () {\r\n this.getContentGroup().removeAll();\r\n this._isFirstRender = true;\r\n };\r\n LegendView.type = 'legend.plain';\r\n return LegendView;\r\n }(ComponentView));\r\n function setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected) {\r\n var itemStyle;\r\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\r\n itemStyle = legendModelItemStyle.getItemStyle();\r\n symbol.style.stroke = borderColor;\r\n if (!isSelected) {\r\n itemStyle.stroke = inactiveBorderColor;\r\n }\r\n }\r\n else {\r\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\r\n }\r\n symbol.setStyle(itemStyle);\r\n return symbol;\r\n }\r\n function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\r\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\r\n api.dispatchAction({\r\n type: 'legendToggleSelect',\r\n name: seriesName != null ? seriesName : dataName\r\n });\r\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\r\n }\r\n function isUseHoverLayer(api) {\r\n var list = api.getZr().storage.getDisplayList();\r\n var emphasisState;\r\n var i = 0;\r\n var len = list.length;\r\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\r\n i++;\r\n }\r\n return emphasisState && emphasisState.hoverLayer;\r\n }\r\n function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'highlight',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'downplay',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n ComponentView.registerClass(LegendView);\n\n function legendFilter (ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (legendModels && legendModels.length) {\r\n ecModel.filterSeries(function (series) {\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(series.name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\r\n ComponentModel.registerSubTypeDefaulter('legend', function () {\r\n return 'plain';\r\n });\n\n var ScrollableLegendModel = (function (_super) {\r\n __extends(ScrollableLegendModel, _super);\r\n function ScrollableLegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendModel.type;\r\n return _this;\r\n }\r\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\r\n this.option.scrollDataIndex = scrollDataIndex;\r\n };\r\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\r\n };\r\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n mergeAndNormalizeLayoutParams(this, this.option, option);\r\n };\r\n ScrollableLegendModel.type = 'legend.scroll';\r\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\r\n scrollDataIndex: 0,\r\n pageButtonItemGap: 5,\r\n pageButtonGap: null,\r\n pageButtonPosition: 'end',\r\n pageFormatter: '{current}/{total}',\r\n pageIcons: {\r\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\r\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\r\n },\r\n pageIconColor: '#2f4554',\r\n pageIconInactiveColor: '#aaa',\r\n pageIconSize: 15,\r\n pageTextStyle: {\r\n color: '#333'\r\n },\r\n animationDurationUpdate: 800\r\n });\r\n return ScrollableLegendModel;\r\n }(LegendModel));\r\n function mergeAndNormalizeLayoutParams(legendModel, target, raw) {\r\n var orient = legendModel.getOrient();\r\n var ignoreSize = [1, 1];\r\n ignoreSize[orient.index] = 0;\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: !!ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(ScrollableLegendModel);\n\n var Group$2 = Group;\r\n var WH = ['width', 'height'];\r\n var XY = ['x', 'y'];\r\n var ScrollableLegendView = (function (_super) {\r\n __extends(ScrollableLegendView, _super);\r\n function ScrollableLegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendView.type;\r\n _this.newlineDisabled = true;\r\n _this._currentIndex = 0;\r\n return _this;\r\n }\r\n ScrollableLegendView.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n this.group.add(this._containerGroup = new Group$2());\r\n this._containerGroup.add(this.getContentGroup());\r\n this.group.add(this._controllerGroup = new Group$2());\r\n };\r\n ScrollableLegendView.prototype.resetInner = function () {\r\n _super.prototype.resetInner.call(this);\r\n this._controllerGroup.removeAll();\r\n this._containerGroup.removeClipPath();\r\n this._containerGroup.__rectSize = null;\r\n };\r\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var self = this;\r\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var controllerGroup = this._controllerGroup;\r\n var pageIconSize = legendModel.get('pageIconSize', true);\r\n var pageIconSizeArr = isArray(pageIconSize)\r\n ? pageIconSize : [pageIconSize, pageIconSize];\r\n createPageButton('pagePrev', 0);\r\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\r\n controllerGroup.add(new ZRText({\r\n name: 'pageText',\r\n style: {\r\n text: 'xx/xx',\r\n fill: pageTextStyleModel.getTextColor(),\r\n font: pageTextStyleModel.getFont(),\r\n verticalAlign: 'middle',\r\n align: 'center'\r\n },\r\n silent: true\r\n }));\r\n createPageButton('pageNext', 1);\r\n function createPageButton(name, iconIdx) {\r\n var pageDataIndexName = (name + 'DataIndex');\r\n var icon = createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\r\n onclick: bind(self._pageGo, self, pageDataIndexName, legendModel, api)\r\n }, {\r\n x: -pageIconSizeArr[0] / 2,\r\n y: -pageIconSizeArr[1] / 2,\r\n width: pageIconSizeArr[0],\r\n height: pageIconSizeArr[1]\r\n });\r\n icon.name = name;\r\n controllerGroup.add(icon);\r\n }\r\n };\r\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH[orientIdx];\r\n var xy = XY[orientIdx];\r\n var hw = WH[1 - orientIdx];\r\n var yx = XY[1 - orientIdx];\r\n selector && box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var processMaxSize = clone(maxSize);\r\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\r\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\r\n if (selector) {\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n var offset = selectorRect[wh] + selectorButtonGap;\r\n selectorPos[orientIdx] -= offset;\r\n mainRect[xy] -= offset;\r\n }\r\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\r\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\r\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n selectorGroup.markRedraw();\r\n }\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\r\n var contentGroup = this.getContentGroup();\r\n var containerGroup = this._containerGroup;\r\n var controllerGroup = this._controllerGroup;\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\r\n box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\r\n var contentRect = contentGroup.getBoundingRect();\r\n var controllerRect = controllerGroup.getBoundingRect();\r\n var showController = this._showController = contentRect[wh] > maxSize[wh];\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n if (!isFirstRender) {\r\n contentPos[orientIdx] = contentGroup[yx];\r\n }\r\n var containerPos = [0, 0];\r\n var controllerPos = [-controllerRect.x, -controllerRect.y];\r\n var pageButtonGap = retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\r\n if (showController) {\r\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\r\n if (pageButtonPosition === 'end') {\r\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\r\n }\r\n else {\r\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\r\n }\r\n }\r\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\r\n contentGroup.setPosition(contentPos);\r\n containerGroup.setPosition(containerPos);\r\n controllerGroup.setPosition(controllerPos);\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\r\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\r\n containerGroup.__rectSize = maxSize[wh];\r\n if (showController) {\r\n var clipShape = { x: 0, y: 0 };\r\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\r\n clipShape[hw] = mainRect[hw];\r\n containerGroup.setClipPath(new Rect({ shape: clipShape }));\r\n containerGroup.__rectSize = clipShape[wh];\r\n }\r\n else {\r\n controllerGroup.eachChild(function (child) {\r\n child.attr({\r\n invisible: true,\r\n silent: true\r\n });\r\n });\r\n }\r\n var pageInfo = this._getPageInfo(legendModel);\r\n pageInfo.pageIndex != null && updateProps(contentGroup, { x: pageInfo.contentPosition[0], y: pageInfo.contentPosition[1] }, showController ? legendModel : null);\r\n this._updatePageInfoView(legendModel, pageInfo);\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\r\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\r\n scrollDataIndex != null && api.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: scrollDataIndex,\r\n legendId: legendModel.id\r\n });\r\n };\r\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\r\n var controllerGroup = this._controllerGroup;\r\n each(['pagePrev', 'pageNext'], function (name) {\r\n var key = (name + 'DataIndex');\r\n var canJump = pageInfo[key] != null;\r\n var icon = controllerGroup.childOfName(name);\r\n if (icon) {\r\n icon.setStyle('fill', canJump\r\n ? legendModel.get('pageIconColor', true)\r\n : legendModel.get('pageIconInactiveColor', true));\r\n icon.cursor = canJump ? 'pointer' : 'default';\r\n }\r\n });\r\n var pageText = controllerGroup.childOfName('pageText');\r\n var pageFormatter = legendModel.get('pageFormatter');\r\n var pageIndex = pageInfo.pageIndex;\r\n var current = pageIndex != null ? pageIndex + 1 : 0;\r\n var total = pageInfo.pageCount;\r\n pageText && pageFormatter && pageText.setStyle('text', isString(pageFormatter)\r\n ? pageFormatter.replace('{current}', current == null ? '' : current + '')\r\n .replace('{total}', total == null ? '' : total + '')\r\n : pageFormatter({ current: current, total: total }));\r\n };\r\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\r\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\r\n var contentGroup = this.getContentGroup();\r\n var containerRectSize = this._containerGroup.__rectSize;\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH[orientIdx];\r\n var xy = XY[orientIdx];\r\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\r\n var children = contentGroup.children();\r\n var targetItem = children[targetItemIndex];\r\n var itemCount = children.length;\r\n var pCount = !itemCount ? 0 : 1;\r\n var result = {\r\n contentPosition: [contentGroup.x, contentGroup.y],\r\n pageCount: pCount,\r\n pageIndex: pCount - 1,\r\n pagePrevDataIndex: null,\r\n pageNextDataIndex: null\r\n };\r\n if (!targetItem) {\r\n return result;\r\n }\r\n var targetItemInfo = getItemInfo(targetItem);\r\n result.contentPosition[orientIdx] = -targetItemInfo.s;\r\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize)\r\n || (currItemInfo && !intersect(currItemInfo, winStartItemInfo.s))) {\r\n if (winEndItemInfo.i > winStartItemInfo.i) {\r\n winStartItemInfo = winEndItemInfo;\r\n }\r\n else {\r\n winStartItemInfo = currItemInfo;\r\n }\r\n if (winStartItemInfo) {\r\n if (result.pageNextDataIndex == null) {\r\n result.pageNextDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n }\r\n }\r\n winEndItemInfo = currItemInfo;\r\n }\r\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s))\r\n && winStartItemInfo.i < winEndItemInfo.i) {\r\n winEndItemInfo = winStartItemInfo;\r\n if (result.pagePrevDataIndex == null) {\r\n result.pagePrevDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n ++result.pageIndex;\r\n }\r\n winStartItemInfo = currItemInfo;\r\n }\r\n return result;\r\n function getItemInfo(el) {\r\n if (el) {\r\n var itemRect = el.getBoundingRect();\r\n var start = itemRect[xy] + el[xy];\r\n return {\r\n s: start,\r\n e: start + itemRect[wh],\r\n i: el.__legendDataIndex\r\n };\r\n }\r\n }\r\n function intersect(itemInfo, winStart) {\r\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\r\n }\r\n };\r\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\r\n if (!this._showController) {\r\n return 0;\r\n }\r\n var index;\r\n var contentGroup = this.getContentGroup();\r\n var defaultIndex;\r\n contentGroup.eachChild(function (child, idx) {\r\n var legendDataIdx = child.__legendDataIndex;\r\n if (defaultIndex == null && legendDataIdx != null) {\r\n defaultIndex = idx;\r\n }\r\n if (legendDataIdx === targetDataIndex) {\r\n index = idx;\r\n }\r\n });\r\n return index != null ? index : defaultIndex;\r\n };\r\n ScrollableLegendView.type = 'legend.scroll';\r\n return ScrollableLegendView;\r\n }(LegendView));\r\n ComponentView.registerClass(ScrollableLegendView);\n\n registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\r\n var scrollDataIndex = payload.scrollDataIndex;\r\n scrollDataIndex != null && ecModel.eachComponent({ mainType: 'legend', subType: 'scroll', query: payload }, function (legendModel) {\r\n legendModel.setScrollDataIndex(scrollDataIndex);\r\n });\r\n });\n\n var TitleModel = (function (_super) {\r\n __extends(TitleModel, _super);\r\n function TitleModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleModel.type;\r\n _this.layoutMode = { type: 'box', ignoreSize: true };\r\n return _this;\r\n }\r\n TitleModel.type = 'title';\r\n TitleModel.defaultOption = {\r\n zlevel: 0,\r\n z: 6,\r\n show: true,\r\n text: '',\r\n target: 'blank',\r\n subtext: '',\r\n subtarget: 'blank',\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n color: '#464646'\r\n },\r\n subtextStyle: {\r\n fontSize: 12,\r\n color: '#6E7079'\r\n }\r\n };\r\n return TitleModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TitleModel);\r\n var TitleView = (function (_super) {\r\n __extends(TitleView, _super);\r\n function TitleView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleView.type;\r\n return _this;\r\n }\r\n TitleView.prototype.render = function (titleModel, ecModel, api) {\r\n this.group.removeAll();\r\n if (!titleModel.get('show')) {\r\n return;\r\n }\r\n var group = this.group;\r\n var textStyleModel = titleModel.getModel('textStyle');\r\n var subtextStyleModel = titleModel.getModel('subtextStyle');\r\n var textAlign = titleModel.get('textAlign');\r\n var textVerticalAlign = retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\r\n var textEl = new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: titleModel.get('text'),\r\n fill: textStyleModel.getTextColor()\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var textRect = textEl.getBoundingRect();\r\n var subText = titleModel.get('subtext');\r\n var subTextEl = new ZRText({\r\n style: createTextStyle(subtextStyleModel, {\r\n text: subText,\r\n fill: subtextStyleModel.getTextColor(),\r\n y: textRect.height + titleModel.get('itemGap'),\r\n verticalAlign: 'top'\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var link = titleModel.get('link');\r\n var sublink = titleModel.get('sublink');\r\n var triggerEvent = titleModel.get('triggerEvent', true);\r\n textEl.silent = !link && !triggerEvent;\r\n subTextEl.silent = !sublink && !triggerEvent;\r\n if (link) {\r\n textEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('target'));\r\n });\r\n }\r\n if (sublink) {\r\n subTextEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('subtarget'));\r\n });\r\n }\r\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent\r\n ? {\r\n componentType: 'title',\r\n componentIndex: titleModel.componentIndex\r\n }\r\n : null;\r\n group.add(textEl);\r\n subText && group.add(subTextEl);\r\n var groupRect = group.getBoundingRect();\r\n var layoutOption = titleModel.getBoxLayoutParams();\r\n layoutOption.width = groupRect.width;\r\n layoutOption.height = groupRect.height;\r\n var layoutRect = getLayoutRect(layoutOption, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, titleModel.get('padding'));\r\n if (!textAlign) {\r\n textAlign = (titleModel.get('left') || titleModel.get('right'));\r\n if (textAlign === 'middle') {\r\n textAlign = 'center';\r\n }\r\n if (textAlign === 'right') {\r\n layoutRect.x += layoutRect.width;\r\n }\r\n else if (textAlign === 'center') {\r\n layoutRect.x += layoutRect.width / 2;\r\n }\r\n }\r\n if (!textVerticalAlign) {\r\n textVerticalAlign = (titleModel.get('top') || titleModel.get('bottom'));\r\n if (textVerticalAlign === 'center') {\r\n textVerticalAlign = 'middle';\r\n }\r\n if (textVerticalAlign === 'bottom') {\r\n layoutRect.y += layoutRect.height;\r\n }\r\n else if (textVerticalAlign === 'middle') {\r\n layoutRect.y += layoutRect.height / 2;\r\n }\r\n textVerticalAlign = textVerticalAlign || 'top';\r\n }\r\n group.x = layoutRect.x;\r\n group.y = layoutRect.y;\r\n group.markRedraw();\r\n var alignStyle = {\r\n align: textAlign,\r\n verticalAlign: textVerticalAlign\r\n };\r\n textEl.setStyle(alignStyle);\r\n subTextEl.setStyle(alignStyle);\r\n groupRect = group.getBoundingRect();\r\n var padding = layoutRect.margin;\r\n var style = titleModel.getItemStyle(['color', 'opacity']);\r\n style.fill = titleModel.get('backgroundColor');\r\n var rect = new Rect({\r\n shape: {\r\n x: groupRect.x - padding[3],\r\n y: groupRect.y - padding[0],\r\n width: groupRect.width + padding[1] + padding[3],\r\n height: groupRect.height + padding[0] + padding[2],\r\n r: titleModel.get('borderRadius')\r\n },\r\n style: style,\r\n subPixelOptimize: true,\r\n silent: true\r\n });\r\n group.add(rect);\r\n };\r\n TitleView.type = 'title';\r\n return TitleView;\r\n }(ComponentView));\r\n ComponentView.registerClass(TitleView);\n\n function fillLabel(opt) {\r\n defaultEmphasis(opt, 'label', ['show']);\r\n }\r\n var inner$a = makeInner();\r\n var MarkerModel = (function (_super) {\r\n __extends(MarkerModel, _super);\r\n function MarkerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerModel.type;\r\n _this.createdBySelf = false;\r\n return _this;\r\n }\r\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\r\n if (__DEV__) {\r\n if (this.type === 'marker') {\r\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\r\n }\r\n }\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._mergeOption(option, ecModel, false, true);\r\n };\r\n MarkerModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var hostSeries = this.__hostSeries;\r\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\r\n };\r\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\r\n this._mergeOption(newOpt, ecModel, false, false);\r\n };\r\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\r\n var componentType = this.mainType;\r\n if (!createdBySelf) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerOpt = seriesModel.get(this.mainType, true);\r\n var markerModel = inner$a(seriesModel)[componentType];\r\n if (!markerOpt || !markerOpt.data) {\r\n inner$a(seriesModel)[componentType] = null;\r\n return;\r\n }\r\n if (!markerModel) {\r\n if (isInit) {\r\n fillLabel(markerOpt);\r\n }\r\n each(markerOpt.data, function (item) {\r\n if (item instanceof Array) {\r\n fillLabel(item[0]);\r\n fillLabel(item[1]);\r\n }\r\n else {\r\n fillLabel(item);\r\n }\r\n });\r\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\r\n extend(markerModel, {\r\n mainType: this.mainType,\r\n seriesIndex: seriesModel.seriesIndex,\r\n name: seriesModel.name,\r\n createdBySelf: true\r\n });\r\n markerModel.__hostSeries = seriesModel;\r\n }\r\n else {\r\n markerModel._mergeOption(markerOpt, ecModel, true);\r\n }\r\n inner$a(seriesModel)[componentType] = markerModel;\r\n }, this);\r\n }\r\n };\r\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var formattedValue = isArray(value)\r\n ? map(value, addCommas).join(', ') : addCommas(value);\r\n var name = encodeHTML(data.getName(dataIndex));\r\n var html = \"
\" + encodeHTML(this.name) + \"
\";\r\n if (value != null || name) {\r\n html += renderMode === 'html' ? '' : '\\n';\r\n }\r\n if (name) {\r\n html += \"
\" + name + \"\";\r\n }\r\n if (value != null) {\r\n html = renderMode === 'html'\r\n ? concatTooltipHtml(html, formattedValue, true) + (name ? '
' : '')\r\n : (html + formattedValue);\r\n }\r\n return html;\r\n };\r\n MarkerModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n MarkerModel.prototype.setData = function (data) {\r\n this._data = data;\r\n };\r\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\r\n return inner$a(seriesModel)[componentType];\r\n };\r\n MarkerModel.type = 'marker';\r\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\r\n return MarkerModel;\r\n }(ComponentModel));\r\n mixin(MarkerModel, DataFormatMixin.prototype);\n\n var MarkPointModel = (function (_super) {\r\n __extends(MarkPointModel, _super);\r\n function MarkPointModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointModel.type;\r\n return _this;\r\n }\r\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkPointModel.type = 'markPoint';\r\n MarkPointModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: 'pin',\r\n symbolSize: 50,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'inside'\r\n },\r\n itemStyle: {\r\n borderWidth: 2\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return MarkPointModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkPointModel);\n\n function hasXOrY(item) {\r\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\r\n }\r\n function hasXAndY(item) {\r\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\r\n }\r\n function markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\r\n var coordArr = [];\r\n var stacked = isDimensionStacked(data, targetDataDim);\r\n var calcDataDim = stacked\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDataDim;\r\n var value = numCalculate(data, calcDataDim, markerType);\r\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\r\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\r\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\r\n var coordArrValue = data.get(targetDataDim, dataIndex);\r\n var precision = getPrecision(data.get(targetDataDim, dataIndex));\r\n precision = Math.min(precision, 20);\r\n if (precision >= 0) {\r\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\r\n }\r\n return [coordArr, coordArrValue];\r\n }\r\n var markerTypeCalculator = {\r\n min: curry(markerTypeCalculatorWithExtent, 'min'),\r\n max: curry(markerTypeCalculatorWithExtent, 'max'),\r\n average: curry(markerTypeCalculatorWithExtent, 'average'),\r\n median: curry(markerTypeCalculatorWithExtent, 'median')\r\n };\r\n function dataTransform(seriesModel, item) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\r\n var dims = coordSys.dimensions;\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n item = clone(item);\r\n if (item.type\r\n && markerTypeCalculator[item.type]\r\n && axisInfo.baseAxis && axisInfo.valueAxis) {\r\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\r\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\r\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\r\n item.coord = coordInfo[0];\r\n item.value = coordInfo[1];\r\n }\r\n else {\r\n var coord = [\r\n item.xAxis != null ? item.xAxis : item.radiusAxis,\r\n item.yAxis != null ? item.yAxis : item.angleAxis\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n if (markerTypeCalculator[coord[i]]) {\r\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\r\n }\r\n }\r\n item.coord = coord;\r\n }\r\n }\r\n return item;\r\n }\r\n function getAxisInfo$1(item, data, coordSys, seriesModel) {\r\n var ret = {};\r\n if (item.valueIndex != null || item.valueDim != null) {\r\n ret.valueDataDim = item.valueIndex != null\r\n ? data.getDimension(item.valueIndex) : item.valueDim;\r\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\r\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n }\r\n else {\r\n ret.baseAxis = seriesModel.getBaseAxis();\r\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\r\n }\r\n return ret;\r\n }\r\n function dataDimToCoordDim(seriesModel, dataDim) {\r\n var data = seriesModel.getData();\r\n var dimensions = data.dimensions;\r\n dataDim = data.getDimension(dataDim);\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimItem = data.getDimensionInfo(dimensions[i]);\r\n if (dimItem.name === dataDim) {\r\n return dimItem.coordDim;\r\n }\r\n }\r\n }\r\n function dataFilter$1(coordSys, item) {\r\n return (coordSys && coordSys.containData && item.coord && !hasXOrY(item))\r\n ? coordSys.containData(item.coord) : true;\r\n }\r\n function dimValueGetter(item, dimName, dataIndex, dimIndex) {\r\n if (dimIndex < 2) {\r\n return item.coord && item.coord[dimIndex];\r\n }\r\n return item.value;\r\n }\r\n function numCalculate(data, valueDataDim, type) {\r\n if (type === 'average') {\r\n var sum_1 = 0;\r\n var count_1 = 0;\r\n data.each(valueDataDim, function (val, idx) {\r\n if (!isNaN(val)) {\r\n sum_1 += val;\r\n count_1++;\r\n }\r\n });\r\n return sum_1 / count_1;\r\n }\r\n else if (type === 'median') {\r\n return data.getMedian(valueDataDim);\r\n }\r\n else {\r\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\r\n }\r\n }\n\n var inner$b = makeInner();\r\n var MarkerView = (function (_super) {\r\n __extends(MarkerView, _super);\r\n function MarkerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerView.type;\r\n return _this;\r\n }\r\n MarkerView.prototype.init = function () {\r\n this.markerGroupMap = createHashMap();\r\n };\r\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\r\n var _this = this;\r\n var markerGroupMap = this.markerGroupMap;\r\n markerGroupMap.each(function (item) {\r\n inner$b(item).keep = false;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\r\n });\r\n markerGroupMap.each(function (item) {\r\n !inner$b(item).keep && _this.group.remove(item.group);\r\n });\r\n };\r\n MarkerView.prototype.markKeep = function (drawGroup) {\r\n inner$b(drawGroup).keep = true;\r\n };\r\n MarkerView.prototype.blurSeries = function (seriesModelList) {\r\n var _this = this;\r\n each(seriesModelList, function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n if (markerModel) {\r\n var data = markerModel.getData();\r\n data.eachItemGraphicEl(function (el) {\r\n if (el) {\r\n enterBlur(el);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n MarkerView.type = 'marker';\r\n return MarkerView;\r\n }(ComponentView));\n\n function updateMarkerLayout(mpData, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\r\n }\r\n else if (coordSys) {\r\n var x = mpData.get(coordSys.dimensions[0], idx);\r\n var y = mpData.get(coordSys.dimensions[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n mpData.setItemLayout(idx, point);\r\n });\r\n }\r\n var MarkPointView = (function (_super) {\r\n __extends(MarkPointView, _super);\r\n function MarkPointView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointView.type;\r\n return _this;\r\n }\r\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\r\n if (mpModel) {\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var symbolDrawMap = this.markerGroupMap;\r\n var symbolDraw = symbolDrawMap.get(seriesId)\r\n || symbolDrawMap.set(seriesId, new SymbolDraw());\r\n var mpData = createList$1(coordSys, seriesModel, mpModel);\r\n mpModel.setData(mpData);\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var symbol = itemModel.getShallow('symbol');\r\n var symbolSize = itemModel.getShallow('symbolSize');\r\n if (isFunction(symbol) || isFunction(symbolSize)) {\r\n var rawIdx = mpModel.getRawValue(idx);\r\n var dataParams = mpModel.getDataParams(idx);\r\n if (isFunction(symbol)) {\r\n symbol = symbol(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolSize)) {\r\n symbolSize = symbolSize(rawIdx, dataParams);\r\n }\r\n }\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n var color = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color;\r\n }\r\n mpData.setItemVisual(idx, {\r\n symbol: symbol,\r\n symbolSize: symbolSize,\r\n style: style\r\n });\r\n });\r\n symbolDraw.updateData(mpData);\r\n this.group.add(symbolDraw.group);\r\n mpData.eachItemGraphicEl(function (el) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mpModel;\r\n });\r\n });\r\n this.markKeep(symbolDraw);\r\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkPointView.type = 'markPoint';\r\n return MarkPointView;\r\n }(MarkerView));\r\n function createList$1(coordSys, seriesModel, mpModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var mpData = new List(coordDimsInfos, mpModel);\r\n var dataOpt = map(mpModel.get('data'), curry(dataTransform, seriesModel));\r\n if (coordSys) {\r\n dataOpt = filter(dataOpt, curry(dataFilter$1, coordSys));\r\n }\r\n mpData.initData(dataOpt, null, coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n });\r\n return mpData;\r\n }\r\n ComponentView.registerClass(MarkPointView);\n\n registerPreprocessor(function (opt) {\r\n opt.markPoint = opt.markPoint || {};\r\n });\n\n var MarkLineModel = (function (_super) {\r\n __extends(MarkLineModel, _super);\r\n function MarkLineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineModel.type;\r\n return _this;\r\n }\r\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkLineModel.type = 'markLine';\r\n MarkLineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: ['circle', 'arrow'],\r\n symbolSize: [8, 16],\r\n precision: 2,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'end',\r\n distance: 5\r\n },\r\n lineStyle: {\r\n type: 'dashed'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n width: 3\r\n }\r\n },\r\n animationEasing: 'linear'\r\n };\r\n return MarkLineModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkLineModel);\n\n var straightLineProto = Line.prototype;\r\n var bezierCurveProto = BezierCurve.prototype;\r\n var StraightLineShape = (function () {\r\n function StraightLineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return StraightLineShape;\r\n }());\r\n var CurveShape = (function (_super) {\r\n __extends(CurveShape, _super);\r\n function CurveShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return CurveShape;\r\n }(StraightLineShape));\r\n function isStraightLine(shape) {\r\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\r\n }\r\n var ECLinePath = (function (_super) {\r\n __extends(ECLinePath, _super);\r\n function ECLinePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-line';\r\n return _this;\r\n }\r\n ECLinePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECLinePath.prototype.getDefaultShape = function () {\r\n return new StraightLineShape();\r\n };\r\n ECLinePath.prototype.buildPath = function (ctx, shape) {\r\n if (isStraightLine(shape)) {\r\n straightLineProto.buildPath.call(this, ctx, shape);\r\n }\r\n else {\r\n bezierCurveProto.buildPath.call(this, ctx, shape);\r\n }\r\n };\r\n ECLinePath.prototype.pointAt = function (t) {\r\n if (isStraightLine(this.shape)) {\r\n return straightLineProto.pointAt.call(this, t);\r\n }\r\n else {\r\n return bezierCurveProto.pointAt.call(this, t);\r\n }\r\n };\r\n ECLinePath.prototype.tangentAt = function (t) {\r\n var shape = this.shape;\r\n var p = isStraightLine(shape)\r\n ? [shape.x2 - shape.x1, shape.y2 - shape.y1]\r\n : bezierCurveProto.tangentAt.call(this, t);\r\n return normalize(p, p);\r\n };\r\n return ECLinePath;\r\n }(Path));\n\n var SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\r\n function makeSymbolTypeKey(symbolCategory) {\r\n return '_' + symbolCategory + 'Type';\r\n }\r\n function createSymbol$1(name, lineData, idx) {\r\n var symbolType = lineData.getItemVisual(idx, name);\r\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\r\n if (!symbolType || symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSizeArr = isArray(symbolSize)\r\n ? symbolSize : [symbolSize, symbolSize];\r\n var symbolPath = createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\r\n symbolPath.name = name;\r\n return symbolPath;\r\n }\r\n function createLine(points) {\r\n var line = new ECLinePath({\r\n name: 'line',\r\n subPixelOptimize: true\r\n });\r\n setLinePoints(line.shape, points);\r\n return line;\r\n }\r\n function setLinePoints(targetShape, points) {\r\n targetShape.x1 = points[0][0];\r\n targetShape.y1 = points[0][1];\r\n targetShape.x2 = points[1][0];\r\n targetShape.y2 = points[1][1];\r\n targetShape.percent = 1;\r\n var cp1 = points[2];\r\n if (cp1) {\r\n targetShape.cpx1 = cp1[0];\r\n targetShape.cpy1 = cp1[1];\r\n }\r\n else {\r\n targetShape.cpx1 = NaN;\r\n targetShape.cpy1 = NaN;\r\n }\r\n }\r\n var Line$1 = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createLine(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var linePoints = lineData.getItemLayout(idx);\r\n var line = createLine(linePoints);\r\n line.shape.percent = 0;\r\n initProps(line, {\r\n shape: {\r\n percent: 1\r\n }\r\n }, seriesModel, idx);\r\n this.add(line);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var linePoints = lineData.getItemLayout(idx);\r\n var target = {\r\n shape: {}\r\n };\r\n setLinePoints(target.shape, linePoints);\r\n updateProps(line, target, seriesModel, idx);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\r\n var key = makeSymbolTypeKey(symbolCategory);\r\n if (this[key] !== symbolType) {\r\n this.remove(this.childOfName(symbolCategory));\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n }\r\n this[key] = symbolType;\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.getLinePath = function () {\r\n return this.childAt(0);\r\n };\r\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\r\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\r\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n var itemModel = lineData.getItemModel(idx);\r\n emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\r\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var visualColor = lineStyle.stroke;\r\n line.useStyle(lineStyle);\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n line.ensureState('emphasis').style = emphasisLineStyle;\r\n line.ensureState('blur').style = blurLineStyle;\r\n line.ensureState('select').style = selectLineStyle;\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = this.childOfName(symbolCategory);\r\n if (symbol) {\r\n symbol.setColor(visualColor);\r\n symbol.style.opacity = lineStyle.opacity;\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var lineState = line.getState(stateName);\r\n if (lineState) {\r\n var lineStateStyle = lineState.style || {};\r\n var state = symbol.ensureState(stateName);\r\n var stateStyle = state.style || (state.style = {});\r\n if (lineStateStyle.stroke != null) {\r\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\r\n }\r\n if (lineStateStyle.opacity != null) {\r\n stateStyle.opacity = lineStateStyle.opacity;\r\n }\r\n }\r\n }\r\n symbol.markRedraw();\r\n }\r\n }, this);\r\n var rawVal = seriesModel.getRawValue(idx);\r\n setLabelStyle(this, labelStatesModels, {\r\n labelDataIndex: idx,\r\n labelFetcher: {\r\n getFormattedLabel: function (dataIndex, stateName) {\r\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\r\n }\r\n },\r\n inheritColor: visualColor || '#000',\r\n defaultText: (rawVal == null\r\n ? lineData.getName(idx)\r\n : isFinite(rawVal)\r\n ? round$1(rawVal)\r\n : rawVal) + ''\r\n });\r\n var label = this.getTextContent();\r\n if (label) {\r\n var labelNormalModel = labelStatesModels.normal;\r\n label.__align = label.style.align;\r\n label.__verticalAlign = label.style.verticalAlign;\r\n label.__position = labelNormalModel.get('position') || 'middle';\r\n var distance = labelNormalModel.get('distance');\r\n if (!isArray(distance)) {\r\n distance = [distance, distance];\r\n }\r\n label.__labelDistance = distance;\r\n }\r\n this.setTextConfig({\r\n position: null,\r\n local: true,\r\n inside: false\r\n });\r\n enableHoverEmphasis(this);\r\n };\r\n Line.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n Line.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n Line.prototype.updateLayout = function (lineData, idx) {\r\n this.setLinePoints(lineData.getItemLayout(idx));\r\n };\r\n Line.prototype.setLinePoints = function (points) {\r\n var linePath = this.childOfName('line');\r\n setLinePoints(linePath.shape, points);\r\n linePath.dirty();\r\n };\r\n Line.prototype.beforeUpdate = function () {\r\n var lineGroup = this;\r\n var symbolFrom = lineGroup.childOfName('fromSymbol');\r\n var symbolTo = lineGroup.childOfName('toSymbol');\r\n var label = lineGroup.getTextContent();\r\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\r\n return;\r\n }\r\n var invScale = 1;\r\n var parentNode = this.parent;\r\n while (parentNode) {\r\n if (parentNode.scaleX) {\r\n invScale /= parentNode.scaleX;\r\n }\r\n parentNode = parentNode.parent;\r\n }\r\n var line = lineGroup.childOfName('line');\r\n if (!this.__dirty && !line.__dirty) {\r\n return;\r\n }\r\n var percent = line.shape.percent;\r\n var fromPos = line.pointAt(0);\r\n var toPos = line.pointAt(percent);\r\n var d = sub([], toPos, fromPos);\r\n normalize(d, d);\r\n if (symbolFrom) {\r\n symbolFrom.setPosition(fromPos);\r\n var tangent = line.tangentAt(0);\r\n symbolFrom.rotation = Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\r\n symbolFrom.markRedraw();\r\n }\r\n if (symbolTo) {\r\n symbolTo.setPosition(toPos);\r\n var tangent = line.tangentAt(1);\r\n symbolTo.rotation = -Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\r\n symbolTo.markRedraw();\r\n }\r\n if (label && !label.ignore) {\r\n label.x = label.y = 0;\r\n label.originX = label.originY = 0;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var distance = label.__labelDistance;\r\n var distanceX = distance[0] * invScale;\r\n var distanceY = distance[1] * invScale;\r\n var halfPercent = percent / 2;\r\n var tangent = line.tangentAt(halfPercent);\r\n var n = [tangent[1], -tangent[0]];\r\n var cp = line.pointAt(halfPercent);\r\n if (n[1] > 0) {\r\n n[0] = -n[0];\r\n n[1] = -n[1];\r\n }\r\n var dir = tangent[0] < 0 ? -1 : 1;\r\n if (label.__position !== 'start' && label.__position !== 'end') {\r\n var rotation = -Math.atan2(tangent[1], tangent[0]);\r\n if (toPos[0] < fromPos[0]) {\r\n rotation = Math.PI + rotation;\r\n }\r\n label.rotation = rotation;\r\n }\r\n var dy = void 0;\r\n switch (label.__position) {\r\n case 'insideStartTop':\r\n case 'insideMiddleTop':\r\n case 'insideEndTop':\r\n case 'middle':\r\n dy = -distanceY;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideStartBottom':\r\n case 'insideMiddleBottom':\r\n case 'insideEndBottom':\r\n dy = distanceY;\r\n textVerticalAlign = 'top';\r\n break;\r\n default:\r\n dy = 0;\r\n textVerticalAlign = 'middle';\r\n }\r\n switch (label.__position) {\r\n case 'end':\r\n label.x = d[0] * distanceX + toPos[0];\r\n label.y = d[1] * distanceY + toPos[1];\r\n textAlign = d[0] > 0.8 ? 'left' : (d[0] < -0.8 ? 'right' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'top' : (d[1] < -0.8 ? 'bottom' : 'middle');\r\n break;\r\n case 'start':\r\n label.x = -d[0] * distanceX + fromPos[0];\r\n label.y = -d[1] * distanceY + fromPos[1];\r\n textAlign = d[0] > 0.8 ? 'right' : (d[0] < -0.8 ? 'left' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : (d[1] < -0.8 ? 'top' : 'middle');\r\n break;\r\n case 'insideStartTop':\r\n case 'insideStart':\r\n case 'insideStartBottom':\r\n label.x = distanceX * dir + fromPos[0];\r\n label.y = fromPos[1] + dy;\r\n textAlign = tangent[0] < 0 ? 'right' : 'left';\r\n label.originX = -distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n case 'insideMiddleTop':\r\n case 'insideMiddle':\r\n case 'insideMiddleBottom':\r\n case 'middle':\r\n label.x = cp[0];\r\n label.y = cp[1] + dy;\r\n textAlign = 'center';\r\n label.originY = -dy;\r\n break;\r\n case 'insideEndTop':\r\n case 'insideEnd':\r\n case 'insideEndBottom':\r\n label.x = -distanceX * dir + toPos[0];\r\n label.y = toPos[1] + dy;\r\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\r\n label.originX = distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n }\r\n label.scaleX = label.scaleY = invScale;\r\n label.setStyle({\r\n verticalAlign: label.__verticalAlign || textVerticalAlign,\r\n align: label.__align || textAlign\r\n });\r\n }\r\n };\r\n return Line;\r\n }(Group));\n\n var LineDraw = (function () {\r\n function LineDraw(LineCtor) {\r\n this.group = new Group();\r\n this._LineCtor = LineCtor || Line$1;\r\n }\r\n LineDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n LineDraw.prototype.updateData = function (lineData) {\r\n var _this = this;\r\n var lineDraw = this;\r\n var group = lineDraw.group;\r\n var oldLineData = lineDraw._lineData;\r\n lineDraw._lineData = lineData;\r\n if (!oldLineData) {\r\n group.removeAll();\r\n }\r\n var seriesScope = makeSeriesScope$1(lineData);\r\n lineData.diff(oldLineData)\r\n .add(function (idx) {\r\n _this._doAdd(lineData, idx, seriesScope);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldLineData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n };\r\n LineDraw.prototype.updateLayout = function () {\r\n var lineData = this._lineData;\r\n if (!lineData) {\r\n return;\r\n }\r\n lineData.eachItemGraphicEl(function (el, idx) {\r\n el.updateLayout(lineData, idx);\r\n }, this);\r\n };\r\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\r\n this._seriesScope = makeSeriesScope$1(lineData);\r\n this._lineData = null;\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup && !isEffectObject(el)) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (lineNeedsDraw(itemLayout)) {\r\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n this.group.add(el);\r\n lineData.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n LineDraw.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (!lineNeedsDraw(itemLayout)) {\r\n return;\r\n }\r\n var el = new this._LineCtor(lineData, idx, seriesScope);\r\n lineData.setItemGraphicEl(idx, el);\r\n this.group.add(el);\r\n };\r\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\r\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\r\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\r\n this.group.remove(itemEl);\r\n return;\r\n }\r\n if (!itemEl) {\r\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\r\n }\r\n else {\r\n itemEl.updateData(newLineData, newIdx, seriesScope);\r\n }\r\n newLineData.setItemGraphicEl(newIdx, itemEl);\r\n this.group.add(itemEl);\r\n };\r\n return LineDraw;\r\n }());\r\n function isEffectObject(el) {\r\n return el.animators && el.animators.length > 0;\r\n }\r\n function makeSeriesScope$1(lineData) {\r\n var hostModel = lineData.hostModel;\r\n return {\r\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\r\n emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\r\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\r\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\r\n labelStatesModels: getLabelStatesModels(hostModel)\r\n };\r\n }\r\n function isPointNaN(pt) {\r\n return isNaN(pt[0]) || isNaN(pt[1]);\r\n }\r\n function lineNeedsDraw(pts) {\r\n return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\r\n }\n\n var inner$c = makeInner();\r\n var markLineTransform = function (seriesModel, coordSys, mlModel, item) {\r\n var data = seriesModel.getData();\r\n var itemArray;\r\n if (!isArray(item)) {\r\n var mlType = item.type;\r\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median'\r\n || (item.xAxis != null || item.yAxis != null)) {\r\n var valueAxis = void 0;\r\n var value = void 0;\r\n if (item.yAxis != null || item.xAxis != null) {\r\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\r\n value = retrieve(item.yAxis, item.xAxis);\r\n }\r\n else {\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n valueAxis = axisInfo.valueAxis;\r\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\r\n value = numCalculate(data, valueDataDim, mlType);\r\n }\r\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\r\n var baseIndex = 1 - valueIndex;\r\n var mlFrom = clone(item);\r\n var mlTo = {\r\n coord: []\r\n };\r\n mlFrom.type = null;\r\n mlFrom.coord = [];\r\n mlFrom.coord[baseIndex] = -Infinity;\r\n mlTo.coord[baseIndex] = Infinity;\r\n var precision = mlModel.get('precision');\r\n if (precision >= 0 && typeof value === 'number') {\r\n value = +value.toFixed(Math.min(precision, 20));\r\n }\r\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\r\n itemArray = [mlFrom, mlTo, {\r\n type: mlType,\r\n valueIndex: item.valueIndex,\r\n value: value\r\n }];\r\n }\r\n else {\r\n if (__DEV__) {\r\n logError('Invalid markLine data.');\r\n }\r\n itemArray = [];\r\n }\r\n }\r\n else {\r\n itemArray = item;\r\n }\r\n var normalizedItem = [\r\n dataTransform(seriesModel, itemArray[0]),\r\n dataTransform(seriesModel, itemArray[1]),\r\n extend({}, itemArray[2])\r\n ];\r\n normalizedItem[2].type = normalizedItem[2].type || null;\r\n merge(normalizedItem[2], normalizedItem[0]);\r\n merge(normalizedItem[2], normalizedItem[1]);\r\n return normalizedItem;\r\n };\r\n function isInifinity(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n var dimName = coordSys.dimensions[dimIndex];\r\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex])\r\n && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\r\n }\r\n function markLineFilter(coordSys, item) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var fromCoord = item[0].coord;\r\n var toCoord = item[1].coord;\r\n if (fromCoord && toCoord\r\n && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys)\r\n || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, item[0])\r\n && dataFilter$1(coordSys, item[1]);\r\n }\r\n function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\r\n }\r\n else {\r\n var dims = coordSys.dimensions;\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var dims = coordSys.dimensions;\r\n if (isInifinity(data.get(dims[0], idx))) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n else if (isInifinity(data.get(dims[1], idx))) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n data.setItemLayout(idx, point);\r\n }\r\n var MarkLineView = (function (_super) {\r\n __extends(MarkLineView, _super);\r\n function MarkLineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineView.type;\r\n return _this;\r\n }\r\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\r\n if (mlModel) {\r\n var mlData_1 = mlModel.getData();\r\n var fromData_1 = inner$c(mlModel).from;\r\n var toData_1 = inner$c(mlModel).to;\r\n fromData_1.each(function (idx) {\r\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\r\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\r\n });\r\n mlData_1.each(function (idx) {\r\n mlData_1.setItemLayout(idx, [\r\n fromData_1.getItemLayout(idx),\r\n toData_1.getItemLayout(idx)\r\n ]);\r\n });\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var lineDrawMap = this.markerGroupMap;\r\n var lineDraw = lineDrawMap.get(seriesId)\r\n || lineDrawMap.set(seriesId, new LineDraw());\r\n this.group.add(lineDraw.group);\r\n var mlData = createList$2(coordSys, seriesModel, mlModel);\r\n var fromData = mlData.from;\r\n var toData = mlData.to;\r\n var lineData = mlData.line;\r\n inner$c(mlModel).from = fromData;\r\n inner$c(mlModel).to = toData;\r\n mlModel.setData(lineData);\r\n var symbolType = mlModel.get('symbol');\r\n var symbolSize = mlModel.get('symbolSize');\r\n if (!isArray(symbolType)) {\r\n symbolType = [symbolType, symbolType];\r\n }\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [symbolSize, symbolSize];\r\n }\r\n mlData.from.each(function (idx) {\r\n updateDataVisualAndLayout(fromData, idx, true);\r\n updateDataVisualAndLayout(toData, idx, false);\r\n });\r\n lineData.each(function (idx) {\r\n var lineStyle = lineData.getItemModel(idx)\r\n .getModel('lineStyle').getLineStyle();\r\n lineData.setItemLayout(idx, [\r\n fromData.getItemLayout(idx),\r\n toData.getItemLayout(idx)\r\n ]);\r\n if (lineStyle.stroke == null) {\r\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\r\n }\r\n lineData.setItemVisual(idx, {\r\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\r\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\r\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\r\n toSymbol: toData.getItemVisual(idx, 'symbol'),\r\n style: lineStyle\r\n });\r\n });\r\n lineDraw.updateData(lineData);\r\n mlData.line.eachItemGraphicEl(function (el, idx) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mlModel;\r\n });\r\n });\r\n function updateDataVisualAndLayout(data, idx, isFrom) {\r\n var itemModel = data.getItemModel(idx);\r\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (style.fill == null) {\r\n style.fill = getVisualFromData(seriesData, 'color');\r\n }\r\n data.setItemVisual(idx, {\r\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\r\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\r\n style: style\r\n });\r\n }\r\n this.markKeep(lineDraw);\r\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkLineView.type = 'markLine';\r\n return MarkLineView;\r\n }(MarkerView));\r\n function createList$2(coordSys, seriesModel, mlModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var fromData = new List(coordDimsInfos, mlModel);\r\n var toData = new List(coordDimsInfos, mlModel);\r\n var lineData = new List([], mlModel);\r\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markLineFilter, coordSys));\r\n }\r\n var dimValueGetter$1 = coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n };\r\n fromData.initData(map(optData, function (item) {\r\n return item[0];\r\n }), null, dimValueGetter$1);\r\n toData.initData(map(optData, function (item) {\r\n return item[1];\r\n }), null, dimValueGetter$1);\r\n lineData.initData(map(optData, function (item) {\r\n return item[2];\r\n }));\r\n lineData.hasItemOption = true;\r\n return {\r\n from: fromData,\r\n to: toData,\r\n line: lineData\r\n };\r\n }\r\n ComponentView.registerClass(MarkLineView);\n\n registerPreprocessor(function (opt) {\r\n opt.markLine = opt.markLine || {};\r\n });\n\n var MarkAreaModel = (function (_super) {\r\n __extends(MarkAreaModel, _super);\r\n function MarkAreaModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaModel.type;\r\n return _this;\r\n }\r\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkAreaModel.type = 'markArea';\r\n MarkAreaModel.defaultOption = {\r\n zlevel: 0,\r\n z: 1,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n animation: false,\r\n label: {\r\n show: true,\r\n position: 'top'\r\n },\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n position: 'top'\r\n }\r\n }\r\n };\r\n return MarkAreaModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkAreaModel);\n\n var inner$d = makeInner();\r\n var markAreaTransform = function (seriesModel, coordSys, maModel, item) {\r\n var lt = dataTransform(seriesModel, item[0]);\r\n var rb = dataTransform(seriesModel, item[1]);\r\n var ltCoord = lt.coord;\r\n var rbCoord = rb.coord;\r\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\r\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\r\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\r\n rbCoord[1] = retrieve(rbCoord[1], Infinity);\r\n var result = mergeAll([{}, lt, rb]);\r\n result.coord = [\r\n lt.coord, rb.coord\r\n ];\r\n result.x0 = lt.x;\r\n result.y0 = lt.y;\r\n result.x1 = rb.x;\r\n result.y1 = rb.y;\r\n return result;\r\n };\r\n function isInifinity$1(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n return isInifinity$1(fromCoord[otherDimIndex]) && isInifinity$1(toCoord[otherDimIndex]);\r\n }\r\n function markAreaFilter(coordSys, item) {\r\n var fromCoord = item.coord[0];\r\n var toCoord = item.coord[1];\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n if (fromCoord && toCoord\r\n && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord)\r\n || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, {\r\n coord: fromCoord,\r\n x: item.x0,\r\n y: item.y0\r\n })\r\n || dataFilter$1(coordSys, {\r\n coord: toCoord,\r\n x: item.x1,\r\n y: item.y1\r\n });\r\n }\r\n function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get(dims[0]), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get(dims[1]), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\r\n }\r\n else {\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n var pt = [x, y];\r\n coordSys.clampData && coordSys.clampData(pt, pt);\r\n point = coordSys.dataToPoint(pt, true);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n if (isInifinity$1(x)) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\r\n }\r\n else if (isInifinity$1(y)) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n return point;\r\n }\r\n var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\r\n var MarkAreaView = (function (_super) {\r\n __extends(MarkAreaView, _super);\r\n function MarkAreaView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaView.type;\r\n return _this;\r\n }\r\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\r\n if (maModel) {\r\n var areaData_1 = maModel.getData();\r\n areaData_1.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\r\n });\r\n areaData_1.setItemLayout(idx, points);\r\n var el = areaData_1.getItemGraphicEl(idx);\r\n el.setShape('points', points);\r\n });\r\n }\r\n }, this);\r\n };\r\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var areaGroupMap = this.markerGroupMap;\r\n var polygonGroup = areaGroupMap.get(seriesId)\r\n || areaGroupMap.set(seriesId, { group: new Group() });\r\n this.group.add(polygonGroup.group);\r\n this.markKeep(polygonGroup);\r\n var areaData = createList$3(coordSys, seriesModel, maModel);\r\n maModel.setData(areaData);\r\n areaData.each(function (idx) {\r\n areaData.setItemLayout(idx, map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\r\n }));\r\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\r\n var color$1 = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color$1;\r\n if (typeof style.fill === 'string') {\r\n style.fill = modifyAlpha(style.fill, 0.4);\r\n }\r\n }\r\n if (!style.stroke) {\r\n style.stroke = color$1;\r\n }\r\n areaData.setItemVisual(idx, 'style', style);\r\n });\r\n areaData.diff(inner$d(polygonGroup).data)\r\n .add(function (idx) {\r\n var polygon = new Polygon({\r\n shape: {\r\n points: areaData.getItemLayout(idx)\r\n }\r\n });\r\n areaData.setItemGraphicEl(idx, polygon);\r\n polygonGroup.group.add(polygon);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var polygon = inner$d(polygonGroup).data.getItemGraphicEl(oldIdx);\r\n updateProps(polygon, {\r\n shape: {\r\n points: areaData.getItemLayout(newIdx)\r\n }\r\n }, maModel, newIdx);\r\n polygonGroup.group.add(polygon);\r\n areaData.setItemGraphicEl(newIdx, polygon);\r\n })\r\n .remove(function (idx) {\r\n var polygon = inner$d(polygonGroup).data.getItemGraphicEl(idx);\r\n polygonGroup.group.remove(polygon);\r\n })\r\n .execute();\r\n areaData.eachItemGraphicEl(function (polygon, idx) {\r\n var itemModel = areaData.getItemModel(idx);\r\n var style = areaData.getItemVisual(idx, 'style');\r\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\r\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\r\n labelFetcher: maModel,\r\n labelDataIndex: idx,\r\n defaultText: areaData.getName(idx) || '',\r\n inheritColor: typeof style.fill === 'string'\r\n ? modifyAlpha(style.fill, 1) : '#000'\r\n });\r\n setStatesStylesFromModel(polygon, itemModel);\r\n enableHoverEmphasis(polygon);\r\n getECData(polygon).dataModel = maModel;\r\n });\r\n inner$d(polygonGroup).data = areaData;\r\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkAreaView.type = 'markArea';\r\n return MarkAreaView;\r\n }(MarkerView));\r\n function createList$3(coordSys, seriesModel, maModel) {\r\n var coordDimsInfos;\r\n var areaData;\r\n var dims = ['x0', 'y0', 'x1', 'y1'];\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var data = seriesModel.getData();\r\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\r\n return defaults({\r\n name: coordDim\r\n }, info);\r\n });\r\n areaData = new List(map(dims, function (dim, idx) {\r\n return {\r\n name: dim,\r\n type: coordDimsInfos[idx % 2].type\r\n };\r\n }), maModel);\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n areaData = new List(coordDimsInfos, maModel);\r\n }\r\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markAreaFilter, coordSys));\r\n }\r\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\r\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\r\n } : function (item) {\r\n return item.value;\r\n };\r\n areaData.initData(optData, null, dimValueGetter);\r\n areaData.hasItemOption = true;\r\n return areaData;\r\n }\r\n ComponentView.registerClass(MarkAreaView);\n\n registerPreprocessor(function (opt) {\r\n opt.markArea = opt.markArea || {};\r\n });\n\n ComponentModel.registerSubTypeDefaulter('dataZoom', function () {\r\n return 'slider';\r\n });\n\n var DATA_ZOOM_AXIS_DIMENSIONS = [\r\n 'x', 'y', 'radius', 'angle', 'single'\r\n ];\r\n var SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\r\n function isCoordSupported(seriesModel) {\r\n var coordType = seriesModel.get('coordinateSystem');\r\n return indexOf(SERIES_COORDS, coordType) >= 0;\r\n }\r\n function getAxisMainType(axisDim) {\r\n if (__DEV__) {\r\n assert(axisDim);\r\n }\r\n return axisDim + 'Axis';\r\n }\r\n function findEffectedDataZooms(ecModel, payload) {\r\n var axisRecords = createHashMap();\r\n var effectedModels = [];\r\n var effectedModelMap = createHashMap();\r\n ecModel.eachComponent({ mainType: 'dataZoom', query: payload }, function (dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid)) {\r\n addToEffected(dataZoomModel);\r\n }\r\n });\r\n var foundNewLink;\r\n do {\r\n foundNewLink = false;\r\n ecModel.eachComponent('dataZoom', processSingle);\r\n } while (foundNewLink);\r\n function processSingle(dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\r\n addToEffected(dataZoomModel);\r\n foundNewLink = true;\r\n }\r\n }\r\n function addToEffected(dataZoom) {\r\n effectedModelMap.set(dataZoom.uid, true);\r\n effectedModels.push(dataZoom);\r\n markAxisControlled(dataZoom);\r\n }\r\n function isLinked(dataZoomModel) {\r\n var isLink = false;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisIdxArr = axisRecords.get(axisDim);\r\n if (axisIdxArr && axisIdxArr[axisIndex]) {\r\n isLink = true;\r\n }\r\n });\r\n return isLink;\r\n }\r\n function markAxisControlled(dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\r\n });\r\n }\r\n return effectedModels;\r\n }\r\n function collectReferCoordSysModelInfo(dataZoomModel) {\r\n var ecModel = dataZoomModel.ecModel;\r\n var coordSysInfoWrap = {\r\n infoList: [],\r\n infoMap: createHashMap()\r\n };\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n if (!axisModel) {\r\n return;\r\n }\r\n var coordSysModel = axisModel.getCoordSysModel();\r\n if (!coordSysModel) {\r\n return;\r\n }\r\n var coordSysUid = coordSysModel.uid;\r\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\r\n if (!coordSysInfo) {\r\n coordSysInfo = { model: coordSysModel, axisModels: [] };\r\n coordSysInfoWrap.infoList.push(coordSysInfo);\r\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\r\n }\r\n coordSysInfo.axisModels.push(axisModel);\r\n });\r\n return coordSysInfoWrap;\r\n }\n\n var DataZoomAxisInfo = (function () {\r\n function DataZoomAxisInfo() {\r\n this.indexList = [];\r\n this.indexMap = [];\r\n }\r\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\r\n this.indexList.push(axisCmptIdx);\r\n this.indexMap[axisCmptIdx] = true;\r\n };\r\n return DataZoomAxisInfo;\r\n }());\r\n var DataZoomModel = (function (_super) {\r\n __extends(DataZoomModel, _super);\r\n function DataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomModel.type;\r\n _this._autoThrottle = true;\r\n _this._noTarget = true;\r\n _this._rangePropMode = ['percent', 'percent'];\r\n return _this;\r\n }\r\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputRawOption = retrieveRawOption(option);\r\n this.settledOption = inputRawOption;\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype.mergeOption = function (newOption) {\r\n var inputRawOption = retrieveRawOption(newOption);\r\n merge(this.option, newOption, true);\r\n merge(this.settledOption, inputRawOption, true);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype._doInit = function (inputRawOption) {\r\n var thisOption = this.option;\r\n if (!env.canvasSupported) {\r\n thisOption.realtime = false;\r\n }\r\n this._setDefaultThrottle(inputRawOption);\r\n this._updateRangeUse(inputRawOption);\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n if (this._rangePropMode[index] === 'value') {\r\n thisOption[names[0]] = settledOption[names[0]] = null;\r\n }\r\n }, this);\r\n this._resetTarget();\r\n };\r\n DataZoomModel.prototype._resetTarget = function () {\r\n var optionOrient = this.get('orient', true);\r\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\r\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\r\n if (hasAxisSpecified) {\r\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\r\n }\r\n else {\r\n this._orient = optionOrient || 'horizontal';\r\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\r\n }\r\n this._noTarget = true;\r\n targetAxisIndexMap.each(function (axisInfo) {\r\n if (axisInfo.indexList.length) {\r\n this._noTarget = false;\r\n }\r\n }, this);\r\n };\r\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\r\n var hasAxisSpecified = false;\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\r\n if (!refering.specified) {\r\n return;\r\n }\r\n hasAxisSpecified = true;\r\n var axisInfo = new DataZoomAxisInfo();\r\n each(refering.models, function (axisModel) {\r\n axisInfo.add(axisModel.componentIndex);\r\n });\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }, this);\r\n return hasAxisSpecified;\r\n };\r\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\r\n var ecModel = this.ecModel;\r\n var needAuto = true;\r\n if (needAuto) {\r\n var axisDim = orient === 'vertical' ? 'y' : 'x';\r\n var axisModels = ecModel.findComponents({ mainType: axisDim + 'Axis' });\r\n setParallelAxis(axisModels, axisDim);\r\n }\r\n if (needAuto) {\r\n var axisModels = ecModel.findComponents({\r\n mainType: 'singleAxis',\r\n filter: function (axisModel) { return axisModel.get('orient', true) === orient; }\r\n });\r\n setParallelAxis(axisModels, 'single');\r\n }\r\n function setParallelAxis(axisModels, axisDim) {\r\n var axisModel = axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModel.componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n if (axisDim === 'x' || axisDim === 'y') {\r\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n gridModel_1 && each(axisModels, function (axModel) {\r\n if (axisModel.componentIndex !== axModel.componentIndex\r\n && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\r\n axisInfo.add(axModel.componentIndex);\r\n }\r\n });\r\n }\r\n }\r\n if (needAuto) {\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n if (needAuto) {\r\n return;\r\n }\r\n var axisModels = ecModel.findComponents({\r\n mainType: getAxisMainType(axisDim),\r\n filter: function (axisModel) { return axisModel.get('type', true) === 'category'; }\r\n });\r\n if (axisModels[0]) {\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModels[0].componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }\r\n }, this);\r\n }\r\n };\r\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\r\n var dim;\r\n this.eachTargetAxis(function (axisDim) {\r\n !dim && (dim = axisDim);\r\n }, this);\r\n return dim === 'y' ? 'vertical' : 'horizontal';\r\n };\r\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\r\n if (inputRawOption.hasOwnProperty('throttle')) {\r\n this._autoThrottle = false;\r\n }\r\n if (this._autoThrottle) {\r\n var globalOption = this.ecModel.option;\r\n this.option.throttle = (globalOption.animation && globalOption.animationDurationUpdate > 0) ? 100 : 20;\r\n }\r\n };\r\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\r\n var rangePropMode = this._rangePropMode;\r\n var rangeModeInOption = this.get('rangeMode');\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n var percentSpecified = inputRawOption[names[0]] != null;\r\n var valueSpecified = inputRawOption[names[1]] != null;\r\n if (percentSpecified && !valueSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n else if (!percentSpecified && valueSpecified) {\r\n rangePropMode[index] = 'value';\r\n }\r\n else if (rangeModeInOption) {\r\n rangePropMode[index] = rangeModeInOption[index];\r\n }\r\n else if (percentSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n });\r\n };\r\n DataZoomModel.prototype.noTarget = function () {\r\n return this._noTarget;\r\n };\r\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\r\n var firstAxisModel;\r\n this.eachTargetAxis(function (axisDim, axisIndex) {\r\n if (firstAxisModel == null) {\r\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n }, this);\r\n return firstAxisModel;\r\n };\r\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\r\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\r\n each(axisInfo.indexList, function (axisIndex) {\r\n callback.call(context, axisDim, axisIndex);\r\n });\r\n });\r\n };\r\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\r\n var axisModel = this.getAxisModel(axisDim, axisIndex);\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n };\r\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\r\n if (__DEV__) {\r\n assert(axisDim && axisIndex != null);\r\n }\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\r\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n };\r\n DataZoomModel.prototype.setRawRange = function (opt) {\r\n var thisOption = this.option;\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\r\n if (opt[names[0]] != null || opt[names[1]] != null) {\r\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\r\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\r\n }\r\n }, this);\r\n this._updateRangeUse(opt);\r\n };\r\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\r\n var option = this.option;\r\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\r\n option[name] = opt[name];\r\n });\r\n };\r\n DataZoomModel.prototype.getPercentRange = function () {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataPercentWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\r\n if (axisDim == null && axisIndex == null) {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataValueWindow();\r\n }\r\n }\r\n else {\r\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n var firstProxy;\r\n var axisDimList = this._targetAxisInfoMap.keys();\r\n for (var i = 0; i < axisDimList.length; i++) {\r\n var axisDim = axisDimList[i];\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n for (var j = 0; j < axisInfo.indexList.length; j++) {\r\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\r\n if (proxy.hostedBy(this)) {\r\n return proxy;\r\n }\r\n if (!firstProxy) {\r\n firstProxy = proxy;\r\n }\r\n }\r\n }\r\n return firstProxy;\r\n };\r\n DataZoomModel.prototype.getRangePropMode = function () {\r\n return this._rangePropMode.slice();\r\n };\r\n DataZoomModel.prototype.getOrient = function () {\r\n if (__DEV__) {\r\n assert(this._orient);\r\n }\r\n return this._orient;\r\n };\r\n DataZoomModel.type = 'dataZoom';\r\n DataZoomModel.dependencies = [\r\n 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'\r\n ];\r\n DataZoomModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n filterMode: 'filter',\r\n start: 0,\r\n end: 100\r\n };\r\n return DataZoomModel;\r\n }(ComponentModel));\r\n function retrieveRawOption(option) {\r\n var ret = {};\r\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\r\n option.hasOwnProperty(name) && (ret[name] = option[name]);\r\n });\r\n return ret;\r\n }\n\n var DataZoomView = (function (_super) {\r\n __extends(DataZoomView, _super);\r\n function DataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomView.type;\r\n return _this;\r\n }\r\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n this.dataZoomModel = dataZoomModel;\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n DataZoomView.type = 'dataZoom';\r\n return DataZoomView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DataZoomView);\n\n var SliderZoomModel = (function (_super) {\r\n __extends(SliderZoomModel, _super);\r\n function SliderZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomModel.type;\r\n return _this;\r\n }\r\n SliderZoomModel.type = 'dataZoom.slider';\r\n SliderZoomModel.layoutMode = 'box';\r\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n show: true,\r\n right: 'ph',\r\n top: 'ph',\r\n width: 'ph',\r\n height: 'ph',\r\n left: null,\r\n bottom: null,\r\n borderColor: '#d2dbee',\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(47,69,84,0)',\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#d2dbee',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#d2dbee',\r\n opacity: 0.2\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#8fb0f7',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#8fb0f7',\r\n opacity: 0.2\r\n }\r\n },\r\n fillerColor: 'rgba(135,175,274,0.2)',\r\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\r\n handleSize: '100%',\r\n handleStyle: {\r\n color: '#fff',\r\n borderColor: '#ACB8D1'\r\n },\r\n moveHandleSize: 7,\r\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\r\n moveHandleStyle: {\r\n color: '#D2DBEE',\r\n opacity: 0.7\r\n },\r\n showDetail: true,\r\n showDataShadow: 'auto',\r\n realtime: true,\r\n zoomLock: false,\r\n textStyle: {\r\n color: '#6E7079'\r\n },\r\n brushSelect: true,\r\n brushStyle: {\r\n color: 'rgba(135,175,274,0.15)'\r\n },\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#8FB0F7'\r\n },\r\n moveHandleStyle: {\r\n color: '#8FB0F7'\r\n }\r\n }\r\n });\r\n return SliderZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SliderZoomModel);\n\n function sliderMove (delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\r\n delta = delta || 0;\r\n var extentSpan = extent[1] - extent[0];\r\n if (minSpan != null) {\r\n minSpan = restrict(minSpan, [0, extentSpan]);\r\n }\r\n if (maxSpan != null) {\r\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\r\n }\r\n if (handleIndex === 'all') {\r\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\r\n handleSpan = restrict(handleSpan, [0, extentSpan]);\r\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\r\n handleIndex = 0;\r\n }\r\n handleEnds[0] = restrict(handleEnds[0], extent);\r\n handleEnds[1] = restrict(handleEnds[1], extent);\r\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\r\n handleEnds[handleIndex] += delta;\r\n var extentMinSpan = minSpan || 0;\r\n var realExtent = extent.slice();\r\n originalDistSign.sign < 0 ? (realExtent[0] += extentMinSpan) : (realExtent[1] -= extentMinSpan);\r\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\r\n var currDistSign;\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\r\n }\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (maxSpan != null && currDistSign.span > maxSpan) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\r\n }\r\n return handleEnds;\r\n }\r\n function getSpanSign(handleEnds, handleIndex) {\r\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\r\n return { span: Math.abs(dist), sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 };\r\n }\r\n function restrict(value, extend) {\r\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\r\n }\n\n var Rect$1 = Rect;\r\n var DEFAULT_LOCATION_EDGE_GAP = 7;\r\n var DEFAULT_FRAME_BORDER_WIDTH = 1;\r\n var DEFAULT_FILLER_SIZE = 30;\r\n var DEFAULT_MOVE_HANDLE_SIZE = 7;\r\n var HORIZONTAL = 'horizontal';\r\n var VERTICAL = 'vertical';\r\n var LABEL_GAP = 5;\r\n var SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\r\n var REALTIME_ANIMATION_CONFIG = {\r\n easing: 'cubicOut',\r\n duration: 100\r\n };\r\n var SliderZoomView = (function (_super) {\r\n __extends(SliderZoomView, _super);\r\n function SliderZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomView.type;\r\n _this._displayables = {};\r\n return _this;\r\n }\r\n SliderZoomView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n this._onBrush = bind(this._onBrush, this);\r\n this._onBrushEnd = bind(this._onBrushEnd, this);\r\n };\r\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n _super.prototype.render.apply(this, arguments);\r\n createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\r\n this._orient = dataZoomModel.getOrient();\r\n if (dataZoomModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n this._updateView();\r\n };\r\n SliderZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n SliderZoomView.prototype._clear = function () {\r\n clear(this, '_dispatchZoomAction');\r\n var zr = this.api.getZr();\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n };\r\n SliderZoomView.prototype._buildView = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n this._brushing = false;\r\n this._resetLocation();\r\n this._resetInterval();\r\n var barGroup = this._displayables.sliderGroup = new Group();\r\n this._renderBackground();\r\n this._renderHandle();\r\n this._renderDataShadow();\r\n thisGroup.add(barGroup);\r\n this._positionGroup();\r\n };\r\n SliderZoomView.prototype._resetLocation = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var showMoveHandle = dataZoomModel.get('brushSelect');\r\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\r\n var coordRect = this._findCoordRect();\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var positionInfo = this._orient === HORIZONTAL\r\n ? {\r\n right: ecSize.width - coordRect.x - coordRect.width,\r\n top: (ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize),\r\n width: coordRect.width,\r\n height: DEFAULT_FILLER_SIZE\r\n }\r\n : {\r\n right: DEFAULT_LOCATION_EDGE_GAP,\r\n top: coordRect.y,\r\n width: DEFAULT_FILLER_SIZE,\r\n height: coordRect.height\r\n };\r\n var layoutParams = getLayoutParams(dataZoomModel.option);\r\n each(['right', 'top', 'width', 'height'], function (name) {\r\n if (layoutParams[name] === 'ph') {\r\n layoutParams[name] = positionInfo[name];\r\n }\r\n });\r\n var layoutRect = getLayoutRect(layoutParams, ecSize);\r\n this._location = { x: layoutRect.x, y: layoutRect.y };\r\n this._size = [layoutRect.width, layoutRect.height];\r\n this._orient === VERTICAL && this._size.reverse();\r\n };\r\n SliderZoomView.prototype._positionGroup = function () {\r\n var thisGroup = this.group;\r\n var location = this._location;\r\n var orient = this._orient;\r\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\r\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\r\n sliderGroup.attr((orient === HORIZONTAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: 1 }\r\n : (orient === HORIZONTAL && inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: -1 }\r\n : (orient === VERTICAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 }\r\n : { scaleY: otherAxisInverse ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 });\r\n var rect = thisGroup.getBoundingRect([sliderGroup]);\r\n thisGroup.x = location.x - rect.x;\r\n thisGroup.y = location.y - rect.y;\r\n thisGroup.markRedraw();\r\n };\r\n SliderZoomView.prototype._getViewExtent = function () {\r\n return [0, this._size[0]];\r\n };\r\n SliderZoomView.prototype._renderBackground = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var size = this._size;\r\n var barGroup = this._displayables.sliderGroup;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n barGroup.add(new Rect$1({\r\n silent: true,\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: dataZoomModel.get('backgroundColor')\r\n },\r\n z2: -40\r\n }));\r\n var clickPanel = new Rect$1({\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: 'transparent'\r\n },\r\n z2: 0,\r\n onclick: bind(this._onClickPanel, this)\r\n });\r\n var zr = this.api.getZr();\r\n if (brushSelect) {\r\n clickPanel.on('mousedown', this._onBrushStart, this);\r\n clickPanel.cursor = 'crosshair';\r\n zr.on('mousemove', this._onBrush);\r\n zr.on('mouseup', this._onBrushEnd);\r\n }\r\n else {\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n }\r\n barGroup.add(clickPanel);\r\n };\r\n SliderZoomView.prototype._renderDataShadow = function () {\r\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\r\n this._displayables.dataShadowSegs = [];\r\n if (!info) {\r\n return;\r\n }\r\n var size = this._size;\r\n var seriesModel = info.series;\r\n var data = seriesModel.getRawData();\r\n var otherDim = seriesModel.getShadowDim\r\n ? seriesModel.getShadowDim()\r\n : info.otherDim;\r\n if (otherDim == null) {\r\n return;\r\n }\r\n var otherDataExtent = data.getDataExtent(otherDim);\r\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\r\n otherDataExtent = [\r\n otherDataExtent[0] - otherOffset,\r\n otherDataExtent[1] + otherOffset\r\n ];\r\n var otherShadowExtent = [0, size[1]];\r\n var thisShadowExtent = [0, size[0]];\r\n var areaPoints = [[size[0], 0], [0, 0]];\r\n var linePoints = [];\r\n var step = thisShadowExtent[1] / (data.count() - 1);\r\n var thisCoord = 0;\r\n var stride = Math.round(data.count() / size[0]);\r\n var lastIsEmpty;\r\n data.each([otherDim], function (value, index) {\r\n if (stride > 0 && (index % stride)) {\r\n thisCoord += step;\r\n return;\r\n }\r\n var isEmpty = value == null || isNaN(value) || value === '';\r\n var otherCoord = isEmpty\r\n ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\r\n if (isEmpty && !lastIsEmpty && index) {\r\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\r\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\r\n }\r\n else if (!isEmpty && lastIsEmpty) {\r\n areaPoints.push([thisCoord, 0]);\r\n linePoints.push([thisCoord, 0]);\r\n }\r\n areaPoints.push([thisCoord, otherCoord]);\r\n linePoints.push([thisCoord, otherCoord]);\r\n thisCoord += step;\r\n lastIsEmpty = isEmpty;\r\n });\r\n var dataZoomModel = this.dataZoomModel;\r\n function createDataShadowGroup(isSelectedArea) {\r\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\r\n var group = new Group();\r\n var polygon = new Polygon({\r\n shape: { points: areaPoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('areaStyle').getAreaStyle(),\r\n silent: true,\r\n z2: -20\r\n });\r\n var polyline = new Polyline({\r\n shape: { points: linePoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('lineStyle').getLineStyle(),\r\n silent: true,\r\n z2: -19\r\n });\r\n group.add(polygon);\r\n group.add(polyline);\r\n return group;\r\n }\r\n for (var i = 0; i < 3; i++) {\r\n var group = createDataShadowGroup(i === 1);\r\n this._displayables.sliderGroup.add(group);\r\n this._displayables.dataShadowSegs.push(group);\r\n }\r\n };\r\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var showDataShadow = dataZoomModel.get('showDataShadow');\r\n if (showDataShadow === false) {\r\n return;\r\n }\r\n var result;\r\n var ecModel = this.ecModel;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var seriesModels = dataZoomModel\r\n .getAxisProxy(axisDim, axisIndex)\r\n .getTargetSeriesModels();\r\n each(seriesModels, function (seriesModel) {\r\n if (result) {\r\n return;\r\n }\r\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\r\n return;\r\n }\r\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\r\n var otherDim = getOtherDim(axisDim);\r\n var otherAxisInverse;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (otherDim != null && coordSys.getOtherAxis) {\r\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\r\n }\r\n otherDim = seriesModel.getData().mapDimension(otherDim);\r\n result = {\r\n thisAxis: thisAxis,\r\n series: seriesModel,\r\n thisDim: axisDim,\r\n otherDim: otherDim,\r\n otherAxisInverse: otherAxisInverse\r\n };\r\n }, this);\r\n }, this);\r\n return result;\r\n };\r\n SliderZoomView.prototype._renderHandle = function () {\r\n var thisGroup = this.group;\r\n var displayables = this._displayables;\r\n var handles = displayables.handles = [null, null];\r\n var handleLabels = displayables.handleLabels = [null, null];\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var size = this._size;\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n var filler = displayables.filler = new Rect$1({\r\n silent: brushSelect,\r\n style: {\r\n fill: dataZoomModel.get('fillerColor')\r\n },\r\n textConfig: {\r\n position: 'inside'\r\n }\r\n });\r\n sliderGroup.add(filler);\r\n sliderGroup.add(new Rect$1({\r\n silent: true,\r\n subPixelOptimize: true,\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: size[0],\r\n height: size[1],\r\n r: borderRadius\r\n },\r\n style: {\r\n stroke: dataZoomModel.get('dataBackgroundColor')\r\n || dataZoomModel.get('borderColor'),\r\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\r\n fill: 'rgba(0,0,0,0)'\r\n }\r\n }));\r\n each([0, 1], function (handleIndex) {\r\n var iconStr = dataZoomModel.get('handleIcon');\r\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\r\n iconStr = 'path://' + iconStr;\r\n if (__DEV__) {\r\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\r\n }\r\n }\r\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\r\n path.attr({\r\n cursor: getCursor(this._orient),\r\n draggable: true,\r\n drift: bind(this._onDragMove, this, handleIndex),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false),\r\n z2: 5\r\n });\r\n var bRect = path.getBoundingRect();\r\n var handleSize = dataZoomModel.get('handleSize');\r\n this._handleHeight = parsePercent$2(handleSize, this._size[1]);\r\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\r\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\r\n path.style.strokeNoScale = true;\r\n path.rectHover = true;\r\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n enableHoverEmphasis(path);\r\n var handleColor = dataZoomModel.get('handleColor');\r\n if (handleColor != null) {\r\n path.style.fill = handleColor;\r\n }\r\n sliderGroup.add(handles[handleIndex] = path);\r\n var textStyleModel = dataZoomModel.getModel('textStyle');\r\n thisGroup.add(handleLabels[handleIndex] = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n verticalAlign: 'middle',\r\n align: 'center',\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n },\r\n z2: 10\r\n }));\r\n }, this);\r\n var actualMoveZone = filler;\r\n if (brushSelect) {\r\n var moveHandleHeight = parsePercent$2(dataZoomModel.get('moveHandleSize'), size[1]);\r\n var moveHandle_1 = displayables.moveHandle = new Rect({\r\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\r\n silent: true,\r\n shape: {\r\n r: [0, 0, 2, 2],\r\n y: size[1] - 0.5,\r\n height: moveHandleHeight\r\n }\r\n });\r\n var iconSize = moveHandleHeight * 0.8;\r\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\r\n moveHandleIcon.silent = true;\r\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\r\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\r\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\r\n actualMoveZone = displayables.moveZone = new Rect({\r\n invisible: true,\r\n shape: {\r\n y: size[1] - moveZoneExpandSize,\r\n height: moveHandleHeight + moveZoneExpandSize\r\n }\r\n });\r\n actualMoveZone.on('mouseover', function () {\r\n api.enterEmphasis(moveHandle_1);\r\n })\r\n .on('mouseout', function () {\r\n api.leaveEmphasis(moveHandle_1);\r\n });\r\n sliderGroup.add(moveHandle_1);\r\n sliderGroup.add(moveHandleIcon);\r\n sliderGroup.add(actualMoveZone);\r\n }\r\n actualMoveZone.attr({\r\n draggable: true,\r\n cursor: getCursor(this._orient),\r\n drift: bind(this._onDragMove, this, 'all'),\r\n ondragstart: bind(this._showDataInfo, this, true),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false)\r\n });\r\n };\r\n SliderZoomView.prototype._resetInterval = function () {\r\n var range = this._range = this.dataZoomModel.getPercentRange();\r\n var viewExtent = this._getViewExtent();\r\n this._handleEnds = [\r\n linearMap(range[0], [0, 100], viewExtent, true),\r\n linearMap(range[1], [0, 100], viewExtent, true)\r\n ];\r\n };\r\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var handleEnds = this._handleEnds;\r\n var viewExtend = this._getViewExtent();\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n var percentExtent = [0, 100];\r\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null\r\n ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null\r\n ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\r\n var lastRange = this._range;\r\n var range = this._range = asc([\r\n linearMap(handleEnds[0], viewExtend, percentExtent, true),\r\n linearMap(handleEnds[1], viewExtend, percentExtent, true)\r\n ]);\r\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\r\n };\r\n SliderZoomView.prototype._updateView = function (nonRealtime) {\r\n var displaybles = this._displayables;\r\n var handleEnds = this._handleEnds;\r\n var handleInterval = asc(handleEnds.slice());\r\n var size = this._size;\r\n each([0, 1], function (handleIndex) {\r\n var handle = displaybles.handles[handleIndex];\r\n var handleHeight = this._handleHeight;\r\n handle.attr({\r\n scaleX: handleHeight / 2,\r\n scaleY: handleHeight / 2,\r\n x: handleEnds[handleIndex],\r\n y: size[1] / 2 - handleHeight / 2\r\n });\r\n }, this);\r\n displaybles.filler.setShape({\r\n x: handleInterval[0],\r\n y: 0,\r\n width: handleInterval[1] - handleInterval[0],\r\n height: size[1]\r\n });\r\n var viewExtent = {\r\n x: handleInterval[0],\r\n width: handleInterval[1] - handleInterval[0]\r\n };\r\n if (displaybles.moveHandle) {\r\n displaybles.moveHandle.setShape(viewExtent);\r\n displaybles.moveZone.setShape(viewExtent);\r\n displaybles.moveZone.getBoundingRect();\r\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\r\n }\r\n var dataShadowSegs = displaybles.dataShadowSegs;\r\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\r\n for (var i = 0; i < dataShadowSegs.length; i++) {\r\n var segGroup = dataShadowSegs[i];\r\n var clipPath = segGroup.getClipPath();\r\n if (!clipPath) {\r\n clipPath = new Rect();\r\n segGroup.setClipPath(clipPath);\r\n }\r\n clipPath.setShape({\r\n x: segIntervals[i],\r\n y: 0,\r\n width: segIntervals[i + 1] - segIntervals[i],\r\n height: size[1]\r\n });\r\n }\r\n this._updateDataInfo(nonRealtime);\r\n };\r\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var displaybles = this._displayables;\r\n var handleLabels = displaybles.handleLabels;\r\n var orient = this._orient;\r\n var labelTexts = ['', ''];\r\n if (dataZoomModel.get('showDetail')) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var axis = axisProxy.getAxisModel().axis;\r\n var range = this._range;\r\n var dataInterval = nonRealtime\r\n ? axisProxy.calculateDataWindow({\r\n start: range[0], end: range[1]\r\n }).valueWindow\r\n : axisProxy.getDataValueWindow();\r\n labelTexts = [\r\n this._formatLabel(dataInterval[0], axis),\r\n this._formatLabel(dataInterval[1], axis)\r\n ];\r\n }\r\n }\r\n var orderedHandleEnds = asc(this._handleEnds.slice());\r\n setLabel.call(this, 0);\r\n setLabel.call(this, 1);\r\n function setLabel(handleIndex) {\r\n var barTransform = getTransform(displaybles.handles[handleIndex].parent, this.group);\r\n var direction = transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\r\n var offset = this._handleWidth / 2 + LABEL_GAP;\r\n var textPoint = applyTransform$1([\r\n orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset),\r\n this._size[1] / 2\r\n ], barTransform);\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\r\n align: orient === HORIZONTAL ? direction : 'center',\r\n text: labelTexts[handleIndex]\r\n });\r\n }\r\n };\r\n SliderZoomView.prototype._formatLabel = function (value, axis) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var labelFormatter = dataZoomModel.get('labelFormatter');\r\n var labelPrecision = dataZoomModel.get('labelPrecision');\r\n if (labelPrecision == null || labelPrecision === 'auto') {\r\n labelPrecision = axis.getPixelPrecision();\r\n }\r\n var valueStr = (value == null || isNaN(value))\r\n ? ''\r\n : (axis.type === 'category' || axis.type === 'time')\r\n ? axis.scale.getLabel({\r\n value: Math.round(value)\r\n })\r\n : value.toFixed(Math.min(labelPrecision, 20));\r\n return isFunction(labelFormatter)\r\n ? labelFormatter(value, valueStr)\r\n : isString(labelFormatter)\r\n ? labelFormatter.replace('{value}', valueStr)\r\n : valueStr;\r\n };\r\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\r\n showOrHide = this._dragging || showOrHide;\r\n var displayables = this._displayables;\r\n var handleLabels = displayables.handleLabels;\r\n handleLabels[0].attr('invisible', !showOrHide);\r\n handleLabels[1].attr('invisible', !showOrHide);\r\n displayables.moveHandle\r\n && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\r\n };\r\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\r\n this._dragging = true;\r\n stop(event.event);\r\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\r\n var vertex = applyTransform$1([dx, dy], barTransform, true);\r\n var changed = this._updateInterval(handleIndex, vertex[0]);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n this._updateView(!realtime);\r\n changed && realtime && this._dispatchZoomAction(true);\r\n };\r\n SliderZoomView.prototype._onDragEnd = function () {\r\n this._dragging = false;\r\n this._showDataInfo(false);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n !realtime && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onClickPanel = function (e) {\r\n var size = this._size;\r\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\r\n if (localPoint[0] < 0 || localPoint[0] > size[0]\r\n || localPoint[1] < 0 || localPoint[1] > size[1]) {\r\n return;\r\n }\r\n var handleEnds = this._handleEnds;\r\n var center = (handleEnds[0] + handleEnds[1]) / 2;\r\n var changed = this._updateInterval('all', localPoint[0] - center);\r\n this._updateView();\r\n changed && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrushStart = function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n this._brushStart = new Point(x, y);\r\n this._brushing = true;\r\n this._brushStartTime = +new Date();\r\n };\r\n SliderZoomView.prototype._onBrushEnd = function (e) {\r\n if (!this._brushing) {\r\n return;\r\n }\r\n var brushRect = this._displayables.brushRect;\r\n this._brushing = false;\r\n if (!brushRect) {\r\n return;\r\n }\r\n brushRect.attr('ignore', true);\r\n var brushShape = brushRect.shape;\r\n var brushEndTime = +new Date();\r\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\r\n return;\r\n }\r\n var viewExtend = this._getViewExtent();\r\n var percentExtent = [0, 100];\r\n this._range = asc([\r\n linearMap(brushShape.x, viewExtend, percentExtent, true),\r\n linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)\r\n ]);\r\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\r\n this._updateView();\r\n this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrush = function (e) {\r\n if (this._brushing) {\r\n stop(e.event);\r\n this._updateBrushRect(e.offsetX, e.offsetY);\r\n }\r\n };\r\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\r\n var displayables = this._displayables;\r\n var dataZoomModel = this.dataZoomModel;\r\n var brushRect = displayables.brushRect;\r\n if (!brushRect) {\r\n brushRect = displayables.brushRect = new Rect$1({\r\n silent: true,\r\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\r\n });\r\n displayables.sliderGroup.add(brushRect);\r\n }\r\n brushRect.ignore = false;\r\n var brushStart = this._brushStart;\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\r\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\r\n var size = this._size;\r\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\r\n brushRect.setShape({\r\n x: startPoint[0], y: 0,\r\n width: endPoint[0] - startPoint[0], height: size[1]\r\n });\r\n };\r\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\r\n var range = this._range;\r\n this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n dataZoomId: this.dataZoomModel.id,\r\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n };\r\n SliderZoomView.prototype._findCoordRect = function () {\r\n var rect;\r\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\r\n if (!rect && coordSysInfoList.length) {\r\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\r\n rect = coordSys.getRect && coordSys.getRect();\r\n }\r\n if (!rect) {\r\n var width = this.api.getWidth();\r\n var height = this.api.getHeight();\r\n rect = {\r\n x: width * 0.2,\r\n y: height * 0.2,\r\n width: width * 0.6,\r\n height: height * 0.6\r\n };\r\n }\r\n return rect;\r\n };\r\n SliderZoomView.type = 'dataZoom.slider';\r\n return SliderZoomView;\r\n }(DataZoomView));\r\n function getOtherDim(thisDim) {\r\n var map = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' };\r\n return map[thisDim];\r\n }\r\n function getCursor(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(SliderZoomView);\n\n var each$8 = each;\r\n var asc$1 = asc;\r\n var AxisProxy = (function () {\r\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\r\n this._dimName = dimName;\r\n this._axisIndex = axisIndex;\r\n this.ecModel = ecModel;\r\n this._dataZoomModel = dataZoomModel;\r\n }\r\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\r\n return this._dataZoomModel === dataZoomModel;\r\n };\r\n AxisProxy.prototype.getDataValueWindow = function () {\r\n return this._valueWindow.slice();\r\n };\r\n AxisProxy.prototype.getDataPercentWindow = function () {\r\n return this._percentWindow.slice();\r\n };\r\n AxisProxy.prototype.getTargetSeriesModels = function () {\r\n var seriesModels = [];\r\n this.ecModel.eachSeries(function (seriesModel) {\r\n if (isCoordSupported(seriesModel)) {\r\n var axisMainType = getAxisMainType(this._dimName);\r\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\r\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\r\n seriesModels.push(seriesModel);\r\n }\r\n }\r\n }, this);\r\n return seriesModels;\r\n };\r\n AxisProxy.prototype.getAxisModel = function () {\r\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\r\n };\r\n AxisProxy.prototype.getMinMaxSpan = function () {\r\n return clone(this._minMaxSpan);\r\n };\r\n AxisProxy.prototype.calculateDataWindow = function (opt) {\r\n var dataExtent = this._dataExtent;\r\n var axisModel = this.getAxisModel();\r\n var scale = axisModel.axis.scale;\r\n var rangePropMode = this._dataZoomModel.getRangePropMode();\r\n var percentExtent = [0, 100];\r\n var percentWindow = [];\r\n var valueWindow = [];\r\n var hasPropModeValue;\r\n each$8(['start', 'end'], function (prop, idx) {\r\n var boundPercent = opt[prop];\r\n var boundValue = opt[prop + 'Value'];\r\n if (rangePropMode[idx] === 'percent') {\r\n boundPercent == null && (boundPercent = percentExtent[idx]);\r\n boundValue = scale.parse(linearMap(boundPercent, percentExtent, dataExtent));\r\n }\r\n else {\r\n hasPropModeValue = true;\r\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\r\n boundPercent = linearMap(boundValue, dataExtent, percentExtent);\r\n }\r\n valueWindow[idx] = boundValue;\r\n percentWindow[idx] = boundPercent;\r\n });\r\n asc$1(valueWindow);\r\n asc$1(percentWindow);\r\n var spans = this._minMaxSpan;\r\n hasPropModeValue\r\n ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false)\r\n : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\r\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\r\n var suffix = toValue ? 'Span' : 'ValueSpan';\r\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\r\n for (var i = 0; i < 2; i++) {\r\n toWindow[i] = linearMap(fromWindow[i], fromExtent, toExtent, true);\r\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\r\n }\r\n }\r\n return {\r\n valueWindow: valueWindow,\r\n percentWindow: percentWindow\r\n };\r\n };\r\n AxisProxy.prototype.reset = function (dataZoomModel) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var targetSeries = this.getTargetSeriesModels();\r\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\r\n this._updateMinMaxSpan();\r\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\r\n this._valueWindow = dataWindow.valueWindow;\r\n this._percentWindow = dataWindow.percentWindow;\r\n this._setAxisModel();\r\n };\r\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var axisDim = this._dimName;\r\n var seriesModels = this.getTargetSeriesModels();\r\n var filterMode = dataZoomModel.get('filterMode');\r\n var valueWindow = this._valueWindow;\r\n if (filterMode === 'none') {\r\n return;\r\n }\r\n each$8(seriesModels, function (seriesModel) {\r\n var seriesData = seriesModel.getData();\r\n var dataDims = seriesData.mapDimensionsAll(axisDim);\r\n if (!dataDims.length) {\r\n return;\r\n }\r\n if (filterMode === 'weakFilter') {\r\n seriesData.filterSelf(function (dataIndex) {\r\n var leftOut;\r\n var rightOut;\r\n var hasValue;\r\n for (var i = 0; i < dataDims.length; i++) {\r\n var value = seriesData.get(dataDims[i], dataIndex);\r\n var thisHasValue = !isNaN(value);\r\n var thisLeftOut = value < valueWindow[0];\r\n var thisRightOut = value > valueWindow[1];\r\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\r\n return true;\r\n }\r\n thisHasValue && (hasValue = true);\r\n thisLeftOut && (leftOut = true);\r\n thisRightOut && (rightOut = true);\r\n }\r\n return hasValue && leftOut && rightOut;\r\n });\r\n }\r\n else {\r\n each$8(dataDims, function (dim) {\r\n if (filterMode === 'empty') {\r\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\r\n return !isInWindow(value) ? NaN : value;\r\n }));\r\n }\r\n else {\r\n var range = {};\r\n range[dim] = valueWindow;\r\n seriesData.selectRange(range);\r\n }\r\n });\r\n }\r\n each$8(dataDims, function (dim) {\r\n seriesData.setApproximateExtent(valueWindow, dim);\r\n });\r\n });\r\n function isInWindow(value) {\r\n return value >= valueWindow[0] && value <= valueWindow[1];\r\n }\r\n };\r\n AxisProxy.prototype._updateMinMaxSpan = function () {\r\n var minMaxSpan = this._minMaxSpan = {};\r\n var dataZoomModel = this._dataZoomModel;\r\n var dataExtent = this._dataExtent;\r\n each$8(['min', 'max'], function (minMax) {\r\n var percentSpan = dataZoomModel.get(minMax + 'Span');\r\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\r\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\r\n if (valueSpan != null) {\r\n percentSpan = linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\r\n }\r\n else if (percentSpan != null) {\r\n valueSpan = linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\r\n }\r\n minMaxSpan[minMax + 'Span'] = percentSpan;\r\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\r\n }, this);\r\n };\r\n AxisProxy.prototype._setAxisModel = function () {\r\n var axisModel = this.getAxisModel();\r\n var percentWindow = this._percentWindow;\r\n var valueWindow = this._valueWindow;\r\n if (!percentWindow) {\r\n return;\r\n }\r\n var precision = getPixelPrecision(valueWindow, [0, 500]);\r\n precision = Math.min(precision, 20);\r\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\r\n if (percentWindow[0] !== 0) {\r\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\r\n }\r\n if (percentWindow[1] !== 100) {\r\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\r\n }\r\n rawExtentInfo.freeze();\r\n };\r\n return AxisProxy;\r\n }());\r\n function calculateDataExtent(axisProxy, axisDim, seriesModels) {\r\n var dataExtent = [Infinity, -Infinity];\r\n each$8(seriesModels, function (seriesModel) {\r\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\r\n });\r\n var axisModel = axisProxy.getAxisModel();\r\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\r\n return [rawExtentResult.min, rawExtentResult.max];\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER, {\r\n getTargetSeries: function (ecModel) {\r\n function eachAxisModel(cb) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\r\n });\r\n });\r\n }\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n axisModel.__dzAxisProxy = null;\r\n });\r\n var proxyList = [];\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n if (!axisModel.__dzAxisProxy) {\r\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\r\n proxyList.push(axisModel.__dzAxisProxy);\r\n }\r\n });\r\n var seriesModelMap = createHashMap();\r\n each(proxyList, function (axisProxy) {\r\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\r\n seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\r\n });\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\r\n });\r\n });\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var percentRange = axisProxy.getDataPercentWindow();\r\n var valueRange = axisProxy.getDataValueWindow();\r\n dataZoomModel.setCalculatedRange({\r\n start: percentRange[0],\r\n end: percentRange[1],\r\n startValue: valueRange[0],\r\n endValue: valueRange[1]\r\n });\r\n }\r\n });\r\n }\r\n });\n\n registerAction('dataZoom', function (payload, ecModel) {\r\n var effectedModels = findEffectedDataZooms(ecModel, payload);\r\n each(effectedModels, function (dataZoomModel) {\r\n dataZoomModel.setRawRange({\r\n start: payload.start,\r\n end: payload.end,\r\n startValue: payload.startValue,\r\n endValue: payload.endValue\r\n });\r\n });\r\n });\n\n var InsideZoomModel = (function (_super) {\r\n __extends(InsideZoomModel, _super);\r\n function InsideZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = InsideZoomModel.type;\r\n return _this;\r\n }\r\n InsideZoomModel.type = 'dataZoom.inside';\r\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n disabled: false,\r\n zoomLock: false,\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n return InsideZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(InsideZoomModel);\n\n var ATTR = '\\0_ec_interaction_mutex';\r\n function take(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n store[resourceKey] = userKey;\r\n }\r\n function release(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n var uKey = store[resourceKey];\r\n if (uKey === userKey) {\r\n store[resourceKey] = null;\r\n }\r\n }\r\n function isTaken(zr, resourceKey) {\r\n return !!getStore(zr)[resourceKey];\r\n }\r\n function getStore(zr) {\r\n return zr[ATTR] || (zr[ATTR] = {});\r\n }\r\n registerAction({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, function () { });\n\n var RoamController = (function (_super) {\r\n __extends(RoamController, _super);\r\n function RoamController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._zr = zr;\r\n var mousedownHandler = bind(_this._mousedownHandler, _this);\r\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\r\n var mouseupHandler = bind(_this._mouseupHandler, _this);\r\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\r\n var pinchHandler = bind(_this._pinchHandler, _this);\r\n _this.enable = function (controlType, opt) {\r\n this.disable();\r\n this._opt = defaults(clone(opt) || {}, {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n if (controlType == null) {\r\n controlType = true;\r\n }\r\n if (controlType === true || (controlType === 'move' || controlType === 'pan')) {\r\n zr.on('mousedown', mousedownHandler);\r\n zr.on('mousemove', mousemoveHandler);\r\n zr.on('mouseup', mouseupHandler);\r\n }\r\n if (controlType === true || (controlType === 'scale' || controlType === 'zoom')) {\r\n zr.on('mousewheel', mousewheelHandler);\r\n zr.on('pinch', pinchHandler);\r\n }\r\n };\r\n _this.disable = function () {\r\n zr.off('mousedown', mousedownHandler);\r\n zr.off('mousemove', mousemoveHandler);\r\n zr.off('mouseup', mouseupHandler);\r\n zr.off('mousewheel', mousewheelHandler);\r\n zr.off('pinch', pinchHandler);\r\n };\r\n return _this;\r\n }\r\n RoamController.prototype.isDragging = function () {\r\n return this._dragging;\r\n };\r\n RoamController.prototype.isPinching = function () {\r\n return this._pinching;\r\n };\r\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\r\n this.pointerChecker = pointerChecker;\r\n };\r\n RoamController.prototype.dispose = function () {\r\n this.disable();\r\n };\r\n RoamController.prototype._mousedownHandler = function (e) {\r\n if (isMiddleOrRightButtonOnMouseUpDown(e)\r\n || (e.target && e.target.draggable)) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\r\n this._x = x;\r\n this._y = y;\r\n this._dragging = true;\r\n }\r\n };\r\n RoamController.prototype._mousemoveHandler = function (e) {\r\n if (!this._dragging\r\n || !isAvailableBehavior('moveOnMouseMove', e, this._opt)\r\n || e.gestureEvent === 'pinch'\r\n || isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var oldX = this._x;\r\n var oldY = this._y;\r\n var dx = x - oldX;\r\n var dy = y - oldY;\r\n this._x = x;\r\n this._y = y;\r\n this._opt.preventDefaultMouseMove && stop(e.event);\r\n trigger(this, 'pan', 'moveOnMouseMove', e, {\r\n dx: dx, dy: dy, oldX: oldX, oldY: oldY, newX: x, newY: y, isAvailableBehavior: null\r\n });\r\n };\r\n RoamController.prototype._mouseupHandler = function (e) {\r\n if (!isMiddleOrRightButtonOnMouseUpDown(e)) {\r\n this._dragging = false;\r\n }\r\n };\r\n RoamController.prototype._mousewheelHandler = function (e) {\r\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\r\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\r\n var wheelDelta = e.wheelDelta;\r\n var absWheelDeltaDelta = Math.abs(wheelDelta);\r\n var originX = e.offsetX;\r\n var originY = e.offsetY;\r\n if (wheelDelta === 0 || (!shouldZoom && !shouldMove)) {\r\n return;\r\n }\r\n if (shouldZoom) {\r\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\r\n var scale = wheelDelta > 0 ? factor : 1 / factor;\r\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\r\n scale: scale, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n if (shouldMove) {\r\n var absDelta = Math.abs(wheelDelta);\r\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\r\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\r\n scrollDelta: scrollDelta, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n };\r\n RoamController.prototype._pinchHandler = function (e) {\r\n if (isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\r\n checkPointerAndTrigger(this, 'zoom', null, e, {\r\n scale: scale, originX: e.pinchX, originY: e.pinchY, isAvailableBehavior: null\r\n });\r\n };\r\n return RoamController;\r\n }(Eventful));\r\n function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n if (controller.pointerChecker\r\n && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\r\n stop(e.event);\r\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\r\n }\r\n }\r\n function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\r\n controller.trigger(eventName, contollerEvent);\r\n }\r\n function isAvailableBehavior(behaviorToCheck, e, settings) {\r\n var setting = settings[behaviorToCheck];\r\n return !behaviorToCheck || (setting && (!isString(setting) || e.event[setting + 'Key']));\r\n }\n\n var inner$e = makeInner();\r\n registerProcessor(PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\r\n var apiInner = inner$e(api);\r\n var coordSysRecordMap = apiInner.coordSysRecordMap\r\n || (apiInner.coordSysRecordMap = createHashMap());\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n coordSysRecord.dataZoomInfoMap = null;\r\n });\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'inside' }, function (dataZoomModel) {\r\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\r\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\r\n var coordSysUid = dzCoordSysInfo.model.uid;\r\n var coordSysRecord = coordSysRecordMap.get(coordSysUid)\r\n || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap\r\n || (coordSysRecord.dataZoomInfoMap = createHashMap());\r\n dataZoomInfoMap.set(dataZoomModel.uid, {\r\n dzReferCoordSysInfo: dzCoordSysInfo,\r\n model: dataZoomModel,\r\n getRange: null\r\n });\r\n });\r\n });\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n var controller = coordSysRecord.controller;\r\n var firstDzInfo;\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var firstDzKey = dataZoomInfoMap.keys()[0];\r\n if (firstDzKey != null) {\r\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\r\n }\r\n }\r\n if (!firstDzInfo) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n return;\r\n }\r\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\r\n controller.enable(controllerParams.controlType, controllerParams.opt);\r\n controller.setPointerChecker(coordSysRecord.containsPoint);\r\n createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\r\n });\r\n });\r\n function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\r\n inner$e(api).coordSysRecordMap.each(function (coordSysRecord) {\r\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\r\n if (dzInfo) {\r\n dzInfo.getRange = getRange;\r\n }\r\n });\r\n }\r\n function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\r\n var coordSysRecordMap = inner$e(api).coordSysRecordMap;\r\n var coordSysKeyArr = coordSysRecordMap.keys();\r\n for (var i = 0; i < coordSysKeyArr.length; i++) {\r\n var coordSysKey = coordSysKeyArr[i];\r\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var dzUid = dataZoomModel.uid;\r\n var dzInfo = dataZoomInfoMap.get(dzUid);\r\n if (dzInfo) {\r\n dataZoomInfoMap.removeKey(dzUid);\r\n if (!dataZoomInfoMap.keys().length) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\r\n if (coordSysRecord) {\r\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\r\n var controller = coordSysRecord.controller;\r\n controller && controller.dispose();\r\n }\r\n }\r\n function createCoordSysRecord(api, coordSysModel) {\r\n var coordSysRecord = {\r\n model: coordSysModel,\r\n containsPoint: curry(containsPoint, coordSysModel),\r\n dispatchAction: curry(dispatchAction, api),\r\n dataZoomInfoMap: null,\r\n controller: null\r\n };\r\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\r\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\r\n controller.on(eventName, function (event) {\r\n var batch = [];\r\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\r\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\r\n return;\r\n }\r\n var method = (dzInfo.getRange || {})[eventName];\r\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\r\n !dzInfo.model.get('disabled', true) && range && batch.push({\r\n dataZoomId: dzInfo.model.id,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n });\r\n batch.length && coordSysRecord.dispatchAction(batch);\r\n });\r\n });\r\n return coordSysRecord;\r\n }\r\n function dispatchAction(api, batch) {\r\n api.dispatchAction({\r\n type: 'dataZoom',\r\n animation: {\r\n easing: 'cubicOut',\r\n duration: 100\r\n },\r\n batch: batch\r\n });\r\n }\r\n function containsPoint(coordSysModel, e, x, y) {\r\n return coordSysModel.coordinateSystem.containPoint([x, y]);\r\n }\r\n function mergeControllerParams(dataZoomInfoMap) {\r\n var controlType;\r\n var prefix = 'type_';\r\n var typePriority = {\r\n 'type_true': 2,\r\n 'type_move': 1,\r\n 'type_false': 0,\r\n 'type_undefined': -1\r\n };\r\n var preventDefaultMouseMove = true;\r\n dataZoomInfoMap.each(function (dataZoomInfo) {\r\n var dataZoomModel = dataZoomInfo.model;\r\n var oneType = dataZoomModel.get('disabled', true)\r\n ? false\r\n : dataZoomModel.get('zoomLock', true)\r\n ? 'move'\r\n : true;\r\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\r\n controlType = oneType;\r\n }\r\n preventDefaultMouseMove = preventDefaultMouseMove\r\n && dataZoomModel.get('preventDefaultMouseMove', true);\r\n });\r\n return {\r\n controlType: controlType,\r\n opt: {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: true,\r\n preventDefaultMouseMove: !!preventDefaultMouseMove\r\n }\r\n };\r\n }\n\n var InsideZoomView = (function (_super) {\r\n __extends(InsideZoomView, _super);\r\n function InsideZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataZoom.inside';\r\n return _this;\r\n }\r\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\r\n _super.prototype.render.apply(this, arguments);\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n return;\r\n }\r\n this.range = dataZoomModel.getPercentRange();\r\n setViewInfoToCoordSysRecord(api, dataZoomModel, {\r\n pan: bind(getRangeHandlers.pan, this),\r\n zoom: bind(getRangeHandlers.zoom, this),\r\n scrollMove: bind(getRangeHandlers.scrollMove, this)\r\n });\r\n };\r\n InsideZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n InsideZoomView.prototype._clear = function () {\r\n disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\r\n this.range = null;\r\n };\r\n InsideZoomView.type = 'dataZoom.inside';\r\n return InsideZoomView;\r\n }(DataZoomView));\r\n var getRangeHandlers = {\r\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\r\n var percentPoint = (directionInfo.signal > 0\r\n ? (directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel)\r\n : (directionInfo.pixel - directionInfo.pixelStart)) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\r\n var scale = Math.max(1 / e.scale, 0);\r\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\r\n range[1] = (range[1] - percentPoint) * scale + percentPoint;\r\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n },\r\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal\r\n * (range[1] - range[0])\r\n * directionInfo.pixel / directionInfo.pixelLength;\r\n }),\r\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\r\n })\r\n };\r\n function makeMover(getPercentDelta) {\r\n return function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\r\n sliderMove(percentDelta, range, [0, 100], 'all');\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n };\r\n }\r\n var getDirectionInfo = {\r\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.dim === 'x') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var polar = coordSysInfo.model.coordinateSystem;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var angleExtent = polar.getAngleAxis().getExtent();\r\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\r\n newPoint = polar.pointToCoord(newPoint);\r\n if (axisModel.mainType === 'radiusAxis') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\r\n ret.pixelStart = radiusExtent[0];\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = angleExtent[1] - angleExtent[0];\r\n ret.pixelStart = angleExtent[0];\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n var ret = {};\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.orient === 'horizontal') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n }\r\n };\r\n ComponentView.registerClass(InsideZoomView);\n\n var ToolboxFeature = (function () {\r\n function ToolboxFeature() {\r\n }\r\n return ToolboxFeature;\r\n }());\r\n var features = {};\r\n function registerFeature(name, ctor) {\r\n features[name] = ctor;\r\n }\r\n function getFeature(name) {\r\n return features[name];\r\n }\n\n var ToolboxModel = (function (_super) {\r\n __extends(ToolboxModel, _super);\r\n function ToolboxModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ToolboxModel.type;\r\n return _this;\r\n }\r\n ToolboxModel.prototype.optionUpdated = function () {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n var ecModel = this.ecModel;\r\n each(this.option.feature, function (featureOpt, featureName) {\r\n var Feature = getFeature(featureName);\r\n if (Feature) {\r\n if (Feature.getDefaultOption) {\r\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\r\n }\r\n merge(featureOpt, Feature.defaultOption);\r\n }\r\n });\r\n };\r\n ToolboxModel.type = 'toolbox';\r\n ToolboxModel.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n ToolboxModel.defaultOption = {\r\n show: true,\r\n z: 6,\r\n zlevel: 0,\r\n orient: 'horizontal',\r\n left: 'right',\r\n top: 'top',\r\n backgroundColor: 'transparent',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemSize: 15,\r\n itemGap: 8,\r\n showTitle: true,\r\n iconStyle: {\r\n borderColor: '#666',\r\n color: 'none'\r\n },\r\n emphasis: {\r\n iconStyle: {\r\n borderColor: '#3E98C5'\r\n }\r\n },\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return ToolboxModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ToolboxModel);\n\n var ToolboxView = (function (_super) {\r\n __extends(ToolboxView, _super);\r\n function ToolboxView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n if (!toolboxModel.get('show')) {\r\n return;\r\n }\r\n var itemSize = +toolboxModel.get('itemSize');\r\n var featureOpts = toolboxModel.get('feature') || {};\r\n var features = this._features || (this._features = {});\r\n var featureNames = [];\r\n each(featureOpts, function (opt, name) {\r\n featureNames.push(name);\r\n });\r\n (new DataDiffer(this._featureNames || [], featureNames))\r\n .add(processFeature)\r\n .update(processFeature)\r\n .remove(curry(processFeature, null))\r\n .execute();\r\n this._featureNames = featureNames;\r\n function processFeature(newIndex, oldIndex) {\r\n var featureName = featureNames[newIndex];\r\n var oldName = featureNames[oldIndex];\r\n var featureOpt = featureOpts[featureName];\r\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\r\n var feature;\r\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\r\n featureOpt.title = payload.newTitle;\r\n }\r\n if (featureName && !oldName) {\r\n if (isUserFeatureName(featureName)) {\r\n feature = {\r\n onclick: featureModel.option.onclick,\r\n featureName: featureName\r\n };\r\n }\r\n else {\r\n var Feature = getFeature(featureName);\r\n if (!Feature) {\r\n return;\r\n }\r\n feature = new Feature();\r\n }\r\n features[featureName] = feature;\r\n }\r\n else {\r\n feature = features[oldName];\r\n if (!feature) {\r\n return;\r\n }\r\n }\r\n feature.uid = getUID('toolbox-feature');\r\n feature.model = featureModel;\r\n feature.ecModel = ecModel;\r\n feature.api = api;\r\n if (feature instanceof ToolboxFeature) {\r\n if (!featureName && oldName) {\r\n feature.dispose && feature.dispose(ecModel, api);\r\n return;\r\n }\r\n if (!featureModel.get('show') || feature.unusable) {\r\n feature.remove && feature.remove(ecModel, api);\r\n return;\r\n }\r\n }\r\n createIconPaths(featureModel, feature, featureName);\r\n featureModel.setIconStatus = function (iconName, status) {\r\n var option = this.option;\r\n var iconPaths = this.iconPaths;\r\n option.iconStatus = option.iconStatus || {};\r\n option.iconStatus[iconName] = status;\r\n if (iconPaths[iconName]) {\r\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\r\n }\r\n };\r\n if (feature instanceof ToolboxFeature) {\r\n if (feature.render) {\r\n feature.render(featureModel, ecModel, api, payload);\r\n }\r\n }\r\n }\r\n function createIconPaths(featureModel, feature, featureName) {\r\n var iconStyleModel = featureModel.getModel('iconStyle');\r\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\r\n var icons = (feature instanceof ToolboxFeature && feature.getIcons)\r\n ? feature.getIcons() : featureModel.get('icon');\r\n var titles = featureModel.get('title') || {};\r\n var iconsMap;\r\n var titlesMap;\r\n if (typeof icons === 'string') {\r\n iconsMap = {};\r\n iconsMap[featureName] = icons;\r\n }\r\n else {\r\n iconsMap = icons;\r\n }\r\n if (typeof titles === 'string') {\r\n titlesMap = {};\r\n titlesMap[featureName] = titles;\r\n }\r\n else {\r\n titlesMap = titles;\r\n }\r\n var iconPaths = featureModel.iconPaths = {};\r\n each(iconsMap, function (iconStr, iconName) {\r\n var path = createIcon(iconStr, {}, {\r\n x: -itemSize / 2,\r\n y: -itemSize / 2,\r\n width: itemSize,\r\n height: itemSize\r\n });\r\n path.setStyle(iconStyleModel.getItemStyle());\r\n var pathEmphasisState = path.ensureState('emphasis');\r\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\r\n var textContent = new ZRText({\r\n style: {\r\n text: titlesMap[iconName],\r\n align: iconStyleEmphasisModel.get('textAlign'),\r\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\r\n padding: iconStyleEmphasisModel.get('textPadding'),\r\n fill: null\r\n },\r\n ignore: true\r\n });\r\n path.setTextContent(textContent);\r\n var tooltipModel = toolboxModel.getModel('tooltip');\r\n if (tooltipModel && tooltipModel.get('show')) {\r\n path.tooltip = extend({\r\n content: titlesMap[iconName],\r\n formatter: tooltipModel.get('formatter', true)\r\n || function () {\r\n return titlesMap[iconName];\r\n },\r\n formatterParams: {\r\n componentType: 'toolbox',\r\n name: iconName,\r\n title: titlesMap[iconName],\r\n $vars: ['name', 'title']\r\n },\r\n position: tooltipModel.get('position', true) || 'bottom'\r\n }, tooltipModel.option);\r\n }\r\n path.__title = titlesMap[iconName];\r\n path.on('mouseover', function () {\r\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\r\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical'\r\n ? (toolboxModel.get('right') == null ? 'right' : 'left')\r\n : (toolboxModel.get('bottom') == null ? 'bottom' : 'top');\r\n textContent.setStyle({\r\n fill: (iconStyleEmphasisModel.get('textFill')\r\n || hoverStyle.fill || hoverStyle.stroke || '#000'),\r\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\r\n });\r\n path.setTextConfig({\r\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\r\n });\r\n textContent.ignore = !toolboxModel.get('showTitle');\r\n enterEmphasis(this);\r\n })\r\n .on('mouseout', function () {\r\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\r\n leaveEmphasis(this);\r\n }\r\n textContent.hide();\r\n });\r\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\r\n group.add(path);\r\n path.on('click', bind(feature.onclick, feature, ecModel, api, iconName));\r\n iconPaths[iconName] = path;\r\n });\r\n }\r\n layout$2(group, toolboxModel, api);\r\n group.add(makeBackground(group.getBoundingRect(), toolboxModel));\r\n group.eachChild(function (icon) {\r\n var titleText = icon.__title;\r\n var emphasisState = icon.ensureState('emphasis');\r\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\r\n var textContent = icon.getTextContent();\r\n var emphasisTextState = textContent && textContent.states.emphasis;\r\n if (emphasisTextState && !isFunction(emphasisTextState) && titleText) {\r\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\r\n var rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\r\n var offsetX = icon.x + group.x;\r\n var offsetY = icon.y + group.y + itemSize;\r\n var needPutOnTop = false;\r\n if (offsetY + rect.height > api.getHeight()) {\r\n emphasisTextConfig.position = 'top';\r\n needPutOnTop = true;\r\n }\r\n var topOffset = needPutOnTop ? (-5 - rect.height) : (itemSize + 8);\r\n if (offsetX + rect.width / 2 > api.getWidth()) {\r\n emphasisTextConfig.position = ['100%', topOffset];\r\n emphasisTextStyle.align = 'right';\r\n }\r\n else if (offsetX - rect.width / 2 < 0) {\r\n emphasisTextConfig.position = [0, topOffset];\r\n emphasisTextStyle.align = 'left';\r\n }\r\n }\r\n });\r\n };\r\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\r\n });\r\n };\r\n ToolboxView.prototype.remove = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.remove && feature.remove(ecModel, api);\r\n });\r\n this.group.removeAll();\r\n };\r\n ToolboxView.prototype.dispose = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.dispose && feature.dispose(ecModel, api);\r\n });\r\n };\r\n ToolboxView.type = 'toolbox';\r\n return ToolboxView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ToolboxView);\r\n function isUserFeatureName(featureName) {\r\n return featureName.indexOf('my') === 0;\r\n }\n\n var SaveAsImage = (function (_super) {\r\n __extends(SaveAsImage, _super);\r\n function SaveAsImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SaveAsImage.prototype.onclick = function (ecModel, api) {\r\n var model = this.model;\r\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\r\n var isSvg = api.getZr().painter.getType() === 'svg';\r\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\r\n var url = api.getConnectedDataURL({\r\n type: type,\r\n backgroundColor: model.get('backgroundColor', true)\r\n || ecModel.get('backgroundColor') || '#fff',\r\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\r\n excludeComponents: model.get('excludeComponents'),\r\n pixelRatio: model.get('pixelRatio')\r\n });\r\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\r\n var $a = document.createElement('a');\r\n $a.download = title + '.' + type;\r\n $a.target = '_blank';\r\n $a.href = url;\r\n var evt = new MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n $a.dispatchEvent(evt);\r\n }\r\n else {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n var bstr = atob(url.split(',')[1]);\r\n var n = bstr.length;\r\n var u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var blob = new Blob([u8arr]);\r\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\r\n }\r\n else {\r\n var lang = model.get('lang');\r\n var html = ''\r\n + ''\r\n + ''\r\n + '';\r\n var tab = window.open();\r\n tab.document.write(html);\r\n }\r\n }\r\n };\r\n SaveAsImage.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\r\n title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\r\n type: 'png',\r\n connectedBackgroundColor: '#fff',\r\n name: '',\r\n excludeComponents: ['toolbox'],\r\n pixelRatio: 1,\r\n lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\r\n };\r\n return defaultOption;\r\n };\r\n return SaveAsImage;\r\n }(ToolboxFeature));\r\n SaveAsImage.prototype.unusable = !env.canvasSupported;\r\n registerFeature('saveAsImage', SaveAsImage);\n\n var INNER_STACK_KEYWORD = '__ec_magicType_stack__';\r\n var radioTypes = [\r\n ['line', 'bar'],\r\n ['stack']\r\n ];\r\n var MagicType = (function (_super) {\r\n __extends(MagicType, _super);\r\n function MagicType() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MagicType.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon');\r\n var icons = {};\r\n each(model.get('type'), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n MagicType.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: [],\r\n icon: {\r\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\r\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\r\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\r\n option: {},\r\n seriesIndex: {}\r\n };\r\n return defaultOption;\r\n };\r\n MagicType.prototype.onclick = function (ecModel, api, type) {\r\n var model = this.model;\r\n var seriesIndex = model.get(['seriesIndex', type]);\r\n if (!seriesOptGenreator[type]) {\r\n return;\r\n }\r\n var newOption = {\r\n series: []\r\n };\r\n var generateNewSeriesTypes = function (seriesModel) {\r\n var seriesType = seriesModel.subType;\r\n var seriesId = seriesModel.id;\r\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\r\n if (newSeriesOpt) {\r\n defaults(newSeriesOpt, seriesModel.option);\r\n newOption.series.push(newSeriesOpt);\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (categoryAxis) {\r\n var axisDim = categoryAxis.dim;\r\n var axisType = axisDim + 'Axis';\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n var axisIndex = axisModel.componentIndex;\r\n newOption[axisType] = newOption[axisType] || [];\r\n for (var i = 0; i <= axisIndex; i++) {\r\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\r\n }\r\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\r\n }\r\n }\r\n };\r\n each(radioTypes, function (radio) {\r\n if (indexOf(radio, type) >= 0) {\r\n each(radio, function (item) {\r\n model.setIconStatus(item, 'normal');\r\n });\r\n }\r\n });\r\n model.setIconStatus(type, 'emphasis');\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n query: seriesIndex == null ? null : {\r\n seriesIndex: seriesIndex\r\n }\r\n }, generateNewSeriesTypes);\r\n var newTitle;\r\n if (type === 'stack') {\r\n var seriesOptions = newOption.series;\r\n var tiledLang = ecModel.getLocale(['toolbox', 'magicType', 'title', 'tiled']);\r\n var titleLang = ecModel.getLocale(['toolbox', 'magicType', 'title']);\r\n var isStack = seriesOptions && seriesOptions[0]\r\n && seriesOptions[0].stack === INNER_STACK_KEYWORD;\r\n newTitle = isStack\r\n ? merge({ stack: tiledLang }, titleLang)\r\n : clone(titleLang);\r\n }\r\n api.dispatchAction({\r\n type: 'changeMagicType',\r\n currentType: type,\r\n newOption: newOption,\r\n newTitle: newTitle,\r\n featureName: 'magicType'\r\n });\r\n };\r\n return MagicType;\r\n }(ToolboxFeature));\r\n var seriesOptGenreator = {\r\n 'line': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'bar') {\r\n return merge({\r\n id: seriesId,\r\n type: 'line',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'line']) || {}, true);\r\n }\r\n },\r\n 'bar': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'line') {\r\n return merge({\r\n id: seriesId,\r\n type: 'bar',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'bar']) || {}, true);\r\n }\r\n },\r\n 'stack': function (seriesType, seriesId, seriesModel, model) {\r\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\r\n if (seriesType === 'line' || seriesType === 'bar') {\r\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\r\n return merge({\r\n id: seriesId,\r\n stack: isStack ? '' : INNER_STACK_KEYWORD\r\n }, model.get(['option', 'stack']) || {}, true);\r\n }\r\n }\r\n };\r\n registerAction({\r\n type: 'changeMagicType',\r\n event: 'magicTypeChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n ecModel.mergeOption(payload.newOption);\r\n });\r\n registerFeature('magicType', MagicType);\n\n var BLOCK_SPLITER = new Array(60).join('-');\r\n var ITEM_SPLITER = '\\t';\r\n function groupSeries(ecModel) {\r\n var seriesGroupByCategoryAxis = {};\r\n var otherSeries = [];\r\n var meta = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n if (baseAxis.type === 'category') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n if (!seriesGroupByCategoryAxis[key]) {\r\n seriesGroupByCategoryAxis[key] = {\r\n categoryAxis: baseAxis,\r\n valueAxis: coordSys.getOtherAxis(baseAxis),\r\n series: []\r\n };\r\n meta.push({\r\n axisDim: baseAxis.dim,\r\n axisIndex: baseAxis.index\r\n });\r\n }\r\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n });\r\n return {\r\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\r\n other: otherSeries,\r\n meta: meta\r\n };\r\n }\r\n function assembleSeriesWithCategoryAxis(groups) {\r\n var tables = [];\r\n each(groups, function (group, key) {\r\n var categoryAxis = group.categoryAxis;\r\n var valueAxis = group.valueAxis;\r\n var valueAxisDim = valueAxis.dim;\r\n var headers = [' '].concat(map(group.series, function (series) {\r\n return series.name;\r\n }));\r\n var columns = [categoryAxis.model.getCategories()];\r\n each(group.series, function (series) {\r\n columns.push(series.getRawData().mapArray(valueAxisDim, function (val) {\r\n return val;\r\n }));\r\n });\r\n var lines = [headers.join(ITEM_SPLITER)];\r\n for (var i = 0; i < columns[0].length; i++) {\r\n var items = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n items.push(columns[j][i]);\r\n }\r\n lines.push(items.join(ITEM_SPLITER));\r\n }\r\n tables.push(lines.join('\\n'));\r\n });\r\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function assembleOtherSeries(series) {\r\n return map(series, function (series) {\r\n var data = series.getRawData();\r\n var lines = [series.name];\r\n var vals = [];\r\n data.each(data.dimensions, function () {\r\n var argLen = arguments.length;\r\n var dataIndex = arguments[argLen - 1];\r\n var name = data.getName(dataIndex);\r\n for (var i = 0; i < argLen - 1; i++) {\r\n vals[i] = arguments[i];\r\n }\r\n lines.push((name ? (name + ITEM_SPLITER) : '') + vals.join(ITEM_SPLITER));\r\n });\r\n return lines.join('\\n');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function getContentFromModel(ecModel) {\r\n var result = groupSeries(ecModel);\r\n return {\r\n value: filter([\r\n assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis),\r\n assembleOtherSeries(result.other)\r\n ], function (str) {\r\n return !!str.replace(/[\\n\\t\\s]/g, '');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\r\n meta: result.meta\r\n };\r\n }\r\n function trim$1(str) {\r\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n }\r\n function isTSVFormat(block) {\r\n var firstLine = block.slice(0, block.indexOf('\\n'));\r\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\r\n return true;\r\n }\r\n }\r\n var itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\r\n function parseTSVContents(tsv) {\r\n var tsvLines = tsv.split(/\\n+/g);\r\n var headers = trim$1(tsvLines.shift()).split(itemSplitRegex);\r\n var categories = [];\r\n var series = map(headers, function (header) {\r\n return {\r\n name: header,\r\n data: []\r\n };\r\n });\r\n for (var i = 0; i < tsvLines.length; i++) {\r\n var items = trim$1(tsvLines[i]).split(itemSplitRegex);\r\n categories.push(items.shift());\r\n for (var j = 0; j < items.length; j++) {\r\n series[j] && (series[j].data[i] = items[j]);\r\n }\r\n }\r\n return {\r\n series: series,\r\n categories: categories\r\n };\r\n }\r\n function parseListContents(str) {\r\n var lines = str.split(/\\n+/g);\r\n var seriesName = trim$1(lines.shift());\r\n var data = [];\r\n for (var i = 0; i < lines.length; i++) {\r\n var items = trim$1(lines[i]).split(itemSplitRegex);\r\n var name_1 = '';\r\n var value = void 0;\r\n var hasName = false;\r\n if (isNaN(items[0])) {\r\n hasName = true;\r\n name_1 = items[0];\r\n items = items.slice(1);\r\n data[i] = {\r\n name: name_1,\r\n value: []\r\n };\r\n value = data[i].value;\r\n }\r\n else {\r\n value = data[i] = [];\r\n }\r\n for (var j = 0; j < items.length; j++) {\r\n value.push(+items[j]);\r\n }\r\n if (value.length === 1) {\r\n hasName ? (data[i].value = value[0]) : (data[i] = value[0]);\r\n }\r\n }\r\n return {\r\n name: seriesName,\r\n data: data\r\n };\r\n }\r\n function parseContents(str, blockMetaList) {\r\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\r\n var newOption = {\r\n series: []\r\n };\r\n each(blocks, function (block, idx) {\r\n if (isTSVFormat(block)) {\r\n var result = parseTSVContents(block);\r\n var blockMeta = blockMetaList[idx];\r\n var axisKey = blockMeta.axisDim + 'Axis';\r\n if (blockMeta) {\r\n newOption[axisKey] = newOption[axisKey] || [];\r\n newOption[axisKey][blockMeta.axisIndex] = {\r\n data: result.categories\r\n };\r\n newOption.series = newOption.series.concat(result.series);\r\n }\r\n }\r\n else {\r\n var result = parseListContents(block);\r\n newOption.series.push(result);\r\n }\r\n });\r\n return newOption;\r\n }\r\n var DataView = (function (_super) {\r\n __extends(DataView, _super);\r\n function DataView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataView.prototype.onclick = function (ecModel, api) {\r\n var container = api.getDom();\r\n var model = this.model;\r\n if (this._dom) {\r\n container.removeChild(this._dom);\r\n }\r\n var root = document.createElement('div');\r\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\r\n root.style.backgroundColor = model.get('backgroundColor') || '#fff';\r\n var header = document.createElement('h4');\r\n var lang = model.get('lang') || [];\r\n header.innerHTML = lang[0] || model.get('title');\r\n header.style.cssText = 'margin: 10px 20px;';\r\n header.style.color = model.get('textColor');\r\n var viewMain = document.createElement('div');\r\n var textarea = document.createElement('textarea');\r\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\r\n var optionToContent = model.get('optionToContent');\r\n var contentToOption = model.get('contentToOption');\r\n var result = getContentFromModel(ecModel);\r\n if (typeof optionToContent === 'function') {\r\n var htmlOrDom = optionToContent(api.getOption());\r\n if (typeof htmlOrDom === 'string') {\r\n viewMain.innerHTML = htmlOrDom;\r\n }\r\n else if (isDom(htmlOrDom)) {\r\n viewMain.appendChild(htmlOrDom);\r\n }\r\n }\r\n else {\r\n viewMain.appendChild(textarea);\r\n textarea.readOnly = model.get('readOnly');\r\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\r\n textarea.style.color = model.get('textColor');\r\n textarea.style.borderColor = model.get('textareaBorderColor');\r\n textarea.style.backgroundColor = model.get('textareaColor');\r\n textarea.value = result.value;\r\n }\r\n var blockMetaList = result.meta;\r\n var buttonContainer = document.createElement('div');\r\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\r\n var buttonStyle = 'float:right;margin-right:20px;border:none;'\r\n + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\r\n var closeButton = document.createElement('div');\r\n var refreshButton = document.createElement('div');\r\n buttonStyle += ';background-color:' + model.get('buttonColor');\r\n buttonStyle += ';color:' + model.get('buttonTextColor');\r\n var self = this;\r\n function close() {\r\n container.removeChild(root);\r\n self._dom = null;\r\n }\r\n addEventListener(closeButton, 'click', close);\r\n addEventListener(refreshButton, 'click', function () {\r\n var newOption;\r\n try {\r\n if (typeof contentToOption === 'function') {\r\n newOption = contentToOption(viewMain, api.getOption());\r\n }\r\n else {\r\n newOption = parseContents(textarea.value, blockMetaList);\r\n }\r\n }\r\n catch (e) {\r\n close();\r\n throw new Error('Data view format error ' + e);\r\n }\r\n if (newOption) {\r\n api.dispatchAction({\r\n type: 'changeDataView',\r\n newOption: newOption\r\n });\r\n }\r\n close();\r\n });\r\n closeButton.innerHTML = lang[1];\r\n refreshButton.innerHTML = lang[2];\r\n refreshButton.style.cssText = buttonStyle;\r\n closeButton.style.cssText = buttonStyle;\r\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\r\n buttonContainer.appendChild(closeButton);\r\n root.appendChild(header);\r\n root.appendChild(viewMain);\r\n root.appendChild(buttonContainer);\r\n viewMain.style.height = (container.clientHeight - 80) + 'px';\r\n container.appendChild(root);\r\n this._dom = root;\r\n };\r\n DataView.prototype.remove = function (ecModel, api) {\r\n this._dom && api.getDom().removeChild(this._dom);\r\n };\r\n DataView.prototype.dispose = function (ecModel, api) {\r\n this.remove(ecModel, api);\r\n };\r\n DataView.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n readOnly: false,\r\n optionToContent: null,\r\n contentToOption: null,\r\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\r\n title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\r\n lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\r\n backgroundColor: '#fff',\r\n textColor: '#000',\r\n textareaColor: '#fff',\r\n textareaBorderColor: '#333',\r\n buttonColor: '#c23531',\r\n buttonTextColor: '#fff'\r\n };\r\n return defaultOption;\r\n };\r\n return DataView;\r\n }(ToolboxFeature));\r\n function tryMergeDataOption(newData, originalData) {\r\n return map(newData, function (newVal, idx) {\r\n var original = originalData && originalData[idx];\r\n if (isObject(original) && !isArray(original)) {\r\n if (isObject(newVal) && !isArray(newVal)) {\r\n newVal = newVal.value;\r\n }\r\n return defaults({\r\n value: newVal\r\n }, original);\r\n }\r\n else {\r\n return newVal;\r\n }\r\n });\r\n }\r\n registerFeature('dataView', DataView);\r\n registerAction({\r\n type: 'changeDataView',\r\n event: 'dataViewChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n var newSeriesOptList = [];\r\n each(payload.newOption.series, function (seriesOpt) {\r\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\r\n if (!seriesModel) {\r\n newSeriesOptList.push(extend({\r\n type: 'scatter'\r\n }, seriesOpt));\r\n }\r\n else {\r\n var originalData = seriesModel.get('data');\r\n newSeriesOptList.push({\r\n name: seriesOpt.name,\r\n data: tryMergeDataOption(seriesOpt.data, originalData)\r\n });\r\n }\r\n });\r\n ecModel.mergeOption(defaults({\r\n series: newSeriesOptList\r\n }, payload.newOption));\r\n });\n\n var BRUSH_PANEL_GLOBAL = true;\r\n var mathMin$5 = Math.min;\r\n var mathMax$5 = Math.max;\r\n var mathPow$2 = Math.pow;\r\n var COVER_Z = 10000;\r\n var UNSELECT_THRESHOLD = 6;\r\n var MIN_RESIZE_LINE_WIDTH = 6;\r\n var MUTEX_RESOURCE_KEY = 'globalPan';\r\n var DIRECTION_MAP = {\r\n w: [0, 0],\r\n e: [0, 1],\r\n n: [1, 0],\r\n s: [1, 1]\r\n };\r\n var CURSOR_MAP = {\r\n w: 'ew',\r\n e: 'ew',\r\n n: 'ns',\r\n s: 'ns',\r\n ne: 'nesw',\r\n sw: 'nesw',\r\n nw: 'nwse',\r\n se: 'nwse'\r\n };\r\n var DEFAULT_BRUSH_OPT = {\r\n brushStyle: {\r\n lineWidth: 2,\r\n stroke: 'rgba(0,0,0,0.3)',\r\n fill: 'rgba(0,0,0,0.1)'\r\n },\r\n transformable: true,\r\n brushMode: 'single',\r\n removeOnClick: false\r\n };\r\n var baseUID = 0;\r\n var BrushController = (function (_super) {\r\n __extends(BrushController, _super);\r\n function BrushController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._track = [];\r\n _this._covers = [];\r\n _this._handlers = {};\r\n if (__DEV__) {\r\n assert(zr);\r\n }\r\n _this._zr = zr;\r\n _this.group = new Group();\r\n _this._uid = 'brushController_' + baseUID++;\r\n each(pointerHandlers, function (handler, eventName) {\r\n this._handlers[eventName] = bind(handler, this);\r\n }, _this);\r\n return _this;\r\n }\r\n BrushController.prototype.enableBrush = function (brushOption) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n this._brushType && this._doDisableBrush();\r\n brushOption.brushType && this._doEnableBrush(brushOption);\r\n return this;\r\n };\r\n BrushController.prototype._doEnableBrush = function (brushOption) {\r\n var zr = this._zr;\r\n if (!this._enableGlobalPan) {\r\n take(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n }\r\n each(this._handlers, function (handler, eventName) {\r\n zr.on(eventName, handler);\r\n });\r\n this._brushType = brushOption.brushType;\r\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\r\n };\r\n BrushController.prototype._doDisableBrush = function () {\r\n var zr = this._zr;\r\n release(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n each(this._handlers, function (handler, eventName) {\r\n zr.off(eventName, handler);\r\n });\r\n this._brushType = this._brushOption = null;\r\n };\r\n BrushController.prototype.setPanels = function (panelOpts) {\r\n if (panelOpts && panelOpts.length) {\r\n var panels_1 = this._panels = {};\r\n each(panelOpts, function (panelOpts) {\r\n panels_1[panelOpts.panelId] = clone(panelOpts);\r\n });\r\n }\r\n else {\r\n this._panels = null;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.mount = function (opt) {\r\n opt = opt || {};\r\n if (__DEV__) {\r\n this._mounted = true;\r\n }\r\n this._enableGlobalPan = opt.enableGlobalPan;\r\n var thisGroup = this.group;\r\n this._zr.add(thisGroup);\r\n thisGroup.attr({\r\n x: opt.x || 0,\r\n y: opt.y || 0,\r\n rotation: opt.rotation || 0,\r\n scaleX: opt.scaleX || 1,\r\n scaleY: opt.scaleY || 1\r\n });\r\n this._transform = thisGroup.getLocalTransform();\r\n return this;\r\n };\r\n BrushController.prototype.updateCovers = function (coverConfigList) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n coverConfigList = map(coverConfigList, function (coverConfig) {\r\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\r\n });\r\n var tmpIdPrefix = '\\0-brush-index-';\r\n var oldCovers = this._covers;\r\n var newCovers = this._covers = [];\r\n var controller = this;\r\n var creatingCover = this._creatingCover;\r\n (new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey))\r\n .add(addOrUpdate)\r\n .update(addOrUpdate)\r\n .remove(remove)\r\n .execute();\r\n return this;\r\n function getKey(brushOption, index) {\r\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index)\r\n + '-' + brushOption.brushType;\r\n }\r\n function oldGetKey(cover, index) {\r\n return getKey(cover.__brushOption, index);\r\n }\r\n function addOrUpdate(newIndex, oldIndex) {\r\n var newBrushInternal = coverConfigList[newIndex];\r\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\r\n newCovers[newIndex] = oldCovers[oldIndex];\r\n }\r\n else {\r\n var cover = newCovers[newIndex] = oldIndex != null\r\n ? (oldCovers[oldIndex].__brushOption = newBrushInternal,\r\n oldCovers[oldIndex])\r\n : endCreating(controller, createCover(controller, newBrushInternal));\r\n updateCoverAfterCreation(controller, cover);\r\n }\r\n }\r\n function remove(oldIndex) {\r\n if (oldCovers[oldIndex] !== creatingCover) {\r\n controller.group.remove(oldCovers[oldIndex]);\r\n }\r\n }\r\n };\r\n BrushController.prototype.unmount = function () {\r\n if (__DEV__) {\r\n if (!this._mounted) {\r\n return;\r\n }\r\n }\r\n this.enableBrush(false);\r\n clearCovers(this);\r\n this._zr.remove(this.group);\r\n if (__DEV__) {\r\n this._mounted = false;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.dispose = function () {\r\n this.unmount();\r\n this.off();\r\n };\r\n return BrushController;\r\n }(Eventful));\r\n function createCover(controller, brushOption) {\r\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\r\n cover.__brushOption = brushOption;\r\n updateZ(cover, brushOption);\r\n controller.group.add(cover);\r\n return cover;\r\n }\r\n function endCreating(controller, creatingCover) {\r\n var coverRenderer = getCoverRenderer(creatingCover);\r\n if (coverRenderer.endCreating) {\r\n coverRenderer.endCreating(controller, creatingCover);\r\n updateZ(creatingCover, creatingCover.__brushOption);\r\n }\r\n return creatingCover;\r\n }\r\n function updateCoverShape(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\r\n }\r\n function updateZ(cover, brushOption) {\r\n var z = brushOption.z;\r\n z == null && (z = COVER_Z);\r\n cover.traverse(function (el) {\r\n el.z = z;\r\n el.z2 = z;\r\n });\r\n }\r\n function updateCoverAfterCreation(controller, cover) {\r\n getCoverRenderer(cover).updateCommon(controller, cover);\r\n updateCoverShape(controller, cover);\r\n }\r\n function getCoverRenderer(cover) {\r\n return coverRenderers[cover.__brushOption.brushType];\r\n }\r\n function getPanelByPoint(controller, e, localCursorPoint) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panel;\r\n var transform = controller._transform;\r\n each(panels, function (pn) {\r\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\r\n });\r\n return panel;\r\n }\r\n function getPanelByCover(controller, cover) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panelId = cover.__brushOption.panelId;\r\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\r\n }\r\n function clearCovers(controller) {\r\n var covers = controller._covers;\r\n var originalLength = covers.length;\r\n each(covers, function (cover) {\r\n controller.group.remove(cover);\r\n }, controller);\r\n covers.length = 0;\r\n return !!originalLength;\r\n }\r\n function trigger$1(controller, opt) {\r\n var areas = map(controller._covers, function (cover) {\r\n var brushOption = cover.__brushOption;\r\n var range = clone(brushOption.range);\r\n return {\r\n brushType: brushOption.brushType,\r\n panelId: brushOption.panelId,\r\n range: range\r\n };\r\n });\r\n controller.trigger('brush', {\r\n areas: areas,\r\n isEnd: !!opt.isEnd,\r\n removeOnClick: !!opt.removeOnClick\r\n });\r\n }\r\n function shouldShowCover(controller) {\r\n var track = controller._track;\r\n if (!track.length) {\r\n return false;\r\n }\r\n var p2 = track[track.length - 1];\r\n var p1 = track[0];\r\n var dx = p2[0] - p1[0];\r\n var dy = p2[1] - p1[1];\r\n var dist = mathPow$2(dx * dx + dy * dy, 0.5);\r\n return dist > UNSELECT_THRESHOLD;\r\n }\r\n function getTrackEnds(track) {\r\n var tail = track.length - 1;\r\n tail < 0 && (tail = 0);\r\n return [track[0], track[tail]];\r\n }\r\n function createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\r\n var cover = new Group();\r\n cover.add(new Rect({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true,\r\n draggable: true,\r\n cursor: 'move',\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n each(edgeNameSequences, function (nameSequence) {\r\n cover.add(new Rect({\r\n name: nameSequence.join(''),\r\n style: { opacity: 0 },\r\n draggable: true,\r\n silent: true,\r\n invisible: true,\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n });\r\n return cover;\r\n }\r\n function updateBaseRect(controller, cover, localRange, brushOption) {\r\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\r\n var handleSize = mathMax$5(lineWidth, MIN_RESIZE_LINE_WIDTH);\r\n var x = localRange[0][0];\r\n var y = localRange[1][0];\r\n var xa = x - lineWidth / 2;\r\n var ya = y - lineWidth / 2;\r\n var x2 = localRange[0][1];\r\n var y2 = localRange[1][1];\r\n var x2a = x2 - handleSize + lineWidth / 2;\r\n var y2a = y2 - handleSize + lineWidth / 2;\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var widtha = width + lineWidth;\r\n var heighta = height + lineWidth;\r\n updateRectShape(controller, cover, 'main', x, y, width, height);\r\n if (brushOption.transformable) {\r\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\r\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\r\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\r\n }\r\n }\r\n function updateCommon(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n var transformable = brushOption.transformable;\r\n var mainEl = cover.childAt(0);\r\n mainEl.useStyle(makeStyle(brushOption));\r\n mainEl.attr({\r\n silent: !transformable,\r\n cursor: transformable ? 'move' : 'default'\r\n });\r\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\r\n var el = cover.childOfName(nameSequence.join(''));\r\n var globalDir = nameSequence.length === 1\r\n ? getGlobalDirection1(controller, nameSequence[0])\r\n : getGlobalDirection2(controller, nameSequence);\r\n el && el.attr({\r\n silent: !transformable,\r\n invisible: !transformable,\r\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\r\n });\r\n });\r\n }\r\n function updateRectShape(controller, cover, name, x, y, w, h) {\r\n var el = cover.childOfName(name);\r\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\r\n }\r\n function makeStyle(brushOption) {\r\n return defaults({ strokeNoScale: true }, brushOption.brushStyle);\r\n }\r\n function formatRectRange(x, y, x2, y2) {\r\n var min = [mathMin$5(x, x2), mathMin$5(y, y2)];\r\n var max = [mathMax$5(x, x2), mathMax$5(y, y2)];\r\n return [\r\n [min[0], max[0]],\r\n [min[1], max[1]]\r\n ];\r\n }\r\n function getTransform$1(controller) {\r\n return getTransform(controller.group);\r\n }\r\n function getGlobalDirection1(controller, localDirName) {\r\n var map = { w: 'left', e: 'right', n: 'top', s: 'bottom' };\r\n var inverseMap = { left: 'w', right: 'e', top: 'n', bottom: 's' };\r\n var dir = transformDirection(map[localDirName], getTransform$1(controller));\r\n return inverseMap[dir];\r\n }\r\n function getGlobalDirection2(controller, localDirNameSeq) {\r\n var globalDir = [\r\n getGlobalDirection1(controller, localDirNameSeq[0]),\r\n getGlobalDirection1(controller, localDirNameSeq[1])\r\n ];\r\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\r\n return globalDir.join('');\r\n }\r\n function driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\r\n var brushOption = cover.__brushOption;\r\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(dirNameSequence, function (dirName) {\r\n var ind = DIRECTION_MAP[dirName];\r\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\r\n });\r\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function driftPolygon(controller, cover, dx, dy) {\r\n var range = cover.__brushOption.range;\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(range, function (point) {\r\n point[0] += localDelta[0];\r\n point[1] += localDelta[1];\r\n });\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function toLocalDelta(controller, dx, dy) {\r\n var thisGroup = controller.group;\r\n var localD = thisGroup.transformCoordToLocal(dx, dy);\r\n var localZero = thisGroup.transformCoordToLocal(0, 0);\r\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\r\n }\r\n function clipByPanel(controller, cover, data) {\r\n var panel = getPanelByCover(controller, cover);\r\n return (panel && panel !== BRUSH_PANEL_GLOBAL)\r\n ? panel.clipPath(data, controller._transform)\r\n : clone(data);\r\n }\r\n function pointsToRect(points) {\r\n var xmin = mathMin$5(points[0][0], points[1][0]);\r\n var ymin = mathMin$5(points[0][1], points[1][1]);\r\n var xmax = mathMax$5(points[0][0], points[1][0]);\r\n var ymax = mathMax$5(points[0][1], points[1][1]);\r\n return {\r\n x: xmin,\r\n y: ymin,\r\n width: xmax - xmin,\r\n height: ymax - ymin\r\n };\r\n }\r\n function resetCursor(controller, e, localCursorPoint) {\r\n if (!controller._brushType\r\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\r\n return;\r\n }\r\n var zr = controller._zr;\r\n var covers = controller._covers;\r\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\r\n if (!controller._dragging) {\r\n for (var i = 0; i < covers.length; i++) {\r\n var brushOption = covers[i].__brushOption;\r\n if (currPanel\r\n && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId)\r\n && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\r\n return;\r\n }\r\n }\r\n }\r\n currPanel && zr.setCursorStyle('crosshair');\r\n }\r\n function preventDefault(e) {\r\n var rawE = e.event;\r\n rawE.preventDefault && rawE.preventDefault();\r\n }\r\n function mainShapeContain(cover, x, y) {\r\n return cover.childOfName('main').contain(x, y);\r\n }\r\n function updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\r\n var creatingCover = controller._creatingCover;\r\n var panel = controller._creatingPanel;\r\n var thisBrushOption = controller._brushOption;\r\n var eventParams;\r\n controller._track.push(localCursorPoint.slice());\r\n if (shouldShowCover(controller) || creatingCover) {\r\n if (panel && !creatingCover) {\r\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\r\n var brushOption = clone(thisBrushOption);\r\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\r\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\r\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\r\n controller._covers.push(creatingCover);\r\n }\r\n if (creatingCover) {\r\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\r\n var coverBrushOption = creatingCover.__brushOption;\r\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\r\n if (isEnd) {\r\n endCreating(controller, creatingCover);\r\n coverRenderer.updateCommon(controller, creatingCover);\r\n }\r\n updateCoverShape(controller, creatingCover);\r\n eventParams = { isEnd: isEnd };\r\n }\r\n }\r\n else if (isEnd\r\n && thisBrushOption.brushMode === 'single'\r\n && thisBrushOption.removeOnClick) {\r\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\r\n eventParams = { isEnd: isEnd, removeOnClick: true };\r\n }\r\n }\r\n return eventParams;\r\n }\r\n function determineBrushType(brushType, panel) {\r\n if (brushType === 'auto') {\r\n if (__DEV__) {\r\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\r\n }\r\n return panel.defaultBrushType;\r\n }\r\n return brushType;\r\n }\r\n var pointerHandlers = {\r\n mousedown: function (e) {\r\n if (this._dragging) {\r\n handleDragEnd(this, e);\r\n }\r\n else if (!e.target || !e.target.draggable) {\r\n preventDefault(e);\r\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\r\n this._creatingCover = null;\r\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\r\n if (panel) {\r\n this._dragging = true;\r\n this._track = [localCursorPoint.slice()];\r\n }\r\n }\r\n },\r\n mousemove: function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\r\n resetCursor(this, e, localCursorPoint);\r\n if (this._dragging) {\r\n preventDefault(e);\r\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\r\n eventParams && trigger$1(this, eventParams);\r\n }\r\n },\r\n mouseup: function (e) {\r\n handleDragEnd(this, e);\r\n }\r\n };\r\n function handleDragEnd(controller, e) {\r\n if (controller._dragging) {\r\n preventDefault(e);\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\r\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\r\n controller._dragging = false;\r\n controller._track = [];\r\n controller._creatingCover = null;\r\n eventParams && trigger$1(controller, eventParams);\r\n }\r\n }\r\n function isOutsideZrArea(controller, x, y) {\r\n var zr = controller._zr;\r\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\r\n }\r\n var coverRenderers = {\r\n lineX: getLineRenderer(0),\r\n lineY: getLineRenderer(1),\r\n rect: {\r\n createCover: function (controller, brushOption) {\r\n function returnInput(range) {\r\n return range;\r\n }\r\n return createBaseRectCover({\r\n toRectRange: returnInput,\r\n fromRectRange: returnInput\r\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n updateBaseRect(controller, cover, localRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n },\r\n polygon: {\r\n createCover: function (controller, brushOption) {\r\n var cover = new Group();\r\n cover.add(new Polyline({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true\r\n }));\r\n return cover;\r\n },\r\n getCreatingRange: function (localTrack) {\r\n return localTrack;\r\n },\r\n endCreating: function (controller, cover) {\r\n cover.remove(cover.childAt(0));\r\n cover.add(new Polygon({\r\n name: 'main',\r\n draggable: true,\r\n drift: curry(driftPolygon, controller, cover),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n cover.childAt(0).setShape({\r\n points: clipByPanel(controller, cover, localRange)\r\n });\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n }\r\n };\r\n function getLineRenderer(xyIndex) {\r\n return {\r\n createCover: function (controller, brushOption) {\r\n return createBaseRectCover({\r\n toRectRange: function (range) {\r\n var rectRange = [range, [0, 100]];\r\n xyIndex && rectRange.reverse();\r\n return rectRange;\r\n },\r\n fromRectRange: function (rectRange) {\r\n return rectRange[xyIndex];\r\n }\r\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n var min = mathMin$5(ends[0][xyIndex], ends[1][xyIndex]);\r\n var max = mathMax$5(ends[0][xyIndex], ends[1][xyIndex]);\r\n return [min, max];\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n var otherExtent;\r\n var panel = getPanelByCover(controller, cover);\r\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\r\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\r\n }\r\n else {\r\n var zr = controller._zr;\r\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\r\n }\r\n var rectRange = [localRange, otherExtent];\r\n xyIndex && rectRange.reverse();\r\n updateBaseRect(controller, cover, rectRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n };\r\n }\n\n var IRRELEVANT_EXCLUDES = { 'axisPointer': 1, 'tooltip': 1, 'brush': 1 };\r\n function onIrrelevantElement(e, api, targetCoordSysModel) {\r\n var model = api.getComponentByElement(e.topTarget);\r\n var coordSys = model && model.coordinateSystem;\r\n return model\r\n && model !== targetCoordSysModel\r\n && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType)\r\n && (coordSys && coordSys.model !== targetCoordSysModel);\r\n }\n\n function makeRectPanelClipPath(rect) {\r\n rect = normalizeRect(rect);\r\n return function (localPoints) {\r\n return clipPointsByRect(localPoints, rect);\r\n };\r\n }\r\n function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\r\n rect = normalizeRect(rect);\r\n return function (xyIndex) {\r\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\r\n var brushWidth = idx ? rect.width : rect.height;\r\n var base = idx ? rect.x : rect.y;\r\n return [base, base + (brushWidth || 0)];\r\n };\r\n }\r\n function makeRectIsTargetByCursor(rect, api, targetModel) {\r\n var boundingRect = normalizeRect(rect);\r\n return function (e, localCursorPoint) {\r\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1])\r\n && !onIrrelevantElement(e, api, targetModel);\r\n };\r\n }\r\n function normalizeRect(rect) {\r\n return BoundingRect.create(rect);\r\n }\n\n var COORD_CONVERTS = ['dataToPoint', 'pointToData'];\r\n var INCLUDE_FINDER_MAIN_TYPES = [\r\n 'grid', 'xAxis', 'yAxis', 'geo', 'graph',\r\n 'polar', 'radiusAxis', 'angleAxis', 'bmap'\r\n ];\r\n var BrushTargetManager = (function () {\r\n function BrushTargetManager(finder, ecModel, opt) {\r\n var _this = this;\r\n this._targetInfoList = [];\r\n var foundCpts = parseFinder$1(ecModel, finder);\r\n each(targetInfoBuilders, function (builder, type) {\r\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\r\n builder(foundCpts, _this._targetInfoList);\r\n }\r\n });\r\n }\r\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\r\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n (area.coordRanges || (area.coordRanges = [])).push(coordRange);\r\n if (!area.coordRange) {\r\n area.coordRange = coordRange;\r\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\r\n area.__rangeOffset = {\r\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\r\n xyMinMax: result.xyMinMax\r\n };\r\n }\r\n });\r\n return areas;\r\n };\r\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (targetInfo && targetInfo !== true) {\r\n each(targetInfo.coordSyses, function (coordSys) {\r\n var result = coordConvert[area.brushType](1, coordSys, area.range);\r\n cb(area, result.values, coordSys, ecModel);\r\n });\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (__DEV__) {\r\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\r\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\r\n }\r\n area.range = area.range || [];\r\n if (targetInfo && targetInfo !== true) {\r\n area.panelId = targetInfo.panelId;\r\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\r\n var rangeOffset = area.__rangeOffset;\r\n area.range = rangeOffset\r\n ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax))\r\n : result.values;\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\r\n return map(this._targetInfoList, function (targetInfo) {\r\n var rect = targetInfo.getPanelRect();\r\n return {\r\n panelId: targetInfo.panelId,\r\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect)\r\n };\r\n });\r\n };\r\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n return targetInfo === true || (targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0);\r\n };\r\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\r\n var targetInfoList = this._targetInfoList;\r\n var foundCpts = parseFinder$1(ecModel, area);\r\n for (var i = 0; i < targetInfoList.length; i++) {\r\n var targetInfo = targetInfoList[i];\r\n var areaPanelId = area.panelId;\r\n if (areaPanelId) {\r\n if (targetInfo.panelId === areaPanelId) {\r\n return targetInfo;\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < targetInfoMatchers.length; j++) {\r\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\r\n return targetInfo;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return BrushTargetManager;\r\n }());\r\n function formatMinMax(minMax) {\r\n minMax[0] > minMax[1] && minMax.reverse();\r\n return minMax;\r\n }\r\n function parseFinder$1(ecModel, finder) {\r\n return parseFinder(ecModel, finder, { includeMainTypes: INCLUDE_FINDER_MAIN_TYPES });\r\n }\r\n var targetInfoBuilders = {\r\n grid: function (foundCpts, targetInfoList) {\r\n var xAxisModels = foundCpts.xAxisModels;\r\n var yAxisModels = foundCpts.yAxisModels;\r\n var gridModels = foundCpts.gridModels;\r\n var gridModelMap = createHashMap();\r\n var xAxesHas = {};\r\n var yAxesHas = {};\r\n if (!xAxisModels && !yAxisModels && !gridModels) {\r\n return;\r\n }\r\n each(xAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n });\r\n each(yAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n each(gridModels, function (gridModel) {\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n gridModelMap.each(function (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n var cartesians = [];\r\n each(grid.getCartesians(), function (cartesian, index) {\r\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0\r\n || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\r\n cartesians.push(cartesian);\r\n }\r\n });\r\n targetInfoList.push({\r\n panelId: 'grid--' + gridModel.id,\r\n gridModel: gridModel,\r\n coordSysModel: gridModel,\r\n coordSys: cartesians[0],\r\n coordSyses: cartesians,\r\n getPanelRect: panelRectBuilders.grid,\r\n xAxisDeclared: xAxesHas[gridModel.id],\r\n yAxisDeclared: yAxesHas[gridModel.id]\r\n });\r\n });\r\n },\r\n geo: function (foundCpts, targetInfoList) {\r\n each(foundCpts.geoModels, function (geoModel) {\r\n var coordSys = geoModel.coordinateSystem;\r\n targetInfoList.push({\r\n panelId: 'geo--' + geoModel.id,\r\n geoModel: geoModel,\r\n coordSysModel: geoModel,\r\n coordSys: coordSys,\r\n coordSyses: [coordSys],\r\n getPanelRect: panelRectBuilders.geo\r\n });\r\n });\r\n }\r\n };\r\n var targetInfoMatchers = [\r\n function (foundCpts, targetInfo) {\r\n var xAxisModel = foundCpts.xAxisModel;\r\n var yAxisModel = foundCpts.yAxisModel;\r\n var gridModel = foundCpts.gridModel;\r\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\r\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\r\n return gridModel && gridModel === targetInfo.gridModel;\r\n },\r\n function (foundCpts, targetInfo) {\r\n var geoModel = foundCpts.geoModel;\r\n return geoModel && geoModel === targetInfo.geoModel;\r\n }\r\n ];\r\n var panelRectBuilders = {\r\n grid: function () {\r\n return this.coordSys.master.getRect().clone();\r\n },\r\n geo: function () {\r\n var coordSys = this.coordSys;\r\n var rect = coordSys.getBoundingRect().clone();\r\n rect.applyTransform(getTransform(coordSys));\r\n return rect;\r\n }\r\n };\r\n var coordConvert = {\r\n lineX: curry(axisConvert, 0),\r\n lineY: curry(axisConvert, 1),\r\n rect: function (to, coordSys, rangeOrCoordRange) {\r\n var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\r\n var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\r\n var values = [\r\n formatMinMax([xminymin[0], xmaxymax[0]]),\r\n formatMinMax([xminymin[1], xmaxymax[1]])\r\n ];\r\n return { values: values, xyMinMax: values };\r\n },\r\n polygon: function (to, coordSys, rangeOrCoordRange) {\r\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var values = map(rangeOrCoordRange, function (item) {\r\n var p = coordSys[COORD_CONVERTS[to]](item);\r\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\r\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\r\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\r\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\r\n return p;\r\n });\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n };\r\n function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\r\n if (__DEV__) {\r\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\r\n }\r\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\r\n var values = formatMinMax(map([0, 1], function (i) {\r\n return to\r\n ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]))\r\n : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\r\n }));\r\n var xyMinMax = [];\r\n xyMinMax[axisNameIndex] = values;\r\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n var diffProcessor = {\r\n lineX: curry(axisDiffProcessor, 0),\r\n lineY: curry(axisDiffProcessor, 1),\r\n rect: function (values, refer, scales) {\r\n return [\r\n [values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]],\r\n [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]\r\n ];\r\n },\r\n polygon: function (values, refer, scales) {\r\n return map(values, function (item, idx) {\r\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\r\n });\r\n }\r\n };\r\n function axisDiffProcessor(axisNameIndex, values, refer, scales) {\r\n return [\r\n values[0] - scales[axisNameIndex] * refer[0],\r\n values[1] - scales[axisNameIndex] * refer[1]\r\n ];\r\n }\r\n function getScales(xyMinMaxCurr, xyMinMaxOrigin) {\r\n var sizeCurr = getSize(xyMinMaxCurr);\r\n var sizeOrigin = getSize(xyMinMaxOrigin);\r\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\r\n isNaN(scales[0]) && (scales[0] = 1);\r\n isNaN(scales[1]) && (scales[1] = 1);\r\n return scales;\r\n }\r\n function getSize(xyMinMax) {\r\n return xyMinMax\r\n ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]]\r\n : [NaN, NaN];\r\n }\n\n var each$9 = each;\r\n var inner$f = makeInner();\r\n function push(ecModel, newSnapshot) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n each$9(newSnapshot, function (batchItem, dataZoomId) {\r\n var i = storedSnapshots.length - 1;\r\n for (; i >= 0; i--) {\r\n var snapshot = storedSnapshots[i];\r\n if (snapshot[dataZoomId]) {\r\n break;\r\n }\r\n }\r\n if (i < 0) {\r\n var dataZoomModel = ecModel.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId })[0];\r\n if (dataZoomModel) {\r\n var percentRange = dataZoomModel.getPercentRange();\r\n storedSnapshots[0][dataZoomId] = {\r\n dataZoomId: dataZoomId,\r\n start: percentRange[0],\r\n end: percentRange[1]\r\n };\r\n }\r\n }\r\n });\r\n storedSnapshots.push(newSnapshot);\r\n }\r\n function pop(ecModel) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n var head = storedSnapshots[storedSnapshots.length - 1];\r\n storedSnapshots.length > 1 && storedSnapshots.pop();\r\n var snapshot = {};\r\n each$9(head, function (batchItem, dataZoomId) {\r\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\r\n batchItem = storedSnapshots[i][dataZoomId];\r\n if (batchItem) {\r\n snapshot[dataZoomId] = batchItem;\r\n break;\r\n }\r\n }\r\n });\r\n return snapshot;\r\n }\r\n function clear$1(ecModel) {\r\n inner$f(ecModel).snapshots = null;\r\n }\r\n function count(ecModel) {\r\n return getStoreSnapshots(ecModel).length;\r\n }\r\n function getStoreSnapshots(ecModel) {\r\n var store = inner$f(ecModel);\r\n if (!store.snapshots) {\r\n store.snapshots = [{}];\r\n }\r\n return store.snapshots;\r\n }\n\n var SelectDataZoomModel = (function (_super) {\r\n __extends(SelectDataZoomModel, _super);\r\n function SelectDataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomModel.type;\r\n return _this;\r\n }\r\n SelectDataZoomModel.type = 'dataZoom.select';\r\n return SelectDataZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SelectDataZoomModel);\n\n var SelectDataZoomView = (function (_super) {\r\n __extends(SelectDataZoomView, _super);\r\n function SelectDataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomView.type;\r\n return _this;\r\n }\r\n SelectDataZoomView.type = 'dataZoom.select';\r\n return SelectDataZoomView;\r\n }(DataZoomView));\r\n ComponentView.registerClass(SelectDataZoomView);\n\n var each$a = each;\r\n var DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\r\n var DataZoomFeature = (function (_super) {\r\n __extends(DataZoomFeature, _super);\r\n function DataZoomFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\r\n if (!this.brushController) {\r\n this.brushController = new BrushController(api.getZr());\r\n this.brushController.on('brush', bind(this._onBrush, this))\r\n .mount();\r\n }\r\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\r\n updateBackBtnStatus(featureModel, ecModel);\r\n };\r\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\r\n handlers[type].call(this);\r\n };\r\n DataZoomFeature.prototype.remove = function (ecModel, api) {\r\n this.brushController.unmount();\r\n };\r\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\r\n this.brushController.dispose();\r\n };\r\n DataZoomFeature.prototype._onBrush = function (eventParam) {\r\n var areas = eventParam.areas;\r\n if (!eventParam.isEnd || !areas.length) {\r\n return;\r\n }\r\n var snapshot = {};\r\n var ecModel = this.ecModel;\r\n this.brushController.updateCovers([]);\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, { include: ['grid'] });\r\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n if (coordSys.type !== 'cartesian2d') {\r\n return;\r\n }\r\n var brushType = area.brushType;\r\n if (brushType === 'rect') {\r\n setBatch('x', coordSys, coordRange[0]);\r\n setBatch('y', coordSys, coordRange[1]);\r\n }\r\n else {\r\n setBatch({ lineX: 'x', lineY: 'y' }[brushType], coordSys, coordRange);\r\n }\r\n });\r\n push(ecModel, snapshot);\r\n this._dispatchZoomAction(snapshot);\r\n function setBatch(dimName, coordSys, minMax) {\r\n var axis = coordSys.getAxis(dimName);\r\n var axisModel = axis.model;\r\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\r\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\r\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\r\n }\r\n dataZoomModel && (snapshot[dataZoomModel.id] = {\r\n dataZoomId: dataZoomModel.id,\r\n startValue: minMax[0],\r\n endValue: minMax[1]\r\n });\r\n }\r\n function findDataZoom(dimName, axisModel, ecModel) {\r\n var found;\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (dzModel) {\r\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\r\n has && (found = dzModel);\r\n });\r\n return found;\r\n }\r\n };\r\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\r\n var batch = [];\r\n each$a(snapshot, function (batchItem, dataZoomId) {\r\n batch.push(clone(batchItem));\r\n });\r\n batch.length && this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n batch: batch\r\n });\r\n };\r\n DataZoomFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n filterMode: 'filter',\r\n icon: {\r\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\r\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'dataZoom', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return DataZoomFeature;\r\n }(ToolboxFeature));\r\n var handlers = {\r\n zoom: function () {\r\n var nextActive = !this.isZoomActive;\r\n this.api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'dataZoomSelect',\r\n dataZoomSelectActive: nextActive\r\n });\r\n },\r\n back: function () {\r\n this._dispatchZoomAction(pop(this.ecModel));\r\n }\r\n };\r\n function makeAxisFinder(dzFeatureModel) {\r\n var setting = {\r\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\r\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\r\n xAxisId: dzFeatureModel.get('xAxisId', true),\r\n yAxisId: dzFeatureModel.get('yAxisId', true)\r\n };\r\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\r\n setting.xAxisIndex = 'all';\r\n }\r\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\r\n setting.yAxisIndex = 'all';\r\n }\r\n return setting;\r\n }\r\n function updateBackBtnStatus(featureModel, ecModel) {\r\n featureModel.setIconStatus('back', count(ecModel) > 1 ? 'emphasis' : 'normal');\r\n }\r\n function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\r\n var zoomActive = view.isZoomActive;\r\n if (payload && payload.type === 'takeGlobalCursor') {\r\n zoomActive = payload.key === 'dataZoomSelect'\r\n ? payload.dataZoomSelectActive : false;\r\n }\r\n view.isZoomActive = zoomActive;\r\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, { include: ['grid'] });\r\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\r\n return (targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared)\r\n ? 'lineX'\r\n : (!targetInfo.xAxisDeclared && targetInfo.yAxisDeclared)\r\n ? 'lineY'\r\n : 'rect';\r\n });\r\n view.brushController\r\n .setPanels(panels)\r\n .enableBrush((zoomActive && panels.length)\r\n ? {\r\n brushType: 'auto',\r\n brushStyle: {\r\n lineWidth: 0,\r\n fill: 'rgba(0,0,0,0.2)'\r\n }\r\n }\r\n : false);\r\n }\r\n registerFeature('dataZoom', DataZoomFeature);\r\n registerInternalOptionCreator('dataZoom', function (ecModel) {\r\n var toolboxModel = ecModel.getComponent('toolbox', 0);\r\n if (!toolboxModel) {\r\n return;\r\n }\r\n var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\r\n var dzOptions = [];\r\n var finder = makeAxisFinder(dzFeatureModel);\r\n var finderResult = parseFinder(ecModel, finder);\r\n each$a(finderResult.xAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex'); });\r\n each$a(finderResult.yAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex'); });\r\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\r\n var axisIndex = axisModel.componentIndex;\r\n var newOpt = {\r\n type: 'select',\r\n $fromToolbox: true,\r\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\r\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\r\n };\r\n newOpt[axisIndexPropName] = axisIndex;\r\n dzOptions.push(newOpt);\r\n }\r\n return dzOptions;\r\n });\n\n var RestoreOption = (function (_super) {\r\n __extends(RestoreOption, _super);\r\n function RestoreOption() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RestoreOption.prototype.onclick = function (ecModel, api) {\r\n clear$1(ecModel);\r\n api.dispatchAction({\r\n type: 'restore',\r\n from: this.uid\r\n });\r\n };\r\n RestoreOption.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\r\n title: ecModel.getLocale(['toolbox', 'restore', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return RestoreOption;\r\n }(ToolboxFeature));\r\n registerFeature('restore', RestoreOption);\r\n registerAction({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n ecModel.resetOption('recreate');\r\n });\n\n function createElement(name) {\r\n return document.createElementNS('http://www.w3.org/2000/svg', name);\r\n }\n\n var CMD$4 = PathProxy.CMD;\r\n var NONE = 'none';\r\n var mathRound = Math.round;\r\n var mathSin$3 = Math.sin;\r\n var mathCos$3 = Math.cos;\r\n var PI$6 = Math.PI;\r\n var PI2$7 = Math.PI * 2;\r\n var degree = 180 / PI$6;\r\n var EPSILON$4 = 1e-4;\r\n function round4(val) {\r\n return mathRound(val * 1e4) / 1e4;\r\n }\r\n function isAroundZero$1(val) {\r\n return val < EPSILON$4 && val > -EPSILON$4;\r\n }\r\n function pathHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== NONE;\r\n }\r\n function pathHasStroke(style) {\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== NONE;\r\n }\r\n function reduceNumberString(n, precision) {\r\n return n > 1 ? +n.toFixed(precision) : +n.toPrecision(precision);\r\n }\r\n function setTransform(svgEl, m) {\r\n if (m) {\r\n attr(svgEl, 'transform', 'matrix('\r\n + reduceNumberString(m[0], 3) + ','\r\n + reduceNumberString(m[1], 3) + ','\r\n + reduceNumberString(m[2], 3) + ','\r\n + reduceNumberString(m[3], 3) + ','\r\n + reduceNumberString(m[4], 4) + ','\r\n + reduceNumberString(m[5], 4)\r\n + ')');\r\n }\r\n }\r\n function attr(el, key, val) {\r\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\r\n el.setAttribute(key, val);\r\n }\r\n }\r\n function attrXLink(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\r\n }\r\n function bindStyle(svgEl, style, el) {\r\n var opacity = style.opacity == null ? 1 : style.opacity;\r\n if (pathHasFill(style)) {\r\n var fill = style.fill;\r\n fill = fill === 'transparent' ? NONE : fill;\r\n attr(svgEl, 'fill', fill);\r\n attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\r\n }\r\n else {\r\n attr(svgEl, 'fill', NONE);\r\n }\r\n if (pathHasStroke(style)) {\r\n var stroke = style.stroke;\r\n stroke = stroke === 'transparent' ? NONE : stroke;\r\n attr(svgEl, 'stroke', stroke);\r\n var strokeWidth = style.lineWidth;\r\n var strokeScale_1 = style.strokeNoScale\r\n ? el.getLineScale()\r\n : 1;\r\n attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\r\n attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\r\n attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\r\n var lineDash = style.lineDash;\r\n if (lineDash) {\r\n var lineDashOffset = style.lineDashOffset;\r\n if (strokeScale_1 && strokeScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / strokeScale_1;\r\n });\r\n if (lineDashOffset) {\r\n lineDashOffset /= strokeScale_1;\r\n lineDashOffset = mathRound(lineDashOffset);\r\n }\r\n }\r\n attr(svgEl, 'stroke-dasharray', lineDash.join(','));\r\n attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke-dasharray', '');\r\n }\r\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\r\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\r\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke', NONE);\r\n }\r\n }\r\n function pathDataToString(path) {\r\n if (!path) {\r\n return '';\r\n }\r\n var str = [];\r\n var data = path.data;\r\n var dataLength = path.len();\r\n var x;\r\n var y;\r\n for (var i = 0; i < dataLength;) {\r\n var cmd = data[i++];\r\n var cmdStr = '';\r\n var nData = 0;\r\n switch (cmd) {\r\n case CMD$4.M:\r\n cmdStr = 'M';\r\n nData = 2;\r\n break;\r\n case CMD$4.L:\r\n cmdStr = 'L';\r\n nData = 2;\r\n break;\r\n case CMD$4.Q:\r\n cmdStr = 'Q';\r\n nData = 4;\r\n break;\r\n case CMD$4.C:\r\n cmdStr = 'C';\r\n nData = 6;\r\n break;\r\n case CMD$4.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n var psi = data[i++];\r\n var clockwise = data[i++];\r\n var dThetaPositive = Math.abs(dTheta);\r\n var isCircle = isAroundZero$1(dThetaPositive - PI2$7)\r\n || (clockwise ? dTheta >= PI2$7 : -dTheta >= PI2$7);\r\n var unifiedTheta = dTheta > 0 ? dTheta % PI2$7 : (dTheta % PI2$7 + PI2$7);\r\n var large = false;\r\n if (isCircle) {\r\n large = true;\r\n }\r\n else if (isAroundZero$1(dThetaPositive)) {\r\n large = false;\r\n }\r\n else {\r\n large = (unifiedTheta >= PI$6) === !!clockwise;\r\n }\r\n var x0 = round4(cx + rx * mathCos$3(theta));\r\n var y0 = round4(cy + ry * mathSin$3(theta));\r\n if (isCircle) {\r\n if (clockwise) {\r\n dTheta = PI2$7 - 1e-4;\r\n }\r\n else {\r\n dTheta = -PI2$7 + 1e-4;\r\n }\r\n large = true;\r\n if (i === 9) {\r\n str.push('M', x0, y0);\r\n }\r\n }\r\n x = round4(cx + rx * mathCos$3(theta + dTheta));\r\n y = round4(cy + ry * mathSin$3(theta + dTheta));\r\n if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\r\n return '';\r\n }\r\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\r\n break;\r\n case CMD$4.Z:\r\n cmdStr = 'Z';\r\n break;\r\n case CMD$4.R:\r\n x = round4(data[i++]);\r\n y = round4(data[i++]);\r\n var w = round4(data[i++]);\r\n var h = round4(data[i++]);\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n return '';\r\n }\r\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\r\n break;\r\n }\r\n cmdStr && str.push(cmdStr);\r\n for (var j = 0; j < nData; j++) {\r\n var val = round4(data[i++]);\r\n if (isNaN(val)) {\r\n return '';\r\n }\r\n str.push(val);\r\n }\r\n }\r\n return str.join(' ');\r\n }\r\n function wrapSVGBuildPath(el) {\r\n if (!el.__svgBuildPath) {\r\n var oldBuildPath_1 = el.buildPath;\r\n el.__svgBuildPath = el.buildPath = function (path, shape, inBundle) {\r\n oldBuildPath_1.call(this, el.path, shape, inBundle);\r\n el.__svgPathStr = pathDataToString(el.path);\r\n };\r\n if (!el.shapeChanged()) {\r\n el.__svgPathStr = pathDataToString(el.path);\r\n }\r\n }\r\n }\r\n var svgPath = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('path');\r\n el.__svgEl = svgEl;\r\n }\r\n if (!el.path) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path;\r\n wrapSVGBuildPath(el);\r\n if (el.shapeChanged()) {\r\n path.beginPath();\r\n el.buildPath(path, el.shape);\r\n el.pathUpdated();\r\n }\r\n attr(svgEl, 'd', el.__svgPathStr);\r\n bindStyle(svgEl, style, el);\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var svgImage = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var image = style.image;\r\n if (image instanceof HTMLImageElement) {\r\n var src = image.src;\r\n image = src;\r\n }\r\n if (!image) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var dw = style.width;\r\n var dh = style.height;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('image');\r\n el.__svgEl = svgEl;\r\n }\r\n if (image !== el.__imageSrc) {\r\n attrXLink(svgEl, 'href', image);\r\n el.__imageSrc = image;\r\n }\r\n attr(svgEl, 'width', dw + '');\r\n attr(svgEl, 'height', dh + '');\r\n attr(svgEl, 'x', x + '');\r\n attr(svgEl, 'y', y + '');\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var TEXT_ALIGN_TO_ANCHOR = {\r\n left: 'start',\r\n right: 'end',\r\n center: 'middle',\r\n middle: 'middle'\r\n };\r\n function adjustTextY$1(y, lineHeight, textBaseline) {\r\n if (textBaseline === 'top') {\r\n y += lineHeight / 2;\r\n }\r\n else if (textBaseline === 'bottom') {\r\n y -= lineHeight / 2;\r\n }\r\n return y;\r\n }\r\n var svgText = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (!text) {\r\n return;\r\n }\r\n var textSvgEl = el.__svgEl;\r\n if (!textSvgEl) {\r\n textSvgEl = createElement('text');\r\n el.__svgEl = textSvgEl;\r\n }\r\n var font = style.font || DEFAULT_FONT;\r\n var textSvgElStyle = textSvgEl.style;\r\n textSvgElStyle.font = font;\r\n textSvgEl.textContent = text;\r\n bindStyle(textSvgEl, style, el);\r\n setTransform(textSvgEl, el.transform);\r\n var x = style.x || 0;\r\n var y = adjustTextY$1(style.y || 0, getLineHeight(font), style.textBaseline);\r\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\r\n || style.textAlign;\r\n attr(textSvgEl, 'dominant-baseline', 'middle');\r\n attr(textSvgEl, 'text-anchor', textAlign);\r\n attr(textSvgEl, 'x', x + '');\r\n attr(textSvgEl, 'y', y + '');\r\n }\r\n };\n\n function diff(oldArr, newArr, equals) {\r\n if (!equals) {\r\n equals = function (a, b) {\r\n return a === b;\r\n };\r\n }\r\n oldArr = oldArr.slice();\r\n newArr = newArr.slice();\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n var indices = [];\r\n for (var i = 0; i < newArr.length; i++) {\r\n indices.push(i);\r\n }\r\n return [{\r\n indices: indices,\r\n count: newArr.length,\r\n added: false,\r\n removed: false\r\n }];\r\n }\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath;\r\n var addPath = bestPath[diagonalPath - 1];\r\n var removePath = bestPath[diagonalPath + 1];\r\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n var canAdd = addPath && addPath.newPos + 1 < newLen;\r\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\r\n basePath = clonePath(removePath);\r\n pushComponent(basePath.components, false, true);\r\n }\r\n else {\r\n basePath = addPath;\r\n basePath.newPos++;\r\n pushComponent(basePath.components, true, false);\r\n }\r\n oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\r\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n return buildValues(basePath.components);\r\n }\r\n else {\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n editLength++;\r\n }\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n function extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var newPos = basePath.newPos;\r\n var oldPos = newPos - diagonalPath;\r\n var commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n if (commonCount) {\r\n basePath.components.push({\r\n count: commonCount,\r\n added: false,\r\n removed: false,\r\n indices: []\r\n });\r\n }\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n }\r\n function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n components[components.length - 1] = {\r\n count: last.count + 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n };\r\n }\r\n else {\r\n components.push({\r\n count: 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n });\r\n }\r\n }\r\n function buildValues(components) {\r\n var componentPos = 0;\r\n var componentLen = components.length;\r\n var newPos = 0;\r\n var oldPos = 0;\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n var indices = [];\r\n for (var i = newPos; i < newPos + component.count; i++) {\r\n indices.push(i);\r\n }\r\n component.indices = indices;\r\n newPos += component.count;\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n }\r\n else {\r\n for (var i = oldPos; i < oldPos + component.count; i++) {\r\n component.indices.push(i);\r\n }\r\n oldPos += component.count;\r\n }\r\n }\r\n return components;\r\n }\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n function arrayDiff (oldArr, newArr, equal) {\r\n return diff(oldArr, newArr, equal);\r\n }\n\n var MARK_UNUSED = '0';\r\n var MARK_USED = '1';\r\n var Definable = (function () {\r\n function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\r\n this.nextId = 0;\r\n this._domName = '_dom';\r\n this.createElement = createElement;\r\n this._zrId = zrId;\r\n this._svgRoot = svgRoot;\r\n this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\r\n this._markLabel = markLabel;\r\n if (domName) {\r\n this._domName = domName;\r\n }\r\n }\r\n Definable.prototype.getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgRoot;\r\n var defs = this._svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n Definable.prototype.doUpdate = function (target, onUpdate) {\r\n if (!target) {\r\n return;\r\n }\r\n var defs = this.getDefs(false);\r\n if (target[this._domName] && defs.contains(target[this._domName])) {\r\n if (typeof onUpdate === 'function') {\r\n onUpdate(target);\r\n }\r\n }\r\n else {\r\n var dom = this.add(target);\r\n if (dom) {\r\n target[this._domName] = dom;\r\n }\r\n }\r\n };\r\n Definable.prototype.add = function (target) {\r\n return null;\r\n };\r\n Definable.prototype.addDom = function (dom) {\r\n var defs = this.getDefs(true);\r\n defs.appendChild(dom);\r\n };\r\n Definable.prototype.removeDom = function (target) {\r\n var defs = this.getDefs(false);\r\n if (defs && target[this._domName]) {\r\n defs.removeChild(target[this._domName]);\r\n target[this._domName] = null;\r\n }\r\n };\r\n Definable.prototype.getDoms = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return [];\r\n }\r\n var doms = [];\r\n each(this._tagNames, function (tagName) {\r\n var tags = defs.getElementsByTagName(tagName);\r\n doms = doms.concat([].slice.call(tags));\r\n });\r\n return doms;\r\n };\r\n Definable.prototype.markAllUnused = function () {\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n dom[that._markLabel] = MARK_UNUSED;\r\n });\r\n };\r\n Definable.prototype.markDomUsed = function (dom) {\r\n if (dom) {\r\n dom[this._markLabel] = MARK_USED;\r\n }\r\n };\r\n Definable.prototype.removeUnused = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n if (dom[that._markLabel] !== MARK_USED) {\r\n defs.removeChild(dom);\r\n }\r\n });\r\n };\r\n Definable.prototype.getSvgProxy = function (displayable) {\r\n if (displayable instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (displayable instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (displayable instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n };\r\n Definable.prototype.getSvgElement = function (displayable) {\r\n return displayable.__svgEl;\r\n };\r\n return Definable;\r\n }());\n\n function isLinearGradient(value) {\r\n return value.type === 'linear';\r\n }\r\n function isRadialGradient(value) {\r\n return value.type === 'radial';\r\n }\r\n var GradientManager = (function (_super) {\r\n __extends(GradientManager, _super);\r\n function GradientManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\r\n }\r\n GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var value = displayable.style[fillOrStroke];\r\n if (value\r\n && (value.type === 'linear'\r\n || value.type === 'radial')) {\r\n var gradient = value;\r\n var defs = that_1.getDefs(true);\r\n var dom = void 0;\r\n if (gradient.__dom) {\r\n dom = gradient.__dom;\r\n if (!defs.contains(gradient.__dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(gradient);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n GradientManager.prototype.add = function (gradient) {\r\n var dom;\r\n if (isLinearGradient(gradient)) {\r\n dom = this.createElement('linearGradient');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom = this.createElement('radialGradient');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return null;\r\n }\r\n gradient.id = gradient.id || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-gradient-' + gradient.id);\r\n this.updateDom(gradient, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n GradientManager.prototype.update = function (gradient) {\r\n var that = this;\r\n this.doUpdate(gradient, function () {\r\n var type = gradient.type;\r\n var tagName = gradient.__dom.tagName;\r\n if (type === 'linear' && tagName === 'linearGradient'\r\n || type === 'radial' && tagName === 'radialGradient') {\r\n that.updateDom(gradient, gradient.__dom);\r\n }\r\n else {\r\n that.removeDom(gradient);\r\n that.add(gradient);\r\n }\r\n });\r\n };\r\n GradientManager.prototype.updateDom = function (gradient, dom) {\r\n if (isLinearGradient(gradient)) {\r\n dom.setAttribute('x1', gradient.x + '');\r\n dom.setAttribute('y1', gradient.y + '');\r\n dom.setAttribute('x2', gradient.x2 + '');\r\n dom.setAttribute('y2', gradient.y2 + '');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom.setAttribute('cx', gradient.x + '');\r\n dom.setAttribute('cy', gradient.y + '');\r\n dom.setAttribute('r', gradient.r + '');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return;\r\n }\r\n if (gradient.global) {\r\n dom.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n }\r\n else {\r\n dom.setAttribute('gradientUnits', 'objectBoundingBox');\r\n }\r\n dom.innerHTML = '';\r\n var colors = gradient.colorStops;\r\n for (var i = 0, len = colors.length; i < len; ++i) {\r\n var stop_1 = this.createElement('stop');\r\n stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\r\n var color$1 = colors[i].color;\r\n if (color$1.indexOf('rgba') > -1) {\r\n var opacity = parse(color$1)[3];\r\n var hex = toHex(color$1);\r\n stop_1.setAttribute('stop-color', '#' + hex);\r\n stop_1.setAttribute('stop-opacity', opacity + '');\r\n }\r\n else {\r\n stop_1.setAttribute('stop-color', colors[i].color);\r\n }\r\n dom.appendChild(stop_1);\r\n }\r\n gradient.__dom = dom;\r\n };\r\n GradientManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n var gradient = displayable.style.fill;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n gradient = displayable.style.stroke;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n }\r\n };\r\n return GradientManager;\r\n }(Definable));\n\n var ClippathManager = (function (_super) {\r\n __extends(ClippathManager, _super);\r\n function ClippathManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\r\n }\r\n ClippathManager.prototype.update = function (displayable) {\r\n var svgEl = this.getSvgElement(displayable);\r\n if (svgEl) {\r\n this.updateDom(svgEl, displayable.__clipPaths, false);\r\n }\r\n this.markUsed(displayable);\r\n };\r\n ClippathManager.prototype.updateDom = function (parentEl, clipPaths, isText) {\r\n if (clipPaths && clipPaths.length > 0) {\r\n var defs = this.getDefs(true);\r\n var clipPath = clipPaths[0];\r\n var clipPathEl = void 0;\r\n var id = void 0;\r\n var domKey = isText ? '_textDom' : '_dom';\r\n if (clipPath[domKey]) {\r\n id = clipPath[domKey].getAttribute('id');\r\n clipPathEl = clipPath[domKey];\r\n if (!defs.contains(clipPathEl)) {\r\n defs.appendChild(clipPathEl);\r\n }\r\n }\r\n else {\r\n id = 'zr' + this._zrId + '-clip-' + this.nextId;\r\n ++this.nextId;\r\n clipPathEl = this.createElement('clipPath');\r\n clipPathEl.setAttribute('id', id);\r\n defs.appendChild(clipPathEl);\r\n clipPath[domKey] = clipPathEl;\r\n }\r\n var svgProxy = this.getSvgProxy(clipPath);\r\n if (clipPath.transform\r\n && clipPath.parent.invTransform\r\n && !isText) {\r\n var transform = Array.prototype.slice.call(clipPath.transform);\r\n mul$1(clipPath.transform, clipPath.parent.invTransform, clipPath.transform);\r\n svgProxy.brush(clipPath);\r\n clipPath.transform = transform;\r\n }\r\n else {\r\n svgProxy.brush(clipPath);\r\n }\r\n var pathEl = this.getSvgElement(clipPath);\r\n clipPathEl.innerHTML = '';\r\n clipPathEl.appendChild(pathEl.cloneNode());\r\n parentEl.setAttribute('clip-path', 'url(#' + id + ')');\r\n if (clipPaths.length > 1) {\r\n this.updateDom(clipPathEl, clipPaths.slice(1), isText);\r\n }\r\n }\r\n else {\r\n if (parentEl) {\r\n parentEl.setAttribute('clip-path', 'none');\r\n }\r\n }\r\n };\r\n ClippathManager.prototype.markUsed = function (displayable) {\r\n var _this = this;\r\n if (displayable.__clipPaths) {\r\n each(displayable.__clipPaths, function (clipPath) {\r\n if (clipPath._dom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._dom);\r\n }\r\n if (clipPath._textDom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._textDom);\r\n }\r\n });\r\n }\r\n };\r\n return ClippathManager;\r\n }(Definable));\n\n var ShadowManager = (function (_super) {\r\n __extends(ShadowManager, _super);\r\n function ShadowManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\r\n }\r\n ShadowManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && hasShadow(displayable.style)) {\r\n var dom = void 0;\r\n if (displayable._shadowDom) {\r\n dom = displayable._shadowDom;\r\n var defs = this.getDefs(true);\r\n if (!defs.contains(displayable._shadowDom)) {\r\n this.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = this.add(displayable);\r\n }\r\n this.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.style.filter = 'url(#' + id + ')';\r\n }\r\n };\r\n ShadowManager.prototype.add = function (displayable) {\r\n var dom = this.createElement('filter');\r\n displayable._shadowDomId = displayable._shadowDomId || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-shadow-' + displayable._shadowDomId);\r\n this.updateDom(displayable, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n ShadowManager.prototype.update = function (svgElement, displayable) {\r\n var style = displayable.style;\r\n if (hasShadow(style)) {\r\n var that_1 = this;\r\n _super.prototype.doUpdate.call(this, displayable, function () {\r\n that_1.updateDom(displayable, displayable._shadowDom);\r\n });\r\n }\r\n else {\r\n this.remove(svgElement, displayable);\r\n }\r\n };\r\n ShadowManager.prototype.remove = function (svgElement, displayable) {\r\n if (displayable._shadowDomId != null) {\r\n this.removeDom(svgElement);\r\n svgElement.style.filter = '';\r\n }\r\n };\r\n ShadowManager.prototype.updateDom = function (displayable, dom) {\r\n var domChildArr = dom.getElementsByTagName('feDropShadow');\r\n var domChild = domChildArr.length\r\n ? domChildArr[0]\r\n : this.createElement('feDropShadow');\r\n var style = displayable.style;\r\n var scaleX = displayable.scaleX || 1;\r\n var scaleY = displayable.scaleY || 1;\r\n var offsetX;\r\n var offsetY;\r\n var blur;\r\n var color;\r\n if (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY) {\r\n offsetX = style.shadowOffsetX || 0;\r\n offsetY = style.shadowOffsetY || 0;\r\n blur = style.shadowBlur;\r\n color = style.shadowColor;\r\n }\r\n else if (style.textShadowBlur) {\r\n offsetX = style.textShadowOffsetX || 0;\r\n offsetY = style.textShadowOffsetY || 0;\r\n blur = style.textShadowBlur;\r\n color = style.textShadowColor;\r\n }\r\n else {\r\n this.removeDom(dom);\r\n return;\r\n }\r\n domChild.setAttribute('dx', offsetX / scaleX + '');\r\n domChild.setAttribute('dy', offsetY / scaleY + '');\r\n domChild.setAttribute('flood-color', color);\r\n var stdDx = blur / 2 / scaleX;\r\n var stdDy = blur / 2 / scaleY;\r\n var stdDeviation = stdDx + ' ' + stdDy;\r\n domChild.setAttribute('stdDeviation', stdDeviation);\r\n dom.setAttribute('x', '-100%');\r\n dom.setAttribute('y', '-100%');\r\n dom.setAttribute('width', Math.ceil(blur / 2 * 200) + '%');\r\n dom.setAttribute('height', Math.ceil(blur / 2 * 200) + '%');\r\n dom.appendChild(domChild);\r\n displayable._shadowDom = dom;\r\n };\r\n ShadowManager.prototype.markUsed = function (displayable) {\r\n if (displayable._shadowDom) {\r\n _super.prototype.markDomUsed.call(this, displayable._shadowDom);\r\n }\r\n };\r\n return ShadowManager;\r\n }(Definable));\r\n function hasShadow(style) {\r\n return style\r\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\r\n }\n\n function parseInt10$1(val) {\r\n return parseInt(val, 10);\r\n }\r\n function getSvgProxy(el) {\r\n if (el instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (el instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (el instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n }\r\n function checkParentAvailable(parent, child) {\r\n return child && parent && child.parentNode !== parent;\r\n }\r\n function insertAfter(parent, child, prevSibling) {\r\n if (checkParentAvailable(parent, child) && prevSibling) {\r\n var nextSibling = prevSibling.nextSibling;\r\n nextSibling ? parent.insertBefore(child, nextSibling)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function prepend(parent, child) {\r\n if (checkParentAvailable(parent, child)) {\r\n var firstChild = parent.firstChild;\r\n firstChild ? parent.insertBefore(child, firstChild)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function remove(parent, child) {\r\n if (child && parent && child.parentNode === parent) {\r\n parent.removeChild(child);\r\n }\r\n }\r\n function getSvgElement(displayable) {\r\n return displayable.__svgEl;\r\n }\r\n var SVGPainter = (function () {\r\n function SVGPainter(root, storage, opts, zrId) {\r\n this.type = 'svg';\r\n this.refreshHover = createMethodNotSupport('refreshHover');\r\n this.pathToImage = createMethodNotSupport('pathToImage');\r\n this.configLayer = createMethodNotSupport('configLayer');\r\n this.root = root;\r\n this.storage = storage;\r\n this._opts = opts = extend({}, opts || {});\r\n var svgDom = createElement('svg');\r\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svgDom.setAttribute('version', '1.1');\r\n svgDom.setAttribute('baseProfile', 'full');\r\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\r\n var bgRoot = createElement('g');\r\n svgDom.appendChild(bgRoot);\r\n var svgRoot = createElement('g');\r\n svgDom.appendChild(svgRoot);\r\n this._gradientManager = new GradientManager(zrId, svgRoot);\r\n this._clipPathManager = new ClippathManager(zrId, svgRoot);\r\n this._shadowManager = new ShadowManager(zrId, svgRoot);\r\n var viewport = document.createElement('div');\r\n viewport.style.cssText = 'overflow:hidden;position:relative';\r\n this._svgDom = svgDom;\r\n this._svgRoot = svgRoot;\r\n this._backgroundRoot = bgRoot;\r\n this._viewport = viewport;\r\n root.appendChild(viewport);\r\n viewport.appendChild(svgDom);\r\n this.resize(opts.width, opts.height);\r\n this._visibleList = [];\r\n }\r\n SVGPainter.prototype.getType = function () {\r\n return 'svg';\r\n };\r\n SVGPainter.prototype.getViewportRoot = function () {\r\n return this._viewport;\r\n };\r\n SVGPainter.prototype.getSvgDom = function () {\r\n return this._svgDom;\r\n };\r\n SVGPainter.prototype.getSvgRoot = function () {\r\n return this._svgRoot;\r\n };\r\n SVGPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n SVGPainter.prototype.refresh = function () {\r\n var list = this.storage.getDisplayList(true);\r\n this._paintList(list);\r\n };\r\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this._backgroundRoot && this._backgroundNode) {\r\n this._backgroundRoot.removeChild(this._backgroundNode);\r\n }\r\n var bgNode = createElement('rect');\r\n bgNode.setAttribute('width', this.getWidth());\r\n bgNode.setAttribute('height', this.getHeight());\r\n bgNode.setAttribute('x', 0);\r\n bgNode.setAttribute('y', 0);\r\n bgNode.setAttribute('id', 0);\r\n bgNode.style.fill = backgroundColor;\r\n this._backgroundRoot.appendChild(bgNode);\r\n this._backgroundNode = bgNode;\r\n };\r\n SVGPainter.prototype._paintList = function (list) {\r\n this._gradientManager.markAllUnused();\r\n this._clipPathManager.markAllUnused();\r\n this._shadowManager.markAllUnused();\r\n var svgRoot = this._svgRoot;\r\n var visibleList = this._visibleList;\r\n var listLen = list.length;\r\n var newVisibleList = [];\r\n for (var i = 0; i < listLen; i++) {\r\n var displayable = list[i];\r\n var svgProxy = getSvgProxy(displayable);\r\n var svgElement = getSvgElement(displayable);\r\n if (!displayable.invisible) {\r\n if (displayable.__dirty || !svgElement) {\r\n svgProxy && svgProxy.brush(displayable);\r\n this._clipPathManager.update(displayable);\r\n if (displayable.style) {\r\n this._gradientManager\r\n .update(displayable.style.fill);\r\n this._gradientManager\r\n .update(displayable.style.stroke);\r\n this._shadowManager\r\n .update(svgElement, displayable);\r\n }\r\n displayable.__dirty = 0;\r\n }\r\n if (getSvgElement(displayable)) {\r\n newVisibleList.push(displayable);\r\n }\r\n }\r\n }\r\n var diff = arrayDiff(visibleList, newVisibleList);\r\n var prevSvgElement;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = visibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n remove(svgRoot, svgElement);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.added) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n prevSvgElement\r\n ? insertAfter(svgRoot, svgElement, prevSvgElement)\r\n : prepend(svgRoot, svgElement);\r\n prevSvgElement = svgElement || prevSvgElement;\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n }\r\n }\r\n else if (!item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n this._gradientManager.markUsed(displayable);\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager.markUsed(displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n prevSvgElement = svgElement\r\n || prevSvgElement;\r\n }\r\n }\r\n }\r\n this._gradientManager.removeUnused();\r\n this._clipPathManager.removeUnused();\r\n this._shadowManager.removeUnused();\r\n this._visibleList = newVisibleList;\r\n };\r\n SVGPainter.prototype._getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgDom;\r\n var defs = svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n SVGPainter.prototype.resize = function (width, height) {\r\n var viewport = this._viewport;\r\n viewport.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n viewport.style.display = '';\r\n if (this._width !== width || this._height !== height) {\r\n this._width = width;\r\n this._height = height;\r\n var viewportStyle = viewport.style;\r\n viewportStyle.width = width + 'px';\r\n viewportStyle.height = height + 'px';\r\n var svgRoot = this._svgDom;\r\n svgRoot.setAttribute('width', width + '');\r\n svgRoot.setAttribute('height', height + '');\r\n }\r\n if (this._backgroundNode) {\r\n this._backgroundNode.setAttribute('width', width);\r\n this._backgroundNode.setAttribute('height', height);\r\n }\r\n };\r\n SVGPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n SVGPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n SVGPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10$1(stl[wh]) || parseInt10$1(root.style[wh]))\r\n - (parseInt10$1(stl[plt]) || 0)\r\n - (parseInt10$1(stl[prb]) || 0)) | 0;\r\n };\r\n SVGPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this._svgRoot\r\n = this._backgroundRoot\r\n = this._svgDom\r\n = this._backgroundNode\r\n = this._viewport\r\n = this.storage\r\n = null;\r\n };\r\n SVGPainter.prototype.clear = function () {\r\n if (this._viewport) {\r\n this.root.removeChild(this._viewport);\r\n }\r\n };\r\n SVGPainter.prototype.toDataURL = function () {\r\n this.refresh();\r\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/>\\n\\r<'));\r\n return 'data:image/svg+xml;charset=UTF-8,' + html;\r\n };\r\n return SVGPainter;\r\n }());\r\n function createMethodNotSupport(method) {\r\n return function () {\r\n logError('In SVG mode painter not support method \"' + method + '\"');\r\n };\r\n }\n\n registerPainter('svg', SVGPainter);\n\n exports.Axis = Axis;\n exports.List = List;\n exports.Model = Model;\n exports.PRIORITY = PRIORITY;\n exports.color = color;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose$1;\n exports.env = env;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.format = format$1;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.graphic = graphic$1;\n exports.helper = helper;\n exports.init = init$1;\n exports.matrix = matrix;\n exports.number = number;\n exports.parseGeoJSON = parseGeoJSON;\n exports.parseGeoJson = parseGeoJson;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.throttle = throttle;\n exports.time = time;\n exports.util = ecUtil;\n exports.vector = vector;\n exports.version = version$1;\n exports.zrender = zrender;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file +{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__spreadArrays","s","i","il","arguments","length","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","apply","clone","source","result","typeStr","call","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","mergeAll","targetAndSources","extend","assign","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","find","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","concatArray","newArray","offset","createObject","proto","properties","StyleCtor","hasOwn","own","noop","zrUtil","freeze","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","lengthSquare","mul","div","dot","scale","normalize","distance","dist","distanceSquare","distSquare","negate","lerp","t","applyTransform","m","min","max","vector","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","_calcOut","transformLocalCoord","elFrom","elTarget","inX","inY","transformCoordWithViewport","el","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut$1","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","isMiddleOrRightButtonOnMouseUpDown","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","start","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","sort","remaining","ts","minRun","force","invalidZErrorLogged","logInvalidZError","warn","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","traverse","update","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","beforeUpdate","__dirty","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","updateTransform","childrenRef","children","child","markRedraw","disp","__clipPaths","isNaN","textGuide","getTextGuideLine","textEl","getTextContent","addRoot","delRoot","idx","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","cos","PI","sinusoidalOut","sin","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","m1","m2","lerpNumber","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","iv","substr","op","ep","fname","params","split","alpha","pop","hsla2rgba","hsla","rgba","rgba2hsla","R","G","B","vMin","vMax","L","H","S","deltaR","deltaG","deltaB","lift","color","level","colorArr","stringify","toHex","fastLerp","normalizedValue","colors","leftIndex","floor","rightIndex","ceil","leftColor","rightColor","dv","fastMapToColor","lerp$1","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","lum","backgroundLum","random","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","needsAnimate","getAdditiveTrack","_additiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_doneList","_onframeList","_clip","_target","_loop","_additiveAnimators","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","_getAdditiveTrack","lastFinalKf","during","callback","isPaused","_doneCallback","doneList","trackName","additiveAnimators","getTrack","forceAnimate","clip","stillHasAdditiveAnimator","animation","addClip","forwardToLast","removeClip","done","getClip","stopTracks","tracksKeys","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","addAnimator","animator","removeAnimator","Date","getTime","nextClip","finished","_startLoop","animate","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","scope","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","_globalHandlerScope","isPointerCapturing","globalHandlerScope","create$1","identity","copy$1","mul$1","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","ct","scale$1","vx","vy","invert","clone$2","matrix","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","setLocalTransform","atan2","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","Point","other","equal","scalar","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","screen","deviceXDPI","logicalXDPI","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","updateInnerText","forceUpdate","_textContent","textConfig","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","previousTextContent","removeTextContent","cfg","setTextGuideLine","guideLine","removeTextGuideLine","refreshHover","refresh","dirty","inHover","textContent","updateDuringAnimation","wakeUp","stopAnimation","leftAnimators","animateTo","animationProps","animateFrom","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","count","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","existsAnimatorsOnSameTarget","revertedSource","reversedTarget","sourceClone","STYLE_MAGIC_KEY","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","rectContain","coord","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","_getAnimationStyleProps","mergedStyle","dispProto","invisible","culling","incremental","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","Q","Z","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","PathProxy","notSaveData","_xi","_yi","_x0","_y0","_saveData","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathData","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","Path","shape","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","buildPath","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","isZeroArea","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","SVGPath","isPathProxy","createPathOptions","pathProxy","innerOpts","createFromString","extendFromString","defaultOpts","mergePath","pathEls","pathList","pathEl","pathBundle","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpRect","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","ZRImage","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","CompoundPath","_updatePathDirty","paths","dirtyPath","IncrementalDisplayble","notClear","_displayables","_temporaryDisplayables","_cursor","getCursor","clearDisplaybles","clearTemporalDisplayables","addDisplayable","notPersistent","addDisplayables","displayables","getDisplayables","getTemporalDisplayables","eachPendingDisplayable","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","createOrUpdateImage","cbPayload","__zrImageSrc","pendingWrap","isImageReady","pending","Image","onload","onerror","imageOnLoad","__cachedImgObj","STYLE_REG","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","preparedOpts","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","contentWidth","ellipsisWidth","textLine","subLength","estimateLength","charCode","charCodeAt","parsePlainText","overflow","padding","truncate","calculatedLineHeight","lineHeight","truncateLineOverflow","lineOverflow","lines","wrapText","contentHeight","lineCount","outerHeight","outerWidth","truncateMinChar","maxWidth","RichTextToken","RichTextLine","tokens","RichTextContentBlock","parseRichText","contentBlock","topWidth","topHeight","wrapInfo","accumWidth","breakAll","exec","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","outer","line","token","tokenStyle","styleName","rich","textPadding","paddingH","tokenHeight","styleTokenWidth","tokenWidthNotSpecified","percentWidth","textBackgroundColor","bgImg","remainTruncWidth","block","isEmptyStr","newLine","strLines","linesWidths","tokenPadding","tokenPaddingH","outerWidth_1","parsePercent$1","isLineHolder","tokensLen","isLatin","ch","code","breakCharMap","isWordBreakChar","isBreakAll","lastAccumWidth","currentWord","currentWordWidth","chWidth","inWord","DEFAULT_RICH_TEXT_COLOR","DEFAULT_STROKE_LINE_WIDTH","DEFAULT_TEXT_ANIMATION_PROPS","fontSize","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","lineXLeft","lineXRight","_placeToken","parentBgColorDrawn","textWidth","textHeight","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","shadowStyle","makeFont","fontFamily","fontWeight","fontStyle","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","clockwise","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$2","IsogonShape","Isogon","dStep","deg","RingShape","r0","Ring","sin$1","cos$1","radian","RoseShape","Rose","SectorShape","Sector","PI$3","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","dim","proj","proj_1","useVML","painterCtors","instances","delInstance","totalLum","ZRender","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","handerProxy","getViewportRoot","_flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","flush","triggerRendered","refreshHoverImmediately","addHover","removeHover","clearHover","clearAnimation","pathToImage","eventHandler","disposeAll","getInstance","registerPainter","zrender","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","asc","getPrecision","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","quantile","ascArr","reformIntervals","littleThan","curr","currClose","close_1","close","lg","numericToNumber","valFloat","isNumeric","number","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","validateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","item","idNum","obj1","obj2","key1","key2","idOrName","isValidIdOrName","isNameSpecified","componentModel","makeInternalComponentId","idSuffix","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","queryDataIndex","payload","dataIndexInside","dataIndex","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","defaultMainType","queryOptionMap","parsedKey","queryType","includeMainTypes","queryOption","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","MULTIPLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getAttribute","getTooltipRenderMode","renderModeOption","TYPE_DELIMITER","IS_CONTAINER","IS_EXTENDED_CLASS","parseClassType","componentType","main","typeArr","checkClassType","isExtendedClass","clz","enableClassExtend","rootClz","mandatoryMethods","$constructor","method","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","color$1","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","defaultValue","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","ecIns","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","dataIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","styleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getterType","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","arg","JSON","toISOString","err","EMPTY_OBJ","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","normal","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","targetElEmphasisState","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","textStyle","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","inheritColor","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","richTextStyle","setTokenTextStyle","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","fillColor","strokeColor","baseline","disableBox","getFont","gTextStyleModel","PATH_COLOR","tmpRichText","TextStyleMixin","getTextColor","isEmphasis","getTextRect","LINE_STYLE_KEY_MAP","getLineStyle","LineStyleMixin","getLineDash","lineType","dotSize","dashSize","ITEM_STYLE_KEY_MAP","getItemStyle","ItemStyleMixin","getBorderLineDash","Model","rest","mergeOption","_doGet","parsePath","hasPath","pathFinal","resolveParentPath","isEmpty","restoreData","isAnimationEnabled","pathArr","base","getUID","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","componentTypeMain","enableTopologicalTravel","entity","dependencyGetter","topologicalTravel","targetNameList","fullNameList","makeDepndencyGraph","graph","stack","noEntryList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","originalDeps","successor","removeEdgeAndAdd","removeEdge","succComponentType","entryCount","thisItem","createDependencyGraphItem","availableDeps","getAvailableDependencies","dependentName","predecessor","thatItem","dep","inheritDefaultOption","superOption","subOption","langEN","month","monthAbbr","dayOfWeek","dayOfWeekAbbr","legend","selector","toolbox","brush","title","polygon","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","q","dateGetterName","hoursGetterName","minutesGetterName","secondsGetterName","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","mathMax$3","mathMin$3","_customShapeMap","innerLabel","extendShape","extendPathFromString","extendPath","registerShape","ShapeClass","getShapeClass","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","img","boundingRect","aspect","mergePath$1","pathRect","subPixelOptimizeLine$1","param","subPixelOptimizeRect$1","subPixelOptimize$1","animateOrSetProps","animationType","animatableModel","isFrom","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","fadeOutDisplayable","removeElementWithFadeOut","doRemove","isElementRemoved","animateOrSetLabel","labelModel","defaultTextGetter","valueAnimationEnabled","precisionOption","precision_1","interpolateValues_1","rawValues_1","getRawValue","isRawValueNumber_1","info","getDimensionInfo","host_1","nextValue","interpolated","startValues","labelText","updateLabel","initLabel","getTransform","ancestor","mat","applyTransform$1","invert$1","transformDirection","direction","hBase","vBase","vertex","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","clipPointsByRect","clipRectByRect","targetRect","createIcon","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","graphic","Text","IncrementalDisplayable","addCommas","parts","toCamelCase","upperCaseFirst","group1","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","concatTooltipHtml","html","dontEncodeHtml","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","isTimeAxis","axisType","axisValue","axisIndex","$vars","alias","formatTplSimple","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","capitalFirst","windowOpen","link","blank","open","opener","href","format$1","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getLayoutRect","positionInfo","containerRect","containerHeight","verticalMargin","horizontalMargin","positionElement","hv","boundingMode","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","hvIdx","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","ctor","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","globalDefault","gradientColor","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","useUTC","inner$1","getNearestColorPalette","requestColorNum","paletteNum","ColorPaletteMixin","clearColorPalette","colorIdx","colorNameMap","getColorFromPalette","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","Source","sourceFormat","seriesLayoutBy","startIndex","dimensionsDefine","dimensionsDetectCount","encodeDefine","metaRawOption","seriesDataToSource","BE_ORDINAL","Must","Might","Not","innerGlobalModel","detectSourceFormat","resetSourceDefaulter","datasetMap","createSource","sourceData","thisMetaRawOption","dimInfo","determineSourceDimensions","sourceHeader","dimensions","makeEncodeDefine","inheritSourceMetaRawOption","thisNew","cloneSourceShallow","normalizeDimensionsOption","dataArrayRows","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","nameMap","displayName","exist","maxLoop","firstIndex","dimensions_1","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","dimName","dimType","dimDefItem","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","registerInternalOptionCreator","creator","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeReplaceMergeInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","internalField","seriesIndices","mergeTheme","seriesId","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","api","coordinateSystems","creater","getCoordinateSystems","register","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","timelineOpt","timeline","media","singleMedia","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","toObj","compatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","toolboxOpt","feature","featureOpt","tooltip","set$1","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","backwardCompat","seriesType","clipOverflow","clockWise","label","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","order","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","valueParserMap","ExternalSource","getDimensionInfoAll","getRawHeaderItem","retrieveItemValue","rawItem","convertDataValue","rawVal","createExternalSource","sourceHeaderCount","extSource","dimsByName","dimDef","dimDefExt","rawValueGetter","externalTransformMap","registerExternalTransform","externalTransform","typeParsed","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","transOption","isFinal","applySingleDataTransform","upSourceList","transType","resultList","print","printStrArr","datasetIndex","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSource","upSourceMgr","_createSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","upSourceList_1","upMgr","errMsg","doThrow","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","inner$2","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","getRawData","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","isRichText","formatArrayValue","vertially","dimItem","tooltipDims","setEachItem","otherDims","markName","dimHead","dimHeadStr","valStr","formatSingleValue","mapDimensionsAll","tooltipDimLen","isValueArr","visualDrawType","formattedValue","colorEl","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","tmpArr","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","CHANGABLE_METHODS","wrapMethod","onDataSelfChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$3","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","ORIGIN_METHOD","RATE","THROTTLE_TYPE","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","createOrUpdate","fnAttr","rate","throttleType","originFn","lastThrottleType","lastRate","inner$4","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","colorCallback","setVisual","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","ariaModel","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","getConfig","seriesLabels_1","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","RegExp","userConfig","PI$4","loadingDefault","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","overallProgress","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","splitLine","splitArea","minorSplitLine","crossStyle","subtextStyle","iconStyle","brushStyle","handleStyle","moveHandleStyle","fillerColor","dataBackground","selectedDataBackground","controlStyle","dayLabel","monthLabel","yearLabel","timeAxis","logAxis","valueAxis","categoryAxis","symbol","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","symbolSize","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","PI2$5","CMD$3","DEFAULT_SEARCH_SPACE","getCandidateAnchor","outPt","outDir","projectPointToArc","projectPointToLine","limitToEnds","dx1","dy1","lineLen","projectedLen","projectPointToRect","tmpPt","nearestPointOnRect","pt","nearestPointOnPath","minDist","pt0","pt1","pt2","dir2","updateLabelLinePoints","labelLineModel","labelLine","labelGuideConfig","textGuideLineConfig","searchSpace","candidates","anchorPoint","anchor","targetTransform","targetInversedTransform","candidate","limitTurnAngle","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","tan","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","newAngle","setLabelLineState","isNormal","styleObj","buildLabelLinePath","moveLen","midPoint0","midPoint2","midPoint1","setLabelLineStyle","labelIgnoreNormal","stateShow","isLabelIgnored","getLabelLineStatesModels","labelLineName","prepareLayoutList","defaultAttr","localRect","isAxisAligned","minMargin","globalRect","obb","priority","layoutOption","computedLayoutOption","axisAligned","shiftLayout","xyDim","sizeDim","minBound","maxBound","balanceShift","lastPos","adjusted","totalShifts","shiftList","first","last","minGap","maxGap","updateMinMaxGap","squeezeGaps","takeBoundsGap","squeezeWhenBailout","gapThisBound","gapOtherBound","moveDir","moveFromMaxGap","remained","maxSqeezePercent","gaps","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","labelAttr","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","__image","createPattern","repeat","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","setTransform","viewRect","isDisplayableCulled","isClipPathChanged","prevClipPaths","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","isLast","viewWidth","viewHeight","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","i_1","len_1","returnFalse","createDom","newDom","newDomStyle","Layer","motionBlur","lastFrameAlpha","virtual","__used","__drawIndex","__startIndex","__endIndex","domStyle","onselectstart","webkitUserSelect","userSelect","webkitTapHighlightColor","domBack","ctxBack","getElementCount","initContext","createBackBuffer","clearAll","clearColor","haveMotionBLur","clearRect","clearColorGradientOrPattern","__canvasGradient","__painter","fillRect","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","parseInt10","isLayerValid","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","_opts","_singleCanvas","rootStyle","innerHTML","zlevelList","layers","_width","_getSize","_height","_domRoot","rootCanvas","mainLayer","getType","isSingleCanvas","getViewportRootOffset","viewportRoot","paintAll","_redrawId","_paintList","_paintHoverList","_hoverlayer","getLayer","getHoverLayer","redrawId","_updateLayerStatus","_doPaintList","needsRefreshHover","_compositeManually","self_1","eachBuiltinLayer","layerList","zi","useTimer","now","startTime","firstEl","dTime","draw","insertLayer","layersMap","prevLayer","prevDom","insertBefore","eachLayer","getLayers","updatePrevLayer","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","removeChild","display","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","ctx_1","renderToCanvas","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","canvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","assert$1","each$3","isFunction$1","isObject$2","version$1","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_BRUSH","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","__ECHARTS__DEFAULT__RENDERER__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","getZr","notMerge","lazyUpdate","setTheme","getDevicePixelRatio","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","url","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","top_1","right_1","bottom_1","canvasList_1","dpr_1","instances$1","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","statusChanged","newObj","pendingActions","getDispatcher","dispatcher","dirtyList","updateZ","updateStates","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","oldStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","echartsProto","one","wrapped","args2","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","connect","disConnect","disconnect","dispose$1","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","_add","_update","_remove","execute","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","keyArr","keyGetterName","existence","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","otherDim","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","DataDimensionInfo","isObject$3","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getRawValueFromStore","getIndicesCtor","prepareChunks","getRawIndexWithoutIndices","getRawIndexWithIndices","normalizeDimensions","validateDimensions","cloneListForMapAndSample","cloneDimStore","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","chunkSize","dimLen","rawExtent","originalChunkCount","emptyDataItem","sourceIdx","chunkIndex","chunkOffset","dimRawExtent","dimensionInfoMap","idList","nameRepeatCount","nameDimIdx","_nameDimIdx","itemId","_idDimIdx","dimStorage","nameDim","nameDimChunk","getIndices","newIndices","thisCount","buffer","chunkStore","dimStore","_getFast","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","dimExtent","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","mapArray","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","dimension","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","name_2","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","excludeDimensions","allDimensions","originalStorage","originalDimStore","newDimStore","cloneChunk","originalChunk","childECData","thisECData","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","getExtent","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","OrdinalMeta","_needCollect","needCollect","_deduplication","deduplication","createByAxisModel","dedplication","getOrdinal","category","_getOrCreateMap","roundNumber","intervalScaleNiceTicks","splitNumber","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","dataNum","expandSize","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cartesian","baseAxis","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","axisExtent","bandWidth","getBandWidth","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","axisKey","stackId","doCalBarWidthAndOffset","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","size","valueDim","baseDim","stacked","isValueAxisH","isHorizontal","valueAxisStart","getValueAxisStart","baseValue","baseCoord","dataToPoint","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","toGlobalCoord","dataToCoord","bisect","TimeScale","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","tickValue","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","getNeedCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","getCategories","boundaryGap","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","AxisModelCommonMixin","getCoordSysModel","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","circle","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","createList","dataStack$1","createScale","mixinAxisModelCommonMethods","helper","EPSILON$3","isAroundEqual$1","contain$2","Region","geometries","cp","exterior","loopGeo","interiors","transformTo","newRegion","decode","json","UTF8Encoding","jsonCompressed","encodeScale","UTF8Scale","geometry","coordinates","decodePolygon","encodeOffsets","coordinate","c2","prevX","prevY","parseGeoJSON","nameProperty","featureObj","region","inner$5","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","makeCategoryLabelsActually","labels","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","formattedLabel","rawLabel","cache","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","containData","fixExtentWithBands","coordToData","pointToData","getTicksCoords","getTickModel","ticksCoords","tickVal","alignWithLabel","fixOnBandTicksCoords","getMinorTicksCoords","minorTickModel","minorTicksCoords","getViewLabels","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","parseGeoJson","ecUtil","GRAPHIC_KEYS","graphic$1","LineSeriesModel","legendHoverLink","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","getDefaultLabel","interpolatedValues","labelDims","vals","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","setSymbolScale","emphasisState","fadeOut","keepLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","newIdx","symbolEl","oldIdx","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","valueAxisDim","baseDataOffset","stackResultDim","dataDimsForPoint","getStackedOnPoint","dataCoordInfo","stackedData","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","idxAdd","idxMinus","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","scaleAndAdd$1","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawNonMono","drawMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","ECPolylineShape","ECPolyline","ECPolygonShape","ECPolygon","stackedOnPoints","bbox","stackedOnBBox","stackedOnSmooth","createGridClipPath","hasAnimation","getArea","createPolarClipPath","sectorArea","createClipPath","isPointsSame","points1","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","gradient","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","createLineClipPath","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","polyline","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolyline","_newPolygon","_stackedOnPoints","_points","_updateAnimation","lineJoin","shouldBolderOnEmphasis","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","layoutPoints","isLargeRender","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","axisTick","axisLabel","showMinLabel","showMaxLabel","primary","logBase","axisDefault","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","CartesianAxisModel","extraOption","categorySortInfo","PI$5","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labelRotation","rawCategoryData","itemLabelModel","rawCategoryItem","collect","axesInfo","seriesInvolved","coordSysAxesInfo","coordSysMap","collectAxesInfo","collectSeriesInfo","globalTooltipModel","globalAxisPointerModel","linksOption","linkGroups","axisPointerEnabled","coordSysKey","makeKey","axesInfoInCoordSys","coordSysModel","baseTooltipModel","getAxes","saveTooltipAxisInfo","getTooltipAxes","triggerAxis","cross","tooltipAxes","baseAxes","otherAxes","fromTooltip","triggerTooltip","axisPointerModel","axisPointerShow","isHandleTrigger","makeAxisPointerModel","snap","involveSeries","axisInfo","useHandle","linkGroup","groupIndex","getLinkGroupIndex","mapper","tooltipAxisPointerModel","volatileOption","field","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","fixValue","getAxisInfo","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$6","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","condVal","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","addAxis","cartesian2DDimensions","Cartesian2D","axisX","axisY","toLocalCoord","clampData","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","borderType","realtimeSort","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","isCoordinateSystemType","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$4","mathMin$4","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","removeOnRenderedListener","_updateDrawMode","coordinateSystemType","isReorder","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","isHorizontalOrRadial","animationModel","axis2DModel","_initSort","_onRendered","orderMap","_updateSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","__dataIndex","animateProperty","isRadial","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","hasLabelRotate","minShowLabelRadian","setNotShow","labelLineLen","labelLineLen2","midAngle","isLabelInside","notShowLabel","PiePiece","firstCreate","_updateLabel","labelTextEmphasisState","labelHoverModel","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$6","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels","ScatterSeriesModel","BOOST_SIZE_THRESHOLD","LargeSymbolPathShape","LargeSymbolPath","symbolProxy","symbolProxyShape","canBoost","softClipShape","findDataIndex","LargeSymbolDraw","_incremental","_setCommon","endIndex","byteOffset","_clearIncremental","isIncremental","extrudeShadow","ecData_1","ScatterView","_updateSymbolDraw","_getClipShape","clipArea","_nonShapeGraphicElements","compoundPath","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","existList","flattenedList","_flatten","elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","els","_elMap","_lastGraphicModel","graphicModel","_updateElements","_relocate","rootGroup","elOption","existEl","targetElParent","elOptionStyle","elOptionCleaned","getCleanedElOption","createEl","removeEl","__ecGraphicWidthOption","__ecGraphicHeightOption","setEventData","elOptions","apiWidth","apiHeight","parentEl","isParentRoot","__ecGraphicWidth","__ecGraphicHeight","containerInfo","bounding","graphicType","__ecGraphicId","existElParent","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","newType","existItem","findPointFromSeries","getTooltipPosition","isStacked","inner$7","axisTrigger","currTrigger","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputPayload","showValueMap","dataByCoordSys","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","noSnap","outputFinder","payloadInfo","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","getAxisTooltipData","nestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysType","coordSysMainType","dataByAxis","valueLabelOpt","seriesDataIndices","outputAxesInfo","valItem","tooltipOption","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","inner$8","each$4","initGlobalListeners","initialized","useHandler","doEnter","onLeave","dis","makeDispatchAction","dispatchTooltipFinally","pendings","showLen","showTip","hideLen","hideTip","actuallyPayload","unregister","AxisPointerView","triggerOn","inner$9","clone$3","bind$1","BaseAxisPointer","_dragging","_axisModel","_axisPointerModel","_lastValue","_lastStatus","_group","handle","_handle","makeElOption","graphicKey","_lastGraphicKey","moveAnimation","_moveAnimation","determineAnimation","createPointerEl","createLabelEl","doUpdateProps","updateProps$1","updatePointerEl","updateLabelEl","updateMandatoryProps","_renderHandle","isCategoryAxis","useSnap","pointerOption","pointerEl","labelEl","updateLabelShowHide","updateHandleTransform","handleModel","onmousemove","onmousedown","_onHandleDragMove","ondragend","_onHandleDragEnd","handleSize","_moveHandleToValue","getHandleTransProps","getHandleTransform","trans","_payloadInfo","lastProp","_doDispatchAxisPointer","cursorPoint","doClear","buildLabel","xy","xDimIndex","propsEqual","lastProps","equals_1","buildElStyle","axisPointerType","buildLabelElOption","labelPos","getValueLabel","paddings","confineInContainer","bgColor","params_1","axisDimension","seriesData","idxItem","getTransformedPosition","layoutInfo","buildCartesianSingleLabelElOption","textLayout","makeLineShape","makeRectShape","CartesianAxisPointer","otherExtent","pixelValue","elStyle","pointerShapeBuilder","currPosition","cursorOtherValue","tooltipOptions","getAxisDimIndex","shadow","AxisPointerModel","icon","TooltipModel","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","transitionDuration","enterable","each$5","toCamelCase$1","vendors","gCssText","mirrowPos","getFinalColor","finalNearPointColor","assembleArrow","arrowPosition","arrowPos","centerPos","styleCss","assembleTransition","transitionCurve","transitionText","vendorPrefix","assembleFont","assembleCssText","tooltipModel","isFirstShow","boxShadow","borderName","camelCase","makeStyleCoord","appendToBody","zrPainter","zrViewportRoot","body","viewportRootOffset","TooltipHTMLContent","_show","_styleCoord","_enterable","_firstShow","_appendToBody","_container","onmouseenter","_hideTimeout","_inContent","onmouseleave","hideLater","_hideDelay","currentStyle","nearPointColor","styleCoord","offsetHeight","pointerEvents","setContent","setEnterable","getSize","isShow","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","TooltipRichContent","markerRich","suffix","startId","endId","bind$2","each$6","parsePercent$3","proxyRect","TooltipView","_renderMode","tooltipContent","_newLine","_tooltipContent","_tooltipModel","_ecModel","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","makeDispatchAction$1","_ticket","_manuallyAxisShowTip","pointInfo","manuallyHideTip","tooltipCascadedModel","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleDefaultHTML","singleParamsList","singleTooltipModel","itemCoordSys","seriesDefaultHTML","valueLabel","axisValueLabel","seriesTooltip","newMarkers","firstLine","singleDefaultHTMLStr","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","tooltipTrigger","tooltipOrder","defaultHtml","asyncTicket","subTooltipModel","nearPoint","_getNearestPoint","cbTicket","tooltipDataParams","contentSize","vAlign","viewSize","boxLayoutPosition","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","lastItem","indexAxis","lastIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","getDefaultSelectorOptions","LegendModel","_updateSelector","_updateData","legendData","hasSelected","potentialData","availableNames","isPotential","_availableNames","unSelect","toggleSelected","allSelect","inverseSelect","getOrient","itemGap","itemWidth","itemHeight","inactiveColor","inactiveBorderColor","selectorLabel","selectorPosition","selectorItemGap","selectorButtonGap","legendSelectActionHandler","isToggleSelect","legendModel","isItemSelected","layout$2","boxLayoutParams","viewportSize","makeBackground","curry$1","each$7","Group$1","LegendView","newlineDisabled","_contentGroup","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","isFirstRender","resetInner","itemAlign","renderInner","mainRect","layoutInner","_backgroundEl","contentGroup","legendDrawnMap","selectMode","legendSymbolType","itemGroup","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","_createSelector","selectorGroup","createSelectorButton","selectorItem","onclick","emphasisLabelModel","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","legendIndex","__legendDataIndex","contentRect","contentPos","selectorRect","selectorPos","orientIdx","hw","yx","dataName","isUseHoverLayer","legendFilter","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","mergeAndNormalizeLayoutParams","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","horizontal","vertical","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","raw","Group$2","WH","XY","ScrollableLegendView","_currentIndex","_containerGroup","_controllerGroup","__rectSize","controllerGroup","pageIconSizeArr","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","processMaxSize","_layoutContentAndController","containerGroup","controllerRect","showController","_showController","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","to","legendId","canJump","pageText","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","itemRect","itemInfo","winStart","targetDataIndex","defaultIndex","legendDataIdx","TitleModel","subtext","subtarget","TitleView","titleModel","subtextStyleModel","subText","subTextEl","sublink","groupRect","alignStyle","fillLabel","inner$a","MarkerModel","createdBySelf","hostSeries","__hostSeries","markerOpt","markerModel","createMarkerModelFromSeries","getMarkerModelFromSeries","MarkPointModel","masterMarkerModel","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","markerType","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","numCalculate","coordArrValue","markerTypeCalculator","median","dataTransform","getAxisInfo$1","coordInfo","baseDataDim","valueDataDim","radiusAxis","angleAxis","valueIndex","dataDimToCoordDim","dataFilter$1","sum_1","count_1","inner$b","MarkerView","markerGroupMap","markKeep","drawGroup","seriesModelList","updateMarkerLayout","xPx","yPx","MarkPointView","markPointModel","mpModel","symbolDrawMap","createList$1","coordDimsInfos","dataOpt","MarkLineModel","straightLineProto","bezierCurveProto","StraightLineShape","CurveShape","isStraightLine","ECLinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","createSymbol$1","lineData","symbolSizeArr","createLine","setLinePoints","Line$1","_createLine","_updateCommonStl","getLinePath","blurLineStyle","selectLineStyle","lineState","lineStateStyle","stateStyle","labelNormalModel","__align","__verticalAlign","__position","__labelDistance","linePath","symbolFrom","symbolTo","invScale","fromPos","toPos","tangent","distanceX","distanceY","halfPercent","LineDraw","LineCtor","_LineCtor","lineDraw","oldLineData","_lineData","makeSeriesScope$1","_doUpdate","isEffectObject","lineNeedsDraw","newLineData","isPointNaN","pts","inner$c","markLineTransform","mlModel","itemArray","mlType","mlFrom","mlTo","normalizedItem","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","MarkLineView","markLineModel","mlData_1","fromData_1","toData_1","lineDrawMap","createList$2","fromData","toData","updateDataVisualAndLayout","fromSymbolSize","fromSymbol","toSymbolSize","toSymbol","optData","dimValueGetter$1","MarkAreaModel","inner$d","markAreaTransform","maModel","ltCoord","rbCoord","isInifinity$1","ifMarkAreaHasOnlyDim","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","MarkAreaView","markAreaModel","areaData_1","areaGroupMap","polygonGroup","areaData","createList$3","DATA_ZOOM_AXIS_DIMENSIONS","SERIES_COORDS","isCoordSupported","coordType","getAxisMainType","findEffectedDataZooms","axisRecords","effectedModels","effectedModelMap","dataZoomModel","addToEffected","foundNewLink","processSingle","isLinked","markAxisControlled","isLink","eachTargetAxis","axisIdxArr","collectReferCoordSysModelInfo","coordSysInfoWrap","infoList","infoMap","coordSysUid","axisModels","DataZoomAxisInfo","indexList","indexMap","axisCmptIdx","DataZoomModel","_autoThrottle","_noTarget","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","_doInit","realtime","_setDefaultThrottle","_updateRangeUse","_resetTarget","optionOrient","targetAxisIndexMap","_targetAxisInfoMap","hasAxisSpecified","_fillSpecifiedTargetAxis","_orient","_makeAutoOrientByTargetAxis","_fillAutoTargetAxisByOrient","refering","needAuto","setParallelAxis","gridModel_1","axModel","globalOption","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","noTarget","getFirstTargetAxisModel","firstAxisModel","getAxisProxy","getAxisModel","__dzAxisProxy","setRawRange","setCalculatedRange","getPercentRange","axisProxy","findRepresentativeAxisProxy","getDataPercentWindow","getValueRange","getDataValueWindow","firstProxy","axisDimList","hostedBy","getRangePropMode","filterMode","DataZoomView","SliderZoomModel","handleIcon","moveHandleSize","moveHandleIcon","showDetail","showDataShadow","zoomLock","brushSelect","sliderMove","handleEnds","handleIndex","minSpan","maxSpan","restrict","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","Rect$1","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","SliderZoomView","_onBrush","_onBrushEnd","_buildView","_updateView","thisGroup","_brushing","_resetLocation","_resetInterval","barGroup","sliderGroup","_renderDataShadow","_positionGroup","showMoveHandle","coordRect","_findCoordRect","ecSize","layoutParams","_location","_size","targetAxisModel","otherAxisInverse","_dataShadowInfo","_getViewExtent","clickPanel","_onClickPanel","_onBrushStart","_prepareDataShadowInfo","dataShadowSegs","getShadowDim","otherDataExtent","otherOffset","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","lastIsEmpty","otherCoord","createDataShadowGroup","isSelectedArea","getTargetSeriesModels","thisAxis","getOtherDim","thisDim","handles","handleLabels","filler","_onDragMove","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","_handleHeight","_handleWidth","handleColor","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","iconSize","moveZoneExpandSize","moveZone","ondragstart","_range","viewExtent","_handleEnds","_updateInterval","viewExtend","minMaxSpan","getMinMaxSpan","percentExtent","lastRange","nonRealtime","displaybles","handleInterval","handleHeight","segIntervals","segGroup","_updateDataInfo","labelTexts","dataInterval","calculateDataWindow","valueWindow","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelPrecision","valueStr","showOrHide","changed","_dispatchZoomAction","localPoint","_brushStart","_brushStartTime","brushRect","brushShape","brushEndTime","_updateBrushRect","mouseX","mouseY","brushStart","endPoint","dataZoomId","coordSysInfoList","each$8","asc$1","AxisProxy","_dimName","_axisIndex","_dataZoomModel","_valueWindow","_percentWindow","axisMainType","_minMaxSpan","_dataExtent","percentWindow","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","targetSeries","calculateDataExtent","_updateMinMaxSpan","dataWindow","_setAxisModel","filterData","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","percentSpan","valueSpan","eachAxisModel","proxyList","percentRange","valueRange","endValue","InsideZoomModel","disabled","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","ATTR","take","resourceKey","userKey","getStore","release","uKey","isTaken","RoamController","mousedownHandler","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","controlType","_opt","isDragging","isPinching","_pinching","setPointerChecker","pointerChecker","isAvailableBehavior","oldX","oldY","newX","newY","shouldZoom","shouldMove","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","scrollDelta","controller","behaviorToCheck","contollerEvent","settings","inner$e","apiInner","coordSysRecordMap","coordSysRecord","dataZoomInfoMap","dzReferCoordSysWrap","dzCoordSysInfo","createCoordSysRecord","dzReferCoordSysInfo","getRange","firstDzInfo","firstDzKey","disposeCoordSysRecord","controllerParams","mergeControllerParams","containsPoint","setViewInfoToCoordSysRecord","dzInfo","disposeCoordSysRecordIfNeeded","coordSysKeyArr","dzUid","typePriority","dataZoomInfo","oneType","InsideZoomView","pan","getRangeHandlers","scrollMove","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","pixel","makeMover","getPercentDelta","percentDelta","oldPoint","newPoint","radiusExtent","getRadiusAxis","angleExtent","getAngleAxis","pointToCoord","ToolboxFeature","registerFeature","getFeature","ToolboxModel","featureName","Feature","itemSize","showTitle","ToolboxView","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","featureModel","newTitle","isUserFeatureName","unusable","createIconPaths","setIconStatus","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconsMap","titlesMap","pathEmphasisState","__title","hoverStyle","defaultTextPosition","titleText","emphasisTextConfig","emphasisTextState","emphasisTextStyle","needPutOnTop","topOffset","SaveAsImage","MouseEvent","$a","download","evt","bubbles","cancelable","dispatchEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","blob","Blob","tab","write","INNER_STACK_KEYWORD","radioTypes","MagicType","availableIcons","seriesOptGenreator","generateNewSeriesTypes","newSeriesOpt","radio","seriesOptions","tiledLang","titleLang","isStack","currentType","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","assembleSeriesWithCategoryAxis","groups","tables","headers","columns","assembleOtherSeries","getContentFromModel","trim$1","isTSVFormat","itemSplitRegex","parseTSVContents","tsv","tsvLines","header","parseListContents","hasName","parseContents","blockMetaList","blocks","blockMeta","DataView","viewMain","textarea","optionToContent","contentToOption","htmlOrDom","readOnly","buttonContainer","buttonStyle","closeButton","refreshButton","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","tryMergeDataOption","originalData","newVal","newSeriesOptList","BRUSH_PANEL_GLOBAL","mathMin$5","mathMax$5","mathPow$2","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","sw","nw","se","DEFAULT_BRUSH_OPT","transformable","brushMode","removeOnClick","baseUID","BrushController","_covers","_handlers","_uid","pointerHandlers","enableBrush","brushOption","_mounted","_brushType","_doDisableBrush","brushType","_doEnableBrush","_enableGlobalPan","_brushOption","setPanels","panelOpts","panels_1","_panels","panelId","enableGlobalPan","_transform","updateCovers","coverConfigList","coverConfig","tmpIdPrefix","oldCovers","newCovers","creatingCover","_creatingCover","oldGetKey","getKey","addOrUpdate","cover","__brushOption","newBrushInternal","endCreating","createCover","updateCoverAfterCreation","unmount","clearCovers","coverRenderers","coverRenderer","getCoverRenderer","updateCoverShape","updateCommon","getPanelByPoint","localCursorPoint","panels","panel","pn","isTargetByCursor","getPanelByCover","covers","originalLength","trigger$1","areas","isEnd","shouldShowCover","getTrackEnds","createBaseRectCover","rectRangeConverter","edgeNameSequences","makeStyle","driftRect","nameSequence","updateBaseRect","localRange","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection1","getGlobalDirection2","pointsToRect","clipByPanel","formatRectRange","getTransform$1","localDirName","inverseMap","localDirNameSeq","dirNameSequence","rectRange","toRectRange","localDelta","toLocalDelta","dirName","ind","fromRectRange","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","_creatingPanel","thisBrushOption","eventParams","determineBrushType","coverBrushOption","getCreatingRange","defaultBrushType","handleDragEnd","getLineRenderer","returnInput","localTrack","ends","xyIndex","getLinearBrushOtherExtent","IRRELEVANT_EXCLUDES","onIrrelevantElement","targetCoordSysModel","makeRectPanelClipPath","normalizeRect","localPoints","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","BrushTargetManager","_targetInfoList","foundCpts","parseFinder$1","targetInfoBuilders","builder","include","setOutputRanges","matchOutputRanges","area","coordRange","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","setInputRanges","rangeOffset","getScales","makePanelOpts","getDefaultBrushType","getPanelRect","controlSeries","targetInfoList","areaPanelId","targetInfoMatchers","formatMinMax","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","panelRectBuilders","xAxisDeclared","yAxisDeclared","geoModels","geoModel","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","sizeOrigin","each$9","inner$f","newSnapshot","storedSnapshots","getStoreSnapshots","snapshot","clear$1","snapshots","SelectDataZoomModel","SelectDataZoomView","each$a","DATA_ZOOM_ID_BASE","DataZoomFeature","brushController","updateZoomBtnStatus","updateBackBtnStatus","handlers","eventParam","brushTargetManager","makeAxisFinder","setBatch","findDataZoom","minValueSpan","maxValueSpan","found","dzModel","has","nextActive","isZoomActive","dataZoomSelectActive","dzFeatureModel","xAxisId","yAxisId","zoomActive","dzOptions","finderResult","buildInternalOptions","axisIndexPropName","$fromToolbox","RestoreOption","createElementNS","CMD$4","NONE","mathRound","mathSin$3","mathCos$3","PI$6","PI2$7","degree","EPSILON$4","round4","isAroundZero$1","pathHasFill","pathHasStroke","reduceNumberString","toPrecision","svgEl","attrXLink","setAttributeNS","bindStyle","strokeWidth","strokeScale_1","pathDataToString","dataLength","nData","dThetaPositive","isCircle","unifiedTheta","wrapSVGBuildPath","__svgBuildPath","oldBuildPath_1","__svgPathStr","svgPath","__svgEl","svgImage","HTMLImageElement","__imageSrc","TEXT_ALIGN_TO_ANCHOR","adjustTextY$1","svgText","textSvgEl","textSvgElStyle","equals","newLen","oldLen","editLength","maxEditLength","bestPath","newPos","oldPos","extractCommon","added","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","clonePath","pushComponent","buildValues","commonCount","componentPos","componentLen","arrayDiff","MARK_UNUSED","MARK_USED","Definable","zrId","svgRoot","tagNames","markLabel","domName","nextId","_domName","_zrId","_svgRoot","_tagNames","_markLabel","getDefs","isForceCreating","defs","getElementsByTagName","defs_1","contains","doUpdate","onUpdate","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","that","markDomUsed","removeUnused","getSvgProxy","getSvgElement","isLinearGradient","isRadialGradient","GradientManager","addWithoutUpdate","svgElement","that_1","__dom","markUsed","updateDom","stop_1","hex","ClippathManager","isText","clipPathEl","domKey","svgProxy","cloneNode","_textDom","ShadowManager","_shadowDom","_shadowDomId","domChildArr","domChild","stdDx","stdDy","stdDeviation","parseInt10$1","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","createMethodNotSupport","svgDom","bgRoot","_gradientManager","_clipPathManager","_shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","_backgroundNode","bgNode","visibleList","listLen","newVisibleList","prevSvgElement","_getDefs","viewportStyle","encodeURIComponent","outerHTML","util"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function mergeAll(targetAndSources, overwrite) {\r\n var result = targetAndSources[0];\r\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\r\n result = merge(result, targetAndSources[i], overwrite);\r\n }\r\n return result;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function find(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n return arr[i];\r\n }\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function concatArray(a, b) {\r\n var newArray = new a.constructor(a.length + b.length);\r\n for (var i = 0; i < a.length; i++) {\r\n newArray[i] = a[i];\r\n }\r\n var offset = a.length;\r\n for (var i = 0; i < b.length; i++) {\r\n newArray[i + offset] = b[i];\r\n }\r\n return newArray;\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n var zrUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $override: $override,\n guid: guid,\n logError: logError,\n clone: clone,\n merge: merge,\n mergeAll: mergeAll,\n extend: extend,\n defaults: defaults,\n createCanvas: createCanvas,\n indexOf: indexOf,\n inherits: inherits,\n mixin: mixin,\n isArrayLike: isArrayLike,\n each: each,\n map: map,\n reduce: reduce,\n filter: filter,\n find: find,\n keys: keys,\n bind: bind,\n curry: curry,\n isArray: isArray,\n isFunction: isFunction,\n isString: isString,\n isStringSafe: isStringSafe,\n isNumber: isNumber,\n isObject: isObject,\n isBuiltInObject: isBuiltInObject,\n isTypedArray: isTypedArray,\n isDom: isDom,\n isGradientObject: isGradientObject,\n isPatternObject: isPatternObject,\n isRegExp: isRegExp,\n eqNaN: eqNaN,\n retrieve: retrieve,\n retrieve2: retrieve2,\n retrieve3: retrieve3,\n slice: slice,\n normalizeCssArray: normalizeCssArray,\n assert: assert,\n trim: trim,\n setAsPrimitive: setAsPrimitive,\n isPrimitive: isPrimitive,\n HashMap: HashMap,\n createHashMap: createHashMap,\n concatArray: concatArray,\n createObject: createObject,\n hasOwn: hasOwn,\n noop: noop\n });\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function set(out, a, b) {\r\n out[0] = a;\r\n out[1] = b;\r\n return out;\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n var length = len;\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n var lengthSquare = lenSquare;\r\n function mul(out, v1, v2) {\r\n out[0] = v1[0] * v2[0];\r\n out[1] = v1[1] * v2[1];\r\n return out;\r\n }\r\n function div(out, v1, v2) {\r\n out[0] = v1[0] / v2[0];\r\n out[1] = v1[1] / v2[1];\r\n return out;\r\n }\r\n function dot(v1, v2) {\r\n return v1[0] * v2[0] + v1[1] * v2[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function negate(out, v) {\r\n out[0] = -v[0];\r\n out[1] = -v[1];\r\n return out;\r\n }\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var vector = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create,\n copy: copy,\n clone: clone$1,\n set: set,\n add: add,\n scaleAndAdd: scaleAndAdd,\n sub: sub,\n len: len,\n length: length,\n lenSquare: lenSquare,\n lengthSquare: lengthSquare,\n mul: mul,\n div: div,\n dot: dot,\n scale: scale,\n normalize: normalize,\n distance: distance,\n dist: dist,\n distanceSquare: distanceSquare,\n distSquare: distSquare,\n negate: negate,\n lerp: lerp,\n applyTransform: applyTransform,\n min: min,\n max: max\n });\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len;) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n var _calcOut = [];\r\n function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\r\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\r\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\r\n }\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut$1 = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut$1, el, ex, ey)) {\r\n out.zrX = _calcOut$1[0];\r\n out.zrY = _calcOut$1[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\r\n function isMiddleOrRightButtonOnMouseUpDown(e) {\r\n return e.which === 2 || e.which === 3;\r\n }\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n while (el) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n if (el.__dirty) {\r\n el.update();\r\n }\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.markRedraw();\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n requestAnimationFrame = (typeof window !== 'undefined'\r\n && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame) || function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssAngle(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 360 ? 360 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function lerpNumber(a, b, p) {\r\n return a + (b - a) * p;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n if (str.charAt(0) === '#') {\r\n if (str.length === 4) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (str.length === 7) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === str.length) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function rgba2hsla(rgba) {\r\n if (!rgba) {\r\n return;\r\n }\r\n var R = rgba[0] / 255;\r\n var G = rgba[1] / 255;\r\n var B = rgba[2] / 255;\r\n var vMin = Math.min(R, G, B);\r\n var vMax = Math.max(R, G, B);\r\n var delta = vMax - vMin;\r\n var L = (vMax + vMin) / 2;\r\n var H;\r\n var S;\r\n if (delta === 0) {\r\n H = 0;\r\n S = 0;\r\n }\r\n else {\r\n if (L < 0.5) {\r\n S = delta / (vMax + vMin);\r\n }\r\n else {\r\n S = delta / (2 - vMax - vMin);\r\n }\r\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\r\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\r\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\r\n if (R === vMax) {\r\n H = deltaB - deltaG;\r\n }\r\n else if (G === vMax) {\r\n H = (1 / 3) + deltaR - deltaB;\r\n }\r\n else if (B === vMax) {\r\n H = (2 / 3) + deltaG - deltaR;\r\n }\r\n if (H < 0) {\r\n H += 1;\r\n }\r\n if (H > 1) {\r\n H -= 1;\r\n }\r\n }\r\n var hsla = [H * 360, S, L];\r\n if (rgba[3] != null) {\r\n hsla.push(rgba[3]);\r\n }\r\n return hsla;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function toHex(color) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\r\n }\r\n }\r\n function fastLerp(normalizedValue, colors, out) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n out = out || [];\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = colors[leftIndex];\r\n var rightColor = colors[rightIndex];\r\n var dv = value - leftIndex;\r\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\r\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\r\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\r\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\r\n return out;\r\n }\r\n var fastMapToColor = fastLerp;\r\n function lerp$1(normalizedValue, colors, fullOutput) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = parse(colors[leftIndex]);\r\n var rightColor = parse(colors[rightIndex]);\r\n var dv = value - leftIndex;\r\n var color = stringify([\r\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\r\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\r\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\r\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\r\n ], 'rgba');\r\n return fullOutput\r\n ? {\r\n color: color,\r\n leftIndex: leftIndex,\r\n rightIndex: rightIndex,\r\n value: value\r\n }\r\n : color;\r\n }\r\n var mapToColor = lerp$1;\r\n function modifyHSL(color, h, s, l) {\r\n var colorArr = parse(color);\r\n if (color) {\r\n colorArr = rgba2hsla(colorArr);\r\n h != null && (colorArr[0] = clampCssAngle(h));\r\n s != null && (colorArr[1] = parseCssFloat(s));\r\n l != null && (colorArr[2] = parseCssFloat(l));\r\n return stringify(hsla2rgba(colorArr), 'rgba');\r\n }\r\n }\r\n function modifyAlpha(color, alpha) {\r\n var colorArr = parse(color);\r\n if (colorArr && alpha != null) {\r\n colorArr[3] = clampCssFloat(alpha);\r\n return stringify(colorArr, 'rgba');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\r\n function random() {\r\n var r = Math.round(Math.random() * 255);\r\n var g = Math.round(Math.random() * 255);\r\n var b = Math.round(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\n\n var color = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse,\n lift: lift,\n toHex: toHex,\n fastLerp: fastLerp,\n fastMapToColor: fastMapToColor,\n lerp: lerp$1,\n mapToColor: mapToColor,\n modifyHSL: modifyHSL,\n modifyAlpha: modifyAlpha,\n stringify: stringify,\n lum: lum,\n random: random\n });\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.interpolable\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, this._additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + this._additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._doneList = [];\r\n this._onframeList = [];\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimators = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.during = function (callback) {\r\n this._onframeList.push(callback);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._tracks = null;\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n };\r\n Animator.prototype._getAdditiveTrack = function (trackName) {\r\n var additiveTrack;\r\n var additiveAnimators = this._additiveAnimators;\r\n if (additiveAnimators) {\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n var track = additiveAnimators[i].getTrack(trackName);\r\n if (track) {\r\n additiveTrack = track;\r\n }\r\n }\r\n }\r\n return additiveTrack;\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n var additiveAnimators = self._additiveAnimators;\r\n if (additiveAnimators) {\r\n var stillHasAdditiveAnimator = false;\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n if (additiveAnimators[i]._clip) {\r\n stillHasAdditiveAnimator = true;\r\n break;\r\n }\r\n }\r\n if (!stillHasAdditiveAnimator) {\r\n self._additiveAnimators = null;\r\n }\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n for (var i = 0; i < self._onframeList.length; i++) {\r\n self._onframeList[i](self._target, percent);\r\n }\r\n },\r\n ondestroy: function () {\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].setFinished();\r\n }\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n var animation = this.animation;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n if (animation) {\r\n animation.removeClip(clip);\r\n }\r\n this._clip = null;\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted && this.animation) {\r\n this.animation.removeClip(this._clip);\r\n this._clip = null;\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function () {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n if (this.stage.update) {\r\n this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n this.start();\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this._localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this._globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this._globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul$1(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\r\n function clone$2(a) {\r\n var b = create$1();\r\n copy$1(b, a);\r\n return b;\r\n }\n\n var matrix = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create$1,\n identity: identity,\n copy: copy$1,\n mul: mul$1,\n translate: translate,\n rotate: rotate,\n scale: scale$1,\n invert: invert,\n clone: clone$2\n });\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul$1(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul$1(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul$1(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio\r\n || (window.screen.deviceXDPI / window.screen.logicalXDPI)\r\n || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n this.updateInnerText();\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + 255 * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function () {\r\n this.useState(PRESERVED_NORMAL_STATE, false);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n zr && zr.wakeUp();\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var count = animators.length;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n }\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n if (animators.length > 0 && typeof cfg.during === 'function') {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i]\r\n .done(done)\r\n .start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0 || cfg.force) {\r\n var existsAnimators = animatable.animators;\r\n var existsAnimatorsOnSameTarget = [];\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n existsAnimatorsOnSameTarget.push(existsAnimators[i]);\r\n }\r\n }\r\n if (!additive && existsAnimatorsOnSameTarget.length) {\r\n for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\r\n var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this._getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n var delta = endAngle - startAngle;\r\n endAngle = startAngle + delta;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = 1 - data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, !!anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n if (i === 1) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var scaleX = (rx > ry) ? 1 : rx / ry;\r\n var scaleY = (rx > ry) ? ry / rx : 1;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse) {\r\n ctx.translate(cx, cy);\r\n ctx.rotate(psi);\r\n ctx.scale(scaleX, scaleY);\r\n ctx.arc(0, 0, r, startAngle, endAngle, anticlockwise);\r\n ctx.scale(1 / scaleX, 1 / scaleY);\r\n ctx.rotate(-psi);\r\n ctx.translate(-cx, -cy);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta % PI2$4 < 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (anticlockwise) {\r\n var tmp_1 = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp_1);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(data, lineWidth, isStroke, x, y) {\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i > 1) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathData, x, y) {\r\n return containPath(pathData, 0, false, x, y);\r\n }\r\n function containStroke$4(pathData, lineWidth, x, y) {\r\n return containPath(pathData, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.6) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke()) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n w = Math.max(w, this.strokeContainThreshold || 4);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathData = this.path.data;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathData, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathData, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath (path, m) {\r\n var data = path.data;\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < data.length;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\r\n function extendFromString(str, defaultOpts) {\r\n var innerOpts = createPathOptions(str, defaultOpts);\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.applyTransform = innerOpts.applyTransform;\r\n _this.buildPath = innerOpts.buildPath;\r\n return _this;\r\n }\r\n return Sub;\r\n }(SVGPath));\r\n return Sub;\r\n }\r\n function mergePath(pathEls, opts) {\r\n var pathList = [];\r\n var len = pathEls.length;\r\n for (var i = 0; i < len; i++) {\r\n var pathEl = pathEls[i];\r\n if (!pathEl.path) {\r\n pathEl.createPathProxy();\r\n }\r\n if (pathEl.shapeChanged()) {\r\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\r\n }\r\n pathList.push(pathEl.path);\r\n }\r\n var pathBundle = new Path(opts);\r\n pathBundle.createPathProxy();\r\n pathBundle.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.appendPath(pathList);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n };\r\n return pathBundle;\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline (points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier (points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top'\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n function parseXML(svg) {\r\n if (isString(svg)) {\r\n var parser = new DOMParser();\r\n svg = parser.parseFromString(svg, 'text/xml');\r\n }\r\n var svgNode = svg;\r\n if (svgNode.nodeType === 9) {\r\n svgNode = svgNode.firstChild;\r\n }\r\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\r\n svgNode = svgNode.nextSibling;\r\n }\r\n return svgNode;\r\n }\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: cb, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.opacity = retrieve2(style.opacity, 1);\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var shadowStyle = (rectEl || imgEl).style;\r\n shadowStyle.shadowBlur = style.shadowBlur || 0;\r\n shadowStyle.shadowColor = style.shadowColor || 'transparent';\r\n shadowStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n shadowStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$2 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$2 / n;\r\n var deg = -PI$2 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var SectorShape = (function () {\r\n function SectorShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SectorShape;\r\n }());\r\n var Sector = (function (_super) {\r\n __extends(Sector, _super);\r\n function Sector(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Sector.prototype.getDefaultShape = function () {\r\n return new SectorShape();\r\n };\r\n Sector.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r0 + x, unitY * r0 + y);\r\n ctx.lineTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n }\r\n ctx.closePath();\r\n };\r\n Sector.prototype.isZeroArea = function () {\r\n return this.shape.startAngle === this.shape.endAngle\r\n || this.shape.r === this.shape.r0;\r\n };\r\n return Sector;\r\n }(Path));\r\n Sector.prototype.type = 'sector';\n\n var PI$3 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$3 / n) / cos$2(PI$3 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n var instances = {};\r\n function delInstance(id) {\r\n delete instances[id];\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n var _this = this;\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: function () { return _this._flush(true); }\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this.refresh();\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this.refresh();\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update();\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n this._flush(false);\r\n };\r\n ZRender.prototype._flush = function (fromInside) {\r\n var triggerRendered;\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(fromInside);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered');\r\n }\r\n else {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > 10) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover) {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n instances[zr.id] = zr;\r\n return zr;\r\n }\r\n function dispose(zr) {\r\n zr.dispose();\r\n }\r\n function disposeAll() {\r\n for (var key in instances) {\r\n if (instances.hasOwnProperty(key)) {\r\n instances[key].dispose();\r\n }\r\n }\r\n instances = {};\r\n }\r\n function getInstance(id) {\r\n return instances[id];\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\r\n var version = '5.0.0-alpha.2';\n\n var zrender = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init,\n dispose: dispose,\n disposeAll: disposeAll,\n getInstance: getInstance,\n registerPainter: registerPainter,\n version: version\n });\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function asc(arr) {\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n return arr;\r\n }\r\n function getPrecision(val) {\r\n val = +val;\r\n if (isNaN(val)) {\r\n return 0;\r\n }\r\n var e = 1;\r\n var count = 0;\r\n while (Math.round(val * e) / e !== val) {\r\n e *= 10;\r\n count++;\r\n }\r\n return count;\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n var MAX_SAFE_INTEGER = 9007199254740991;\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function quantile(ascArr, p) {\r\n var H = (ascArr.length - 1) * p + 1;\r\n var h = Math.floor(H);\r\n var v = +ascArr[h - 1];\r\n var e = H - h;\r\n return e ? v + e * (ascArr[h] - v) : v;\r\n }\r\n function reformIntervals(list) {\r\n list.sort(function (a, b) {\r\n return littleThan(a, b, 0) ? -1 : 1;\r\n });\r\n var curr = -Infinity;\r\n var currClose = 1;\r\n for (var i = 0; i < list.length;) {\r\n var interval = list[i].interval;\r\n var close_1 = list[i].close;\r\n for (var lg = 0; lg < 2; lg++) {\r\n if (interval[lg] <= curr) {\r\n interval[lg] = curr;\r\n close_1[lg] = (!lg ? 1 - currClose : 1);\r\n }\r\n curr = interval[lg];\r\n currClose = close_1[lg];\r\n }\r\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\r\n list.splice(i, 1);\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return list;\r\n function littleThan(a, b, lg) {\r\n return a.interval[lg] < b.interval[lg]\r\n || (a.interval[lg] === b.interval[lg]\r\n && ((a.close[lg] - b.close[lg] === (!lg ? 1 : -1))\r\n || (!lg && littleThan(a, b, 1))));\r\n }\r\n }\r\n function numericToNumber(val) {\r\n var valFloat = parseFloat(val);\r\n return (valFloat == val\r\n && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0)) ? valFloat : NaN;\r\n }\r\n function isNumeric(val) {\r\n return !isNaN(numericToNumber(val));\r\n }\n\n var number = /*#__PURE__*/Object.freeze({\n __proto__: null,\n linearMap: linearMap,\n parsePercent: parsePercent$2,\n round: round$1,\n asc: asc,\n getPrecision: getPrecision,\n getPrecisionSafe: getPrecisionSafe,\n getPixelPrecision: getPixelPrecision,\n getPercentWithPrecision: getPercentWithPrecision,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,\n remRadian: remRadian,\n isRadianAroundZero: isRadianAroundZero,\n parseDate: parseDate,\n quantity: quantity,\n quantityExponent: quantityExponent,\n nice: nice,\n quantile: quantile,\n reformIntervals: reformIntervals,\n numericToNumber: numericToNumber,\n isNumeric: isNumeric\n });\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n cmptOption.id == null || validateIdOrName(cmptOption.id);\r\n cmptOption.name == null || validateIdOrName(cmptOption.name);\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n var nextIdx = 0;\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = obj1[attr];\r\n var key2 = obj2[attr];\r\n return key1 != null && key2 != null && key1 + '' === key2 + '';\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return val + '';\r\n }\r\n function validateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n assert(isValidIdOrName(idOrName), '`' + idOrName + '` is invalid id or name. Must be a string.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function makeInternalComponentId(idSuffix) {\r\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = Math.round(Math.random() * 5);\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (mainType !== defaultMainType && value == null)\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: mainType === defaultMainType,\r\n enableAll: true,\r\n enableNone: true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n var MULTIPLE_REFERRING = { useDefault: false, enableAll: true, enableNone: true };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\r\n function getTooltipRenderMode(renderModeOption) {\r\n if (renderModeOption === 'auto') {\r\n return env.domSupported ? 'html' : 'richText';\r\n }\r\n else {\r\n return renderModeOption || 'html';\r\n }\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper (properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color$1) {\r\n if (typeof color$1 !== 'string') {\r\n return color$1;\r\n }\r\n var liftedColor = liftedColorCache.get(color$1);\r\n if (!liftedColor) {\r\n liftedColor = lift(color$1, -0.1);\r\n liftedColorCache.put(color$1, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange) {\r\n if ((el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(ecIns) {\r\n var model = ecIns.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? ecIns.getViewOfSeriesModel(componentModel)\r\n : ecIns.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, ecIns, isBlur) {\r\n var ecModel = ecIns.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(ecIns);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = ecIns.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = ecIns.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, ecIns) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, ecIns, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, ecIns, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, ecIns) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n if (focus != null) {\r\n var ecData = getECData(el);\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var styleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getterType) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = model[getterType || styleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : val;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\n\n var EMPTY_OBJ = {};\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : null;\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n textContent = targetEl.getTextContent();\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n stateObj.ignore = !retrieve2(stateModel.getShallow('show'), showNormal);\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'opacity',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n if (!isAttached) {\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n }\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var lineWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (lineWidth != null) {\r\n textStyle.lineWidth = lineWidth;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n var style = getLineStyle(this, excludes);\r\n style.lineDash = this.getLineDash(style.lineWidth);\r\n return style;\r\n };\r\n LineStyleMixin.prototype.getLineDash = function (lineWidth) {\r\n if (lineWidth == null) {\r\n lineWidth = 1;\r\n }\r\n var lineType = this.get('type');\r\n var dotSize = Math.max(lineWidth, 2);\r\n var dashSize = lineWidth * 4;\r\n return (lineType === 'solid' || lineType == null)\r\n ? false\r\n : lineType === 'dashed'\r\n ? [dashSize, dashSize]\r\n : [dotSize, dotSize];\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n var style = getItemStyle(this, excludes, includes);\r\n var lineDash = this.getBorderLineDash();\r\n lineDash && (style.lineDash = lineDash);\r\n return style;\r\n };\r\n ItemStyleMixin.prototype.getBorderLineDash = function () {\r\n var lineType = this.get('borderType');\r\n return (lineType === 'solid' || lineType == null) ? null\r\n : (lineType === 'dashed' ? [5, 5] : [1, 1]);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var stack = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (stack.length) {\r\n var currComponentType = stack.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n throw new Error('Circle dependency may exists');\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n stack.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}:{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, lang, isUTC) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, lang, isUTC);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n var mathMax$3 = Math.max;\r\n var mathMin$3 = Math.min;\r\n var _customShapeMap = {};\r\n var innerLabel = makeInner();\r\n function extendShape(opts) {\r\n return Path.extend(opts);\r\n }\r\n var extendPathFromString = extendFromString;\r\n function extendPath(pathData, opts) {\r\n return extendPathFromString(pathData, opts);\r\n }\r\n function registerShape(name, ShapeClass) {\r\n _customShapeMap[name] = ShapeClass;\r\n }\r\n function getShapeClass(name) {\r\n if (_customShapeMap.hasOwnProperty(name)) {\r\n return _customShapeMap[name];\r\n }\r\n }\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n var mergePath$1 = mergePath;\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function subPixelOptimizeLine$1(param) {\r\n subPixelOptimizeLine(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n function subPixelOptimizeRect$1(param) {\r\n subPixelOptimizeRect(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n var subPixelOptimize$1 = subPixelOptimize;\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n duration = 200;\r\n animationEasing = 'cubicOut';\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n }\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(), el.attr(props), cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, function (percent) {\r\n during && during(percent);\r\n });\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function animateOrSetLabel(animationType, el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n var valueAnimationEnabled = labelModel && labelModel.get('valueAnimation');\r\n if (valueAnimationEnabled) {\r\n var precisionOption = labelModel.get('precision');\r\n var precision_1 = !precisionOption || precisionOption === 'auto'\r\n ? 0\r\n : precisionOption;\r\n var interpolateValues_1;\r\n var rawValues_1 = seriesModel.getRawValue(dataIndex);\r\n var isRawValueNumber_1 = false;\r\n if (typeof rawValues_1 === 'number') {\r\n isRawValueNumber_1 = true;\r\n interpolateValues_1 = rawValues_1;\r\n }\r\n else {\r\n interpolateValues_1 = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type !== 'ordinal') {\r\n interpolateValues_1.push(rawValues_1[i]);\r\n }\r\n }\r\n }\r\n var text = el.getTextContent();\r\n var host_1 = text && innerLabel(text);\r\n host_1 && (host_1.startValue = host_1.nextValue);\r\n var duration = animatableModel.get('animationDuration');\r\n if (!duration) {\r\n host_1.nextValue = interpolateValues_1;\r\n }\r\n var during = function (percent) {\r\n var text = el.getTextContent();\r\n if (!text || !host_1) {\r\n return;\r\n }\r\n var interpolated;\r\n if (isRawValueNumber_1) {\r\n var value = interpolateNumber(host_1.startValue || 0, interpolateValues_1, percent);\r\n interpolated = round$1(value, precision_1);\r\n }\r\n else {\r\n interpolated = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = rawValues_1[i];\r\n }\r\n else {\r\n var startValues = host_1.startValue;\r\n var value = startValues == null\r\n ? rawValues_1[i]\r\n : interpolateNumber(startValues && startValues[i] ? startValues[i] : 0, interpolateValues_1[i], percent);\r\n interpolated[i] = round$1(value), precision_1;\r\n }\r\n }\r\n }\r\n host_1.nextValue = interpolated;\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n labelFetcher: seriesModel,\r\n defaultText: defaultTextGetter\r\n ? defaultTextGetter(interpolated)\r\n : interpolated + ''\r\n }, { normal: labelModel }, interpolated);\r\n text.style.text = labelText.normal;\r\n text.dirty();\r\n };\r\n var props = {};\r\n animateOrSetProps(animationType, el, props, animatableModel, dataIndex, null, during);\r\n }\r\n }\r\n function updateLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('update', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function initLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('init', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function getTransform(target, ancestor) {\r\n var mat = identity([]);\r\n while (target && target !== ancestor) {\r\n mul$1(mat, target.getLocalTransform(), mat);\r\n target = target.parent;\r\n }\r\n return mat;\r\n }\r\n function applyTransform$1(target, transform, invert$1) {\r\n if (transform && !isArrayLike(transform)) {\r\n transform = Transformable.getLocalTransform(transform);\r\n }\r\n if (invert$1) {\r\n transform = invert([], transform);\r\n }\r\n return applyTransform([], target, transform);\r\n }\r\n function transformDirection(direction, transform, invert) {\r\n var hBase = (transform[4] === 0 || transform[5] === 0 || transform[0] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[0]);\r\n var vBase = (transform[4] === 0 || transform[5] === 0 || transform[2] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[2]);\r\n var vertex = [\r\n direction === 'left' ? -hBase : direction === 'right' ? hBase : 0,\r\n direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0\r\n ];\r\n vertex = applyTransform$1(vertex, transform, invert);\r\n return Math.abs(vertex[0]) > Math.abs(vertex[1])\r\n ? (vertex[0] > 0 ? 'right' : 'left')\r\n : (vertex[1] > 0 ? 'bottom' : 'top');\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\r\n function clipPointsByRect(points, rect) {\r\n return map(points, function (point) {\r\n var x = point[0];\r\n x = mathMax$3(x, rect.x);\r\n x = mathMin$3(x, rect.x + rect.width);\r\n var y = point[1];\r\n y = mathMax$3(y, rect.y);\r\n y = mathMin$3(y, rect.y + rect.height);\r\n return [x, y];\r\n });\r\n }\r\n function clipRectByRect(targetRect, rect) {\r\n var x = mathMax$3(targetRect.x, rect.x);\r\n var x2 = mathMin$3(targetRect.x + targetRect.width, rect.x + rect.width);\r\n var y = mathMax$3(targetRect.y, rect.y);\r\n var y2 = mathMin$3(targetRect.y + targetRect.height, rect.y + rect.height);\r\n if (x2 >= x && y2 >= y) {\r\n return {\r\n x: x,\r\n y: y,\r\n width: x2 - x,\r\n height: y2 - y\r\n };\r\n }\r\n }\r\n function createIcon(iconStr, opt, rect) {\r\n var innerOpts = extend({ rectHover: true }, opt);\r\n var style = innerOpts.style = { strokeNoScale: true };\r\n rect = rect || { x: -1, y: -1, width: 2, height: 2 };\r\n if (iconStr) {\r\n return iconStr.indexOf('image://') === 0\r\n ? (style.image = iconStr.slice(8),\r\n defaults(style, rect),\r\n new ZRImage(innerOpts))\r\n : (makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center'));\r\n }\r\n }\r\n function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\r\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\r\n var p = points[i];\r\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\r\n return true;\r\n }\r\n p2 = p;\r\n }\r\n }\r\n function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\r\n var mx = a2x - a1x;\r\n var my = a2y - a1y;\r\n var nx = b2x - b1x;\r\n var ny = b2y - b1y;\r\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\r\n if (nearZero(nmCrossProduct)) {\r\n return false;\r\n }\r\n var b1a1x = a1x - b1x;\r\n var b1a1y = a1y - b1y;\r\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\r\n if (q < 0 || q > 1) {\r\n return false;\r\n }\r\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\r\n if (p < 0 || p > 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function crossProduct2d(x1, y1, x2, y2) {\r\n return x1 * y2 - x2 * y1;\r\n }\r\n function nearZero(val) {\r\n return val <= (1e-6) && val >= -(1e-6);\r\n }\r\n registerShape('circle', Circle);\r\n registerShape('ellipse', Ellipse);\r\n registerShape('sector', Sector);\r\n registerShape('ring', Ring);\r\n registerShape('polygon', Polygon);\r\n registerShape('polyline', Polyline);\r\n registerShape('rect', Rect);\r\n registerShape('line', Line);\r\n registerShape('bezierCurve', BezierCurve);\r\n registerShape('arc', Arc);\n\n var graphic = /*#__PURE__*/Object.freeze({\n __proto__: null,\n extendShape: extendShape,\n extendPath: extendPath,\n registerShape: registerShape,\n getShapeClass: getShapeClass,\n makePath: makePath,\n makeImage: makeImage,\n mergePath: mergePath$1,\n resizePath: resizePath,\n subPixelOptimizeLine: subPixelOptimizeLine$1,\n subPixelOptimizeRect: subPixelOptimizeRect$1,\n subPixelOptimize: subPixelOptimize$1,\n updateProps: updateProps,\n initProps: initProps,\n removeElement: removeElement,\n removeElementWithFadeOut: removeElementWithFadeOut,\n isElementRemoved: isElementRemoved,\n updateLabel: updateLabel,\n initLabel: initLabel,\n getTransform: getTransform,\n applyTransform: applyTransform$1,\n transformDirection: transformDirection,\n groupTransition: groupTransition,\n clipPointsByRect: clipPointsByRect,\n clipRectByRect: clipRectByRect,\n createIcon: createIcon,\n linePolygonIntersect: linePolygonIntersect,\n lineLineIntersect: lineLineIntersect,\n Group: Group,\n Image: ZRImage,\n Text: ZRText,\n Circle: Circle,\n Ellipse: Ellipse,\n Sector: Sector,\n Ring: Ring,\n Polygon: Polygon,\n Polyline: Polyline,\n Rect: Rect,\n Line: Line,\n BezierCurve: BezierCurve,\n Arc: Arc,\n IncrementalDisplayable: IncrementalDisplayble,\n CompoundPath: CompoundPath,\n LinearGradient: LinearGradient,\n RadialGradient: RadialGradient,\n BoundingRect: BoundingRect,\n OrientedBoundingRect: OrientedBoundingRect,\n Point: Point,\n Path: Path\n });\n\n function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\r\n deprecateLog('getTextRect is deprecated.');\r\n var textEl = new ZRText({\r\n style: {\r\n text: text,\r\n font: font,\r\n align: align,\r\n verticalAlign: verticalAlign,\r\n padding: padding,\r\n rich: rich,\r\n overflow: truncate ? 'truncate' : null,\r\n lineHeight: lineHeight\r\n }\r\n });\r\n return textEl.getBoundingRect();\r\n }\n\n function addCommas(x) {\r\n if (isNaN(x)) {\r\n return '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n function toCamelCase(str, upperCaseFirst) {\r\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (upperCaseFirst && str) {\r\n str = str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n return str;\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': '''\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n function concatTooltipHtml(html, value, dontEncodeHtml) {\r\n return (dontEncodeHtml ? html : \"\" + encodeHTML(html) + \"\")\r\n + (value ? '' : '')\r\n + encodeHTML(value)\r\n + (value ? '' : '');\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var isTimeAxis = paramsList[0].axisType && paramsList[0].axisType.indexOf('time') >= 0;\r\n if (isTimeAxis) {\r\n var axisValue = paramsList[0].data[paramsList[0].axisIndex];\r\n var date = parseDate(axisValue);\r\n return format(date, tpl);\r\n }\r\n else {\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n }\r\n return tpl;\r\n }\r\n function formatTplSimple(tpl, param, encode) {\r\n each(param, function (value, key) {\r\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\r\n });\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n var markerId = opt.markerId || 'X';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? ''\r\n : '';\r\n }\r\n else {\r\n return {\r\n renderMode: renderMode,\r\n content: '{marker' + markerId + '|} ',\r\n style: {\r\n color: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\r\n function capitalFirst(str) {\r\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\r\n }\r\n function windowOpen(link, target) {\r\n if (target === '_blank' || target === 'blank') {\r\n var blank = window.open();\r\n blank.opener = null;\r\n blank.location.href = link;\r\n }\r\n else {\r\n window.open(link, target);\r\n }\r\n }\n\n var format$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addCommas: addCommas,\n toCamelCase: toCamelCase,\n normalizeCssArray: normalizeCssArray$1,\n encodeHTML: encodeHTML,\n concatTooltipHtml: concatTooltipHtml,\n formatTpl: formatTpl,\n formatTplSimple: formatTplSimple,\n getTooltipMarker: getTooltipMarker,\n formatTime: formatTime,\n capitalFirst: capitalFirst,\n windowOpen: windowOpen,\n truncateText: truncateText,\n getTextRect: getTextRect\n });\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var box = boxLayout;\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function positionElement(el, positionInfo, containerRect, margin, opt) {\r\n var h = !opt || !opt.hv || opt.hv[0];\r\n var v = !opt || !opt.hv || opt.hv[1];\r\n var boundingMode = opt && opt.boundingMode || 'all';\r\n if (!h && !v) {\r\n return;\r\n }\r\n var rect;\r\n if (boundingMode === 'raw') {\r\n rect = el.type === 'group'\r\n ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0)\r\n : el.getBoundingRect();\r\n }\r\n else {\r\n rect = el.getBoundingRect();\r\n if (el.needLocalTransform()) {\r\n var transform = el.getLocalTransform();\r\n rect = rect.clone();\r\n rect.applyTransform(transform);\r\n }\r\n }\r\n var layoutRect = getLayoutRect(defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin);\r\n var dx = h ? layoutRect.x - rect.x : 0;\r\n var dy = v ? layoutRect.y - rect.y : 0;\r\n if (boundingMode === 'raw') {\r\n el.x = dx;\r\n el.y = dy;\r\n }\r\n else {\r\n el.x += dx;\r\n el.y += dy;\r\n }\r\n el.markRedraw();\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#fac858',\r\n '#ee6666',\r\n '#73c0de',\r\n '#3ba272',\r\n '#fc8452',\r\n '#9a60b4',\r\n '#ea7ccc'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var inner$1 = makeInner();\r\n function getNearestColorPalette(colors, requestColorNum) {\r\n var paletteNum = colors.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (colors[i].length > requestColorNum) {\r\n return colors[i];\r\n }\r\n }\r\n return colors[paletteNum - 1];\r\n }\r\n var ColorPaletteMixin = (function () {\r\n function ColorPaletteMixin() {\r\n }\r\n ColorPaletteMixin.prototype.clearColorPalette = function () {\r\n inner$1(this).colorIdx = 0;\r\n inner$1(this).colorNameMap = {};\r\n };\r\n ColorPaletteMixin.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n scope = scope || this;\r\n var scopeFields = inner$1(scope);\r\n var colorIdx = scopeFields.colorIdx || 0;\r\n var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {};\r\n if (colorNameMap.hasOwnProperty(name)) {\r\n return colorNameMap[name];\r\n }\r\n var defaultColorPalette = normalizeToArray(this.get('color', true));\r\n var layeredColorPalette = this.get('colorLayer', true);\r\n var colorPalette = ((requestColorNum == null || !layeredColorPalette)\r\n ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum));\r\n colorPalette = colorPalette || defaultColorPalette;\r\n if (!colorPalette || !colorPalette.length) {\r\n return;\r\n }\r\n var color = colorPalette[colorIdx];\r\n if (name) {\r\n colorNameMap[name] = color;\r\n }\r\n scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\r\n return color;\r\n };\r\n return ColorPaletteMixin;\r\n }());\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var Source = (function () {\r\n function Source(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectCount = fields.dimensionsDetectCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n Source.seriesDataToSource = function (data) {\r\n return new Source({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n };\r\n return Source;\r\n }());\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var dimInfo = determineSourceDimensions(sourceData, sourceFormat, thisMetaRawOption.seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new Source({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: thisMetaRawOption.seriesLayoutBy,\r\n dimensionsDefine: dimInfo.dimensionsDefine,\r\n startIndex: dimInfo.startIndex,\r\n dimensionsDetectCount: dimInfo.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function inheritSourceMetaRawOption(opt) {\r\n return defaults(opt.thisNew, opt.parent);\r\n }\r\n function cloneSourceShallow(source) {\r\n return new Source({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectCount: source.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (item, index) {\r\n item = extend({}, isObject(item) ? item : { name: item });\r\n if (item.name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function registerInternalOptionCreator(mainType, creator) {\r\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\r\n internalOptionCreatorMap.set(mainType, creator);\r\n }\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeReplaceMergeInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeReplaceMergeInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (!newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.name === name; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n componentTypes.push(componentType);\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seriesIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap(idOrName);\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n validateIdOrName(idOrNameItem);\r\n keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n validateIdOrName(idOrName);\r\n return filter(cmpts, function (cmpt) { return cmpt && cmpt[attr] === idOrName + ''; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeReplaceMergeInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, ColorPaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getModel',\r\n 'getOption',\r\n 'getViewOfComponentModel',\r\n 'getViewOfSeriesModel',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var timelineOptions = [];\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var timelineOpt = rawOption.timeline;\r\n if (rawOption.baseOption) {\r\n baseOption = rawOption.baseOption;\r\n }\r\n if (timelineOpt || rawOption.options) {\r\n baseOption = baseOption || {};\r\n timelineOptions = (rawOption.options || []).slice();\r\n }\r\n if (rawOption.media) {\r\n baseOption = baseOption || {};\r\n var media = rawOption.media;\r\n each(media, function (singleMedia) {\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n if (!baseOption) {\r\n baseOption = rawOption;\r\n }\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOpt;\r\n }\r\n each([baseOption].concat(timelineOptions)\r\n .concat(map(mediaList, function (media) {\r\n return media.option;\r\n })), function (option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n });\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptions,\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function compatStyle (option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set$1(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function backwardCompat (option, isTheme) {\r\n compatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set$1(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack (ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !(sourceParam instanceof Source)\r\n ? Source.seriesDataToSource(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var offset = this._dimSize * idx;\r\n for (var i = 0; i < this._dimSize; i++) {\r\n out[i] = this._data[offset + i];\r\n }\r\n return out;\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var col = rawData[dimsDef[i].name];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\r\n var valueParserMap = createHashMap({\r\n 'number': function (val) {\r\n return parseFloat(val);\r\n },\r\n 'time': function (val) {\r\n return +parseDate(val);\r\n },\r\n 'trim': function (val) {\r\n return typeof val === 'string' ? trim(val) : val;\r\n }\r\n });\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfoAll = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawHeaderItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveItemValue = function (rawItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertDataValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(data, sourceFormat, dimsDef, sourceHeaderCount) {\r\n var extSource = new ExternalSource();\r\n extSource.data = data;\r\n extSource.sourceFormat = sourceFormat;\r\n extSource.sourceHeaderCount = sourceHeaderCount;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n assert(!hasOwn(dimsByName, name), 'dimension name \"' + name + '\" duplicated.');\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.getRawDataItem = bind(rawItemGetter, null, data, sourceHeaderCount, dimensions);\r\n extSource.getRawHeaderItem = function (dataIndex) {\r\n if (dataIndex < sourceHeaderCount) {\r\n return rawItemGetter(data, 0, dimensions, dataIndex);\r\n }\r\n };\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveItemValue = function (rawItem, dimIndex) {\r\n if (rawItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(rawItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.getDimensionInfoAll = bind(getDimensionInfoAll, null, dimensions);\r\n return extSource;\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function getDimensionInfoAll(dimensions) {\r\n return dimensions;\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n assert(type, 'Must have a `type` when `registerTransform`.');\r\n var typeParsed = type.split(':');\r\n assert(typeParsed.length === 2, 'Name must include namespace like \"ns:regression\".');\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n }\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n for (var i = 0, len = pipedTransOption.length; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n var isFinal = i === len - 1;\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, isFinal);\r\n if (!isFinal) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(rawTransOption, upSourceList, infoForPrint, isFinal) {\r\n assert(upSourceList.length, 'Must have at least one upstream dataset.');\r\n var transOption = rawTransOption;\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n assert(externalTransform, 'Can not find transform on type \"' + transType + '\".');\r\n var sourceList = map(upSourceList, function (source) {\r\n return createExternalSource(source.data, source.sourceFormat, source.dimensionsDefine, source.startIndex);\r\n });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n source: sourceList[0],\r\n sourceList: sourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (isFinal && transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n return [\r\n '--- datasetIndex: ' + infoForPrint.datasetIndex + '---',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions),\r\n '- transform result sourceHeader: ' + extSource.sourceHeader,\r\n '------'\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n assert(isObject(result), 'A transform should not return some empty results.');\r\n assert(isObject(result.data) || isArrayLike(result.data), 'Result data should be object or array in data transform.');\r\n var resultMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSourceList[0].metaRawOption,\r\n thisNew: {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: result.sourceHeader,\r\n dimensions: result.dimensions\r\n }\r\n });\r\n return createSource(result.data, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSource ? upSource.metaRawOption : null,\r\n thisNew: this._createSourceMetaRawOption()\r\n });\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._createSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n var sourceList;\r\n var upstreamSignList;\r\n if (transformOption) {\r\n var upSourceList_1 = [];\r\n upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n upSourceList_1.push(upMgr.getSource());\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n sourceList = applyDataTransform(transformOption, upSourceList_1, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n if (upMgrList.length !== 1) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n var upMgr = upMgrList[0];\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult);\r\n upstreamSignList = [upMgr._getVersionSign()];\r\n sourceList = [cloneSourceShallow(upSource)];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._createSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var inner$2 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$2(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$2(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$2(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$2(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$2(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$2(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var series = this;\r\n renderMode = renderMode || 'html';\r\n var newLine = renderMode === 'html' ? '' : '\\n';\r\n var isRichText = renderMode === 'richText';\r\n var markers = {};\r\n var markerId = 0;\r\n function formatArrayValue(value) {\r\n var vertially = reduce(value, function (vertially, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return vertially |= (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, 0);\r\n var result = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n var dimType = dimInfo.type;\r\n var markName = 'sub' + series.seriesIndex + 'at' + markerId;\r\n var dimHead = getTooltipMarker({\r\n color: colorStr,\r\n type: 'subItem',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content;\r\n var valStr = (vertially\r\n ? ''\r\n + dimHeadStr + encodeHTML(dimInfo.displayName || '-')\r\n + ''\r\n : '')\r\n + ''\r\n + encodeHTML(dimType === 'ordinal'\r\n ? val + ''\r\n : dimType === 'time'\r\n ? (multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val))\r\n : addCommas(val))\r\n + '';\r\n valStr && result.push(\"
\" + valStr + \"
\");\r\n if (isRichText) {\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n }\r\n }\r\n var newLine = vertially ? (isRichText ? '\\n' : '') : '';\r\n var content = newLine + result.join(newLine || '');\r\n return {\r\n renderMode: renderMode,\r\n content: content,\r\n style: markers\r\n };\r\n }\r\n function formatSingleValue(val) {\r\n return {\r\n renderMode: renderMode,\r\n content: encodeHTML(addCommas(val)),\r\n style: markers\r\n };\r\n }\r\n var data = this.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = this.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style[this.visualDrawType];\r\n var colorStr;\r\n if (isString(color)) {\r\n colorStr = color;\r\n }\r\n else if (color && color.colorStops) {\r\n colorStr = (color.colorStops[0] || {}).color;\r\n }\r\n colorStr = colorStr || 'transparent';\r\n var formattedValue = (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? formatArrayValue(value)\r\n : tooltipDimLen\r\n ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0]))\r\n : formatSingleValue(isValueArr ? value[0] : value);\r\n var content = isRichText\r\n ? formattedValue.content\r\n : (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? '
'\r\n + formattedValue.content + '
'\r\n : ''\r\n + formattedValue.content + '';\r\n var markName = series.seriesIndex + 'at' + markerId;\r\n var colorEl = getTooltipMarker({\r\n color: colorStr,\r\n type: 'item',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n var name = data.getName(dataIndex);\r\n var seriesName = this.name;\r\n if (!isNameSpecified(this)) {\r\n seriesName = '';\r\n }\r\n seriesName = seriesName\r\n ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ' ')\r\n : '';\r\n colorStr = isString(colorEl) ? colorEl : colorEl.content;\r\n var html = '';\r\n if (!isRichText) {\r\n seriesName = seriesName\r\n ? !multipleSeries\r\n ? \"
\" + seriesName + \"
\"\r\n : \"\" + seriesName + \"\"\r\n : '';\r\n html = !multipleSeries\r\n ? seriesName + (\"
\")\r\n + colorStr\r\n + (name\r\n ? \"\" + encodeHTML(name) + \"\" + content\r\n : content) + '
'\r\n : \"
\" + colorStr + seriesName + content + \"
\";\r\n }\r\n else {\r\n html = !multipleSeries\r\n ? seriesName + (seriesName ? '\\n' : '') + ''\r\n + colorStr\r\n + (name\r\n ? encodeHTML(name) + \": \" + content\r\n : content) + ''\r\n : \"\" + colorStr + seriesName + \": \" + content;\r\n }\r\n return { html: html, markers: markers };\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = ColorPaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, ColorPaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(data.CHANGABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataSelfChange, seriesModel));\r\n });\r\n }\r\n function onDataSelfChange(seriesModel) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd(this.count());\r\n }\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner () {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = fields.large;\r\n var originalProgressive = fields.progressiveRender;\r\n var large = fields.large = pipelineContext && pipelineContext.large;\r\n var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;\r\n return (!!((originalLarge ^ large) || (originalProgressive ^ progressive)) && 'reset');\r\n };\r\n }\n\n var inner$3 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$3(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$3(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n var ORIGIN_METHOD = '\\0__throttleOriginMethod';\r\n var RATE = '\\0__throttleRate';\r\n var THROTTLE_TYPE = '\\0__throttleType';\r\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\r\n function createOrUpdate(obj, fnAttr, rate, throttleType) {\r\n var fn = obj[fnAttr];\r\n if (!fn) {\r\n return;\r\n }\r\n var originFn = fn[ORIGIN_METHOD] || fn;\r\n var lastThrottleType = fn[THROTTLE_TYPE];\r\n var lastRate = fn[RATE];\r\n if (lastRate !== rate || lastThrottleType !== throttleType) {\r\n if (rate == null || !throttleType) {\r\n return (obj[fnAttr] = originFn);\r\n }\r\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\r\n fn[ORIGIN_METHOD] = originFn;\r\n fn[THROTTLE_TYPE] = throttleType;\r\n fn[RATE] = rate;\r\n }\r\n return fn;\r\n }\r\n function clear(obj, fnAttr) {\r\n var fn = obj[fnAttr];\r\n if (fn && fn[ORIGIN_METHOD]) {\r\n obj[fnAttr] = fn[ORIGIN_METHOD];\r\n }\r\n }\n\n var inner$4 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$4(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$4(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || (rawIdx + ''), colorScope, dataAll.count());\r\n }\r\n });\r\n });\r\n }\r\n };\n\n function aria (dom, ecModel) {\r\n var ariaModel = ecModel.getModel('aria');\r\n if (!ariaModel.get('show')) {\r\n return;\r\n }\r\n else if (ariaModel.get('description')) {\r\n dom.setAttribute('aria-label', ariaModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = 0;\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n ++seriesCnt;\r\n }, this);\r\n var maxDataCnt = ariaModel.get('data.maxCount') || 10;\r\n var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n ariaLabel = replace(getConfig('general.withTitle'), {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = getConfig('general.withoutTitle');\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? 'series.multiple.prefix'\r\n : 'series.single.prefix';\r\n ariaLabel += replace(getConfig(prefix), { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var seriesTpl = 'series.'\r\n + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\r\n seriesLabel = getConfig(seriesName\r\n ? seriesTpl + 'withName'\r\n : seriesTpl + 'withoutName');\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n window.data = data;\r\n if (data.count() > maxDataCnt) {\r\n seriesLabel += replace(getConfig('data.partialData'), {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += getConfig('data.allData');\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n dataLabels.push(replace(name_1\r\n ? getConfig('data.withName')\r\n : getConfig('data.withoutName'), {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n seriesLabel += dataLabels\r\n .join(getConfig('data.separator.middle'))\r\n + getConfig('data.separator.end');\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n ariaLabel += seriesLabels_1\r\n .join(getConfig('series.multiple.separator.middle'))\r\n + getConfig('series.multiple.separator.end');\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getConfig(path) {\r\n var userConfig = ariaModel.get(path);\r\n if (userConfig == null) {\r\n var pathArr = path.split('.');\r\n var result = ecModel.getLocale('aria');\r\n for (var i = 0; i < pathArr.length; ++i) {\r\n result = result[pathArr[i]];\r\n }\r\n return result;\r\n }\r\n else {\r\n return userConfig;\r\n }\r\n }\r\n function getTitle() {\r\n var title = ecModel.getModel('title').option;\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocale(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n var PI$4 = Math.PI;\r\n function loadingDefault (api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#5470c6',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$4 / 2,\r\n endAngle: -PI$4 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$4 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$4 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.ecInstance.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap\r\n || (stageHandlerRecord.seriesTaskMap = createHashMap());\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = seriesTaskMap.get(pipelineId)\r\n || seriesTaskMap.set(pipelineId, createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n task.dispose();\r\n seriesTaskMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap\r\n || createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = agentStubMap.get(pipelineId);\r\n if (!stub) {\r\n stub = agentStubMap.set(pipelineId, createTask({ reset: stubReset, onDirty: stubOnDirty }));\r\n overallTask.dirty();\r\n }\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n agentStubMap.each(function (stub, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n stub.dispose();\r\n overallTask.dirty();\r\n agentStubMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#B9B8CE';\r\n var backgroundColor = '#100C2A';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n color: '#484753'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\r\n }\r\n },\r\n minorSplitLine: {\r\n lineStyle: {\r\n color: '#20203B'\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#4992ff',\r\n '#7cffb2',\r\n '#fddd60',\r\n '#ff6e76',\r\n '#58d9f9',\r\n '#05c091',\r\n '#ff8a45',\r\n '#8d48e3',\r\n '#dd79ff'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: backgroundColor,\r\n axisPointer: {\r\n lineStyle: {\r\n color: '#817f91'\r\n },\r\n crossStyle: {\r\n color: '#817f91'\r\n },\r\n label: {\r\n color: '#fff'\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: '#EEF1FA'\r\n },\r\n subtextStyle: {\r\n color: '#B9B8CE'\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n normal: {\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n dataZoom: {\r\n borderColor: '#71708A',\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n brushStyle: {\r\n color: 'rgba(135,163,206,0.3)'\r\n },\r\n handleStyle: {\r\n color: '#353450',\r\n borderColor: '#C5CBE3'\r\n },\r\n moveHandleStyle: {\r\n color: '#B0B6C3',\r\n opacity: 0.3\r\n },\r\n fillerColor: 'rgba(135,163,206,0.2)',\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#91B7F2',\r\n color: '#4D587D'\r\n },\r\n moveHandleStyle: {\r\n color: '#636D9A',\r\n opacity: 0.7\r\n }\r\n },\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#71708A',\r\n width: 1\r\n },\r\n areaStyle: {\r\n color: '#71708A'\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#87A3CE'\r\n },\r\n areaStyle: {\r\n color: '#87A3CE'\r\n }\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n controlStyle: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n },\r\n calendar: {\r\n itemStyle: {\r\n color: backgroundColor\r\n },\r\n dayLabel: {\r\n color: contrastColor\r\n },\r\n monthLabel: {\r\n color: contrastColor\r\n },\r\n yearLabel: {\r\n color: contrastColor\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\n\n var PI2$5 = Math.PI * 2;\r\n var CMD$3 = PathProxy.CMD;\r\n var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\r\n function getCandidateAnchor(pos, distance, rect, outPt, outDir) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n switch (pos) {\r\n case 'top':\r\n outPt.set(rect.x + width / 2, rect.y - distance);\r\n outDir.set(0, -1);\r\n break;\r\n case 'bottom':\r\n outPt.set(rect.x + width / 2, rect.y + height + distance);\r\n outDir.set(0, 1);\r\n break;\r\n case 'left':\r\n outPt.set(rect.x - distance, rect.y + height / 2);\r\n outDir.set(-1, 0);\r\n break;\r\n case 'right':\r\n outPt.set(rect.x + width + distance, rect.y + height / 2);\r\n outDir.set(1, 0);\r\n break;\r\n }\r\n }\r\n function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n x /= d;\r\n y /= d;\r\n var ox = x * r + cx;\r\n var oy = y * r + cy;\r\n if (Math.abs(startAngle - endAngle) % PI2$5 < 1e-4) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$5;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$5;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$5 >= startAngle && angle + PI2$5 <= endAngle)) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n var x1 = r * Math.cos(startAngle) + cx;\r\n var y1 = r * Math.sin(startAngle) + cy;\r\n var x2 = r * Math.cos(endAngle) + cx;\r\n var y2 = r * Math.sin(endAngle) + cy;\r\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\r\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\r\n if (d1 < d2) {\r\n out[0] = x1;\r\n out[1] = y1;\r\n return Math.sqrt(d1);\r\n }\r\n else {\r\n out[0] = x2;\r\n out[1] = y2;\r\n return Math.sqrt(d2);\r\n }\r\n }\r\n function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\r\n var dx = x - x1;\r\n var dy = y - y1;\r\n var dx1 = x2 - x1;\r\n var dy1 = y2 - y1;\r\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n dx1 /= lineLen;\r\n dy1 /= lineLen;\r\n var projectedLen = dx * dx1 + dy * dy1;\r\n var t = projectedLen / lineLen;\r\n if (limitToEnds) {\r\n t = Math.min(Math.max(t, 0), 1);\r\n }\r\n t *= lineLen;\r\n var ox = out[0] = x1 + t * dx1;\r\n var oy = out[1] = y1 + t * dy1;\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n function projectPointToRect(x1, y1, width, height, x, y, out) {\r\n if (width < 0) {\r\n x1 = x1 + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y1 = y1 + height;\r\n height = -height;\r\n }\r\n var x2 = x1 + width;\r\n var y2 = y1 + height;\r\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\r\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n var tmpPt = [];\r\n function nearestPointOnRect(pt, rect, out) {\r\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\r\n out.set(tmpPt[0], tmpPt[1]);\r\n return dist;\r\n }\r\n function nearestPointOnPath(pt, path, out) {\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n var minDist = Infinity;\r\n var data = path.data;\r\n var x = pt.x;\r\n var y = pt.y;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var d = minDist;\r\n switch (cmd) {\r\n case CMD$3.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$3.L:\r\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.C:\r\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.Q:\r\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i <= 1) {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\r\n break;\r\n case CMD$3.Z:\r\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n if (d < minDist) {\r\n minDist = d;\r\n out.set(tmpPt[0], tmpPt[1]);\r\n }\r\n }\r\n return minDist;\r\n }\r\n var pt0 = new Point();\r\n var pt1 = new Point();\r\n var pt2 = new Point();\r\n var dir = new Point();\r\n var dir2 = new Point();\r\n function updateLabelLinePoints(target, labelLineModel) {\r\n if (!target) {\r\n return;\r\n }\r\n var labelLine = target.getTextGuideLine();\r\n var label = target.getTextContent();\r\n if (!(label && labelLine)) {\r\n return;\r\n }\r\n var labelGuideConfig = target.textGuideLineConfig || {};\r\n var points = [[0, 0], [0, 0], [0, 0]];\r\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\r\n var labelRect = label.getBoundingRect().clone();\r\n labelRect.applyTransform(label.getComputedTransform());\r\n var minDist = Infinity;\r\n var anchorPoint = labelGuideConfig && labelGuideConfig.anchor;\r\n var targetTransform = target.getComputedTransform();\r\n var targetInversedTransform = targetTransform && invert([], targetTransform);\r\n var len = labelLineModel.get('length2') || 0;\r\n if (anchorPoint) {\r\n pt2.copy(anchorPoint);\r\n }\r\n for (var i = 0; i < searchSpace.length; i++) {\r\n var candidate = searchSpace[i];\r\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\r\n Point.scaleAndAdd(pt1, pt0, dir, len);\r\n pt1.transform(targetInversedTransform);\r\n var boundingRect = target.getBoundingRect();\r\n var dist = anchorPoint ? anchorPoint.distance(pt1)\r\n : (target instanceof Path\r\n ? nearestPointOnPath(pt1, target.path, pt2)\r\n : nearestPointOnRect(pt1, boundingRect, pt2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n pt1.transform(targetTransform);\r\n pt2.transform(targetTransform);\r\n pt2.toArray(points[0]);\r\n pt1.toArray(points[1]);\r\n pt0.toArray(points[2]);\r\n }\r\n }\r\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\r\n labelLine.setShape({ points: points });\r\n }\r\n var tmpArr = [];\r\n var tmpProjPoint = new Point();\r\n function limitTurnAngle(linePoints, minTurnAngle) {\r\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\r\n return;\r\n }\r\n minTurnAngle = minTurnAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt0, pt1);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(dir2);\r\n var minTurnAngleCos = Math.cos(minTurnAngle);\r\n if (minTurnAngleCos < angleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\r\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\r\n return;\r\n }\r\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt1, pt0);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(surfaceNormal);\r\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\r\n if (angleCos < maxSurfaceAngleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n label.hide();\r\n labelLine && labelLine.hide();\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var labelAttr = labelItem.defaultAttr;\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelAttr.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n rect: labelRect,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null && !textEl.disableLabelLayout) {\r\n _this._addLabel(dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n var itemModel = data.getItemModel(labelItem.dataIndex);\r\n label.on('drag', createDragHandler(hostEl, itemModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftX';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftY';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel);\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n var ecModel = ecIns.getModel();\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n return ctx.createPattern(image, pattern.repeat || 'repeat');\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = style.width;\r\n var height = style.height;\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n }\r\n ctx.setLineDash(lineDash || []);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (el.invisible\r\n || el.style.opacity === 0\r\n || (el.culling && isDisplayableCulled(el, scope.viewWidth, scope.viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n el.__dirty = 0;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length - 1; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.__dirty = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n ctx.clearRect(0, 0, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(0, 0, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n var domBack = this.domBack;\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, 0, 0, width, height);\r\n ctx.restore();\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, paintAll, redrawId);\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, paintAll) {\r\n var layerList = [];\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n for (var k = 0; k < layerList.length; k++) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this._zlevelList[0]\r\n ? this._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i = void 0;\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n brush(ctx, el, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n ctx.restore();\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version$1 = '5.0.0-alpha.2';\r\n var dependencies = {\r\n zrender: '5.0.0-alpha.2'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var defaultRenderer = 'canvas';\r\n if (__DEV__) {\r\n defaultRenderer = (typeof window === 'undefined' ? global : window).__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && backwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances$1, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '' + item.dom + '';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n var ecData = el && getECData(el);\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n }\r\n else if (el && ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances$1[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap(normalizeToArray(excludeSeriesId));\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (payload.statusChanged) {\r\n markStatusToUpdate(this);\r\n }\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n function getDispatcher(target, det) {\r\n while (target && !det(target)) {\r\n if (target.__hostTarget) {\r\n target = target.__hostTarget;\r\n }\r\n else {\r\n target = target.parent;\r\n }\r\n }\r\n return target;\r\n }\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateZ(seriesModel, chartView);\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n aria(ecIns._zr.dom, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 1;\r\n }\r\n if (labelLine) {\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 - 1;\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances$1, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances$1 = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances$1[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose$1(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances$1[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances$1[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances$1[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerPreprocessor(backwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', loadingDefault);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n var i;\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (i = 0; i < oldArr.length; i++) {\r\n var key = oldDataKeyArr[i];\r\n var idx = newDataIndexMap[key];\r\n if (idx != null) {\r\n var len = idx.length;\r\n if (len) {\r\n len === 1 && (newDataIndexMap[key] = null);\r\n idx = idx.shift();\r\n }\r\n else {\r\n newDataIndexMap[key] = null;\r\n }\r\n this._update && this._update(idx, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n for (i = 0; i < newDataKeyArr.length; i++) {\r\n var key = newDataKeyArr[i];\r\n if (newDataIndexMap.hasOwnProperty(key)) {\r\n var idx = newDataIndexMap[key];\r\n if (idx == null) {\r\n continue;\r\n }\r\n if (!idx.length) {\r\n this._add && this._add(idx);\r\n }\r\n else {\r\n for (var j = 0, len = idx.length; j < len; j++) {\r\n this._add && this._add(idx[j]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n var existence = map[key];\r\n if (existence == null) {\r\n keyArr.push(key);\r\n map[key] = i;\r\n }\r\n else {\r\n if (!existence.length) {\r\n map[key] = existence = [existence];\r\n }\r\n existence.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var isObject$3 = isObject;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getRawValueFromStore;\r\n var getIndicesCtor;\r\n var prepareChunks;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var cloneDimStore;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._chunkSize = 1e5;\r\n this._chunkCount = 0;\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = data instanceof Source || isArrayLike(data);\r\n if (notProvider) {\r\n data = new DefaultDataProvider(data, this.dimensions.length);\r\n }\r\n if (__DEV__) {\r\n if (!notProvider\r\n && (typeof data.getItem !== 'function' || typeof data.count !== 'function')) {\r\n throw new Error('Inavlid data provider.');\r\n }\r\n }\r\n this._rawData = data;\r\n this._storage = {};\r\n this._indices = null;\r\n this._nameList = nameList || [];\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, data.count());\r\n if (data.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var chunkSize = this._chunkSize;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, this._dimensionInfos[dim], chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var emptyDataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, k);\r\n storage[dim][chunkIndex][chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var chunkSize = this._chunkSize;\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var nameRepeatCount = this._nameRepeatCount = {};\r\n var nameDimIdx;\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n var dimInfo = dimensionInfoMap[dim];\r\n if (dimInfo.otherDims.itemName === 0) {\r\n nameDimIdx = this._nameDimIdx = i;\r\n }\r\n if (dimInfo.otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, dimInfo, chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var dataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var dimStorage = storage[dim][chunkIndex];\r\n var val = this._dimValueGetter(dataItem, dim, idx, k);\r\n dimStorage[chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (!rawData.pure) {\r\n var name_1 = nameList[idx];\r\n if (dataItem && name_1 == null) {\r\n if (dataItem.name != null) {\r\n nameList[idx] = name_1 = dataItem.name;\r\n }\r\n else if (nameDimIdx != null) {\r\n var nameDim = dimensions[nameDimIdx];\r\n var nameDimChunk = storage[nameDim][chunkIndex];\r\n if (nameDimChunk) {\r\n name_1 = nameDimChunk[chunkOffset];\r\n var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n name_1 = ordinalMeta.categories[name_1];\r\n }\r\n }\r\n }\r\n }\r\n var id = dataItem == null ? null : dataItem.id;\r\n if (id == null && name_1 != null) {\r\n nameRepeatCount[name_1] = nameRepeatCount[name_1] || 0;\r\n id = name_1;\r\n if (nameRepeatCount[name_1] > 0) {\r\n id += '__ec__' + nameRepeatCount[name_1];\r\n }\r\n nameRepeatCount[name_1]++;\r\n }\r\n id != null && (idList[idx] = id);\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var storage = this._storage;\r\n if (!storage[dim]) {\r\n return NaN;\r\n }\r\n idx = this.getRawIndex(idx);\r\n var chunkIndex = Math.floor(idx / this._chunkSize);\r\n var chunkOffset = idx % this._chunkSize;\r\n var chunkStore = storage[dim][chunkIndex];\r\n var value = chunkStore[chunkOffset];\r\n return value;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n if (!dimStore) {\r\n return NaN;\r\n }\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = dimStore[chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype._getFast = function (dim, rawIdx) {\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = this._storage[dim][chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var value = this._getFast(dim, this.getRawIndex(i));\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var diff = value - this.get(dim, i);\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n return this._nameList[rawIndex]\r\n || getRawValueFromStore(this, this._nameDimIdx, rawIndex)\r\n || '';\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n for (var i = 0; i < this.count(); i++) {\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, this.get(dimNames[0], i), i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, this.get(dimNames[0], i), this.get(dimNames[1], i), i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = this.get(dimNames[k], i);\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dim0 = dimNames[0];\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = this._getFast(dim0, rawIdx);\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = this._getFast(dim0, rawIdx);\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n if (!this._count) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = this._storage[dimensions[0]];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = this._storage[dim0];\r\n var dimStorage2 = this._storage[dimensions[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var chunkStorage2 = dimStorage2[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n var val2 = chunkStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = this._getFast(dim0, rawIndex);\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = this._getFast(dimk, rawIndex);\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var storage = list._storage;\r\n var tmpRetValue = [];\r\n var chunkSize = this._chunkSize;\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[chunkIndex][chunkOffset] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = Math.floor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var chunkSize = this._chunkSize;\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n var originalChunkIndex = Math.floor(dataIdx / chunkSize);\r\n var originalChunkOffset = dataIdx % chunkSize;\r\n frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize);\r\n var sampleChunkOffset = sampleFrameIdx % chunkSize;\r\n dimStore[sampleChunkIndex][sampleChunkOffset] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (!val) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_2 in key) {\r\n if (key.hasOwnProperty(name_2)) {\r\n this.setLayout(name_2, key[name_2]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getRawValueFromStore = function (list, dimIndex, rawIndex) {\r\n var val;\r\n if (dimIndex != null) {\r\n var chunkSize = list._chunkSize;\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n var dim = list.dimensions[dimIndex];\r\n var chunk = list._storage[dim][chunkIndex];\r\n if (chunk) {\r\n val = chunk[chunkOffset];\r\n var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n }\r\n return val;\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareChunks = function (storage, dimInfo, chunkSize, chunkCount, end) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var lastChunkIndex = chunkCount - 1;\r\n var dim = dimInfo.name;\r\n var resizeChunkArray = storage[dim][lastChunkIndex];\r\n if (resizeChunkArray && resizeChunkArray.length < chunkSize) {\r\n var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize));\r\n for (var j = 0; j < resizeChunkArray.length; j++) {\r\n newStore[j] = resizeChunkArray[j];\r\n }\r\n storage[dim][lastChunkIndex] = newStore;\r\n }\r\n for (var k = chunkCount * chunkSize; k < end; k += chunkSize) {\r\n storage[dim].push(new DataCtor(Math.min(end - k, chunkSize)));\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null) {\r\n id = getRawValueFromStore(list, list._idDimIdx, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = [dimensions];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneDimStore(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n cloneDimStore = function (originalDimStore) {\r\n var newDimStore = new Array(originalDimStore.length);\r\n for (var j = 0; j < originalDimStore.length; j++) {\r\n newDimStore[j] = cloneChunk(originalDimStore[j]);\r\n }\r\n return newDimStore;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions (source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n result.firstCategoryDimIndex = index;\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta || isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({ categories: ordinalMeta });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC);\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\r\n var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n function createList(seriesModel) {\r\n return createListFromArray(seriesModel.getSource(), seriesModel);\r\n }\r\n var dataStack$1 = {\r\n isDimensionStacked: isDimensionStacked,\r\n enableDataStack: enableDataStack,\r\n getStackedDimension: getStackedDimension\r\n };\r\n function createScale(dataExtent, option) {\r\n var axisModel = option;\r\n if (!(option instanceof Model)) {\r\n axisModel = new Model(option);\r\n }\r\n var scale = createScaleByModel(axisModel);\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n niceScaleExtent(scale, axisModel);\r\n return scale;\r\n }\r\n function mixinAxisModelCommonMethods(Model) {\r\n mixin(Model, AxisModelCommonMixin);\r\n }\n\n var helper = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createList: createList,\n getLayoutRect: getLayoutRect,\n dataStack: dataStack$1,\n createScale: createScale,\n mixinAxisModelCommonMethods: mixinAxisModelCommonMethods,\n createDimensions: createDimensions,\n createSymbol: createSymbol\n });\n\n var EPSILON$3 = 1e-8;\r\n function isAroundEqual$1(a, b) {\r\n return Math.abs(a - b) < EPSILON$3;\r\n }\r\n function contain$2(points, x, y) {\r\n var w = 0;\r\n var p = points[0];\r\n if (!p) {\r\n return false;\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n var p2 = points[i];\r\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\r\n p = p2;\r\n }\r\n var p0 = points[0];\r\n if (!isAroundEqual$1(p[0], p0[0]) || !isAroundEqual$1(p[1], p0[1])) {\r\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\r\n }\r\n return w !== 0;\r\n }\n\n var Region = (function () {\r\n function Region(name, geometries, cp) {\r\n this.name = name;\r\n this.geometries = geometries;\r\n if (!cp) {\r\n var rect = this.getBoundingRect();\r\n cp = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n else {\r\n cp = [cp[0], cp[1]];\r\n }\r\n this.center = cp;\r\n }\r\n Region.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n if (rect) {\r\n return rect;\r\n }\r\n var MAX_NUMBER = Number.MAX_VALUE;\r\n var min$1 = [MAX_NUMBER, MAX_NUMBER];\r\n var max$1 = [-MAX_NUMBER, -MAX_NUMBER];\r\n var min2 = [];\r\n var max2 = [];\r\n var geometries = this.geometries;\r\n var i = 0;\r\n for (; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n fromPoints(exterior, min2, max2);\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return (this._rect = new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]));\r\n };\r\n Region.prototype.contain = function (coord) {\r\n var rect = this.getBoundingRect();\r\n var geometries = this.geometries;\r\n if (!rect.contain(coord[0], coord[1])) {\r\n return false;\r\n }\r\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n if (contain$2(exterior, coord[0], coord[1])) {\r\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\r\n if (contain$2(interiors[k], coord[0], coord[1])) {\r\n continue loopGeo;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Region.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var aspect = rect.width / rect.height;\r\n if (!width) {\r\n width = aspect * height;\r\n }\r\n else if (!height) {\r\n height = width / aspect;\r\n }\r\n var target = new BoundingRect(x, y, width, height);\r\n var transform = rect.calculateTransform(target);\r\n var geometries = this.geometries;\r\n for (var i = 0; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n for (var p = 0; p < exterior.length; p++) {\r\n applyTransform(exterior[p], exterior[p], transform);\r\n }\r\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\r\n for (var p = 0; p < interiors[h].length; p++) {\r\n applyTransform(interiors[h][p], interiors[h][p], transform);\r\n }\r\n }\r\n }\r\n rect = this._rect;\r\n rect.copy(target);\r\n this.center = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n };\r\n Region.prototype.cloneShallow = function (name) {\r\n name == null && (name = this.name);\r\n var newRegion = new Region(name, this.geometries, this.center);\r\n newRegion._rect = this._rect;\r\n newRegion.transformTo = null;\r\n return newRegion;\r\n };\r\n return Region;\r\n }());\n\n function decode(json) {\r\n if (!json.UTF8Encoding) {\r\n return json;\r\n }\r\n var jsonCompressed = json;\r\n var encodeScale = jsonCompressed.UTF8Scale;\r\n if (encodeScale == null) {\r\n encodeScale = 1024;\r\n }\r\n var features = jsonCompressed.features;\r\n for (var f = 0; f < features.length; f++) {\r\n var feature = features[f];\r\n var geometry = feature.geometry;\r\n if (geometry.type === 'Polygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\r\n }\r\n }\r\n else if (geometry.type === 'MultiPolygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n var coordinate = coordinates[c];\r\n for (var c2 = 0; c2 < coordinate.length; c2++) {\r\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\r\n }\r\n }\r\n }\r\n }\r\n jsonCompressed.UTF8Encoding = false;\r\n return jsonCompressed;\r\n }\r\n function decodePolygon(coordinate, encodeOffsets, encodeScale) {\r\n var result = [];\r\n var prevX = encodeOffsets[0];\r\n var prevY = encodeOffsets[1];\r\n for (var i = 0; i < coordinate.length; i += 2) {\r\n var x = coordinate.charCodeAt(i) - 64;\r\n var y = coordinate.charCodeAt(i + 1) - 64;\r\n x = (x >> 1) ^ (-(x & 1));\r\n y = (y >> 1) ^ (-(y & 1));\r\n x += prevX;\r\n y += prevY;\r\n prevX = x;\r\n prevY = y;\r\n result.push([x / encodeScale, y / encodeScale]);\r\n }\r\n return result;\r\n }\r\n function parseGeoJSON (geoJson, nameProperty) {\r\n geoJson = decode(geoJson);\r\n return map(filter(geoJson.features, function (featureObj) {\r\n return featureObj.geometry\r\n && featureObj.properties\r\n && featureObj.geometry.coordinates.length > 0;\r\n }), function (featureObj) {\r\n var properties = featureObj.properties;\r\n var geo = featureObj.geometry;\r\n var geometries = [];\r\n if (geo.type === 'Polygon') {\r\n var coordinates = geo.coordinates;\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: coordinates[0],\r\n interiors: coordinates.slice(1)\r\n });\r\n }\r\n if (geo.type === 'MultiPolygon') {\r\n var coordinates = geo.coordinates;\r\n each(coordinates, function (item) {\r\n if (item[0]) {\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: item[0],\r\n interiors: item.slice(1)\r\n });\r\n }\r\n });\r\n }\r\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\r\n region.properties = properties;\r\n return region;\r\n });\r\n }\n\n var inner$5 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$5(axis)[prop] || (inner$5(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$5(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$5(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$5(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var parseGeoJson = parseGeoJSON;\r\n var time = {\r\n parse: parseDate,\r\n format: format\r\n };\r\n var ecUtil = {};\r\n each([\r\n 'map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter',\r\n 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction',\r\n 'extend', 'defaults', 'clone', 'merge'\r\n ], function (name) {\r\n ecUtil[name] = zrUtil[name];\r\n });\r\n var GRAPHIC_KEYS = [\r\n 'extendShape', 'extendPath', 'makePath', 'makeImage',\r\n 'mergePath', 'resizePath', 'createIcon',\r\n 'updateProps', 'initProps', 'getTransform',\r\n 'clipPointsByRect', 'clipRectByRect',\r\n 'registerShape', 'getShapeClass',\r\n 'Group',\r\n 'Image',\r\n 'Text',\r\n 'Circle',\r\n 'Ellipse',\r\n 'Sector',\r\n 'Ring',\r\n 'Polygon',\r\n 'Polyline',\r\n 'Rect',\r\n 'Line',\r\n 'BezierCurve',\r\n 'Arc',\r\n 'IncrementalDisplayable',\r\n 'CompoundPath',\r\n 'LinearGradient',\r\n 'RadialGradient',\r\n 'BoundingRect'\r\n ];\r\n var graphic$1 = {};\r\n each(GRAPHIC_KEYS, function (name) {\r\n graphic$1[name] = graphic[name];\r\n });\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n function getDefaultLabel(data, dataIndex, interpolatedValues) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[0])\r\n : interpolatedValues;\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var val = interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[i])\r\n : interpolatedValues;\r\n vals.push(val);\r\n }\r\n return vals.join(' ');\r\n }\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n updateProps(symbolPath, {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n }, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n symbolPath.ensureState('emphasis').style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n this.ensureState('emphasis');\r\n this.setSymbolScale(1);\r\n }\r\n else {\r\n this.states.emphasis = null;\r\n }\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n var emphasisState = this.states.emphasis;\r\n if (emphasisState) {\r\n var hoverScale = Math.max(scale * 1.1, 3 / this._sizeY + scale);\r\n emphasisState.scaleX = hoverScale;\r\n emphasisState.scaleY = hoverScale;\r\n }\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n this.silent = symbolPath.silent = true;\r\n !(opt && opt.keepLabel) && (symbolPath.removeTextContent());\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, this._seriesModel, getECData(this).dataIndex, cb);\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var seriesScope = makeSeriesScope(data);\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = data.getItemLayout(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = data.getItemLayout(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope);\r\n updateProps(symbolEl, {\r\n x: point[0],\r\n y: point[1]\r\n }, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = data.getItemLayout(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff (oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n var currentPt = oldData.getItemLayout(diffItem.idx);\r\n var nextPt = newData.getItemLayout(diffItem.idx1);\r\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\r\n currentPt = nextPt.slice();\r\n }\r\n currPoints.push(currentPt);\r\n nextPoints.push(nextPt);\r\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\r\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var idxAdd = diffItem.idx;\r\n currPoints.push(oldCoordSys.dataToPoint([\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idxAdd),\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idxAdd)\r\n ]));\r\n nextPoints.push(newData.getItemLayout(idxAdd).slice());\r\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idxAdd));\r\n nextStackedPoints.push(newStackedOnPoints[idxAdd]);\r\n rawIndices.push(newData.getRawIndex(idxAdd));\r\n break;\r\n case '-':\r\n var idxMinus = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(idxMinus);\r\n if (rawIndex !== idxMinus) {\r\n currPoints.push(oldData.getItemLayout(idxMinus));\r\n nextPoints.push(newCoordSys.dataToPoint([\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idxMinus),\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idxMinus)\r\n ]));\r\n currStackedPoints.push(oldStackedOnPoints[idxMinus]);\r\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idxMinus));\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var sortedCurrPoints = [];\r\n var sortedNextPoints = [];\r\n var sortedCurrStackedPoints = [];\r\n var sortedNextStackedPoints = [];\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n sortedCurrPoints[i] = currPoints[idx];\r\n sortedNextPoints[i] = nextPoints[idx];\r\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\r\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var vec2Min = min;\r\n var vec2Max = max;\r\n var scaleAndAdd$1 = scaleAndAdd;\r\n var v2Copy = copy;\r\n var v = [];\r\n var cp0 = [];\r\n var cp1 = [];\r\n function isPointNull(p) {\r\n return isNaN(p[0]) || isNaN(p[1]);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n return ((smoothMonotone === 'none' || !smoothMonotone) ? drawNonMono : drawMono)(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls);\r\n }\r\n function drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var prevP = points[prevIdx];\r\n var dim = smoothMonotone === 'y' ? 1 : 0;\r\n var ctrlLen = (p[dim] - prevP[dim]) * smooth;\r\n v2Copy(cp0, prevP);\r\n cp0[dim] = prevP[dim] + ctrlLen;\r\n v2Copy(cp1, p);\r\n cp1[dim] = p[dim] - ctrlLen;\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n v2Copy(cp0, p);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextP = points[nextIdx];\r\n if (connectNulls) {\r\n while (nextP && isPointNull(points[nextIdx])) {\r\n nextIdx += dir;\r\n nextP = points[nextIdx];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var prevP = points[prevIdx];\r\n nextP = points[nextIdx];\r\n if (!nextP || isPointNull(nextP)) {\r\n v2Copy(cp1, p);\r\n }\r\n else {\r\n if (isPointNull(nextP) && !connectNulls) {\r\n nextP = p;\r\n }\r\n sub(v, nextP, prevP);\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x' || smoothMonotone === 'y') {\r\n var dim = smoothMonotone === 'x' ? 0 : 1;\r\n lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\r\n lenNextSeg = Math.abs(p[dim] - nextP[dim]);\r\n }\r\n else {\r\n lenPrevSeg = dist(p, prevP);\r\n lenNextSeg = dist(p, nextP);\r\n }\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n scaleAndAdd$1(cp1, p, v, -smooth * (1 - ratioNextSeg));\r\n }\r\n vec2Min(cp0, cp0, smoothMax);\r\n vec2Max(cp0, cp0, smoothMin);\r\n vec2Min(cp1, cp1, smoothMax);\r\n vec2Max(cp1, cp1, smoothMin);\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n scaleAndAdd$1(cp0, p, v, smooth * ratioNextSeg);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function getBoundingBox(points, smoothConstraint) {\r\n var ptMin = [Infinity, Infinity];\r\n var ptMax = [-Infinity, -Infinity];\r\n if (smoothConstraint) {\r\n for (var i = 0; i < points.length; i++) {\r\n var pt = points[i];\r\n if (pt[0] < ptMin[0]) {\r\n ptMin[0] = pt[0];\r\n }\r\n if (pt[1] < ptMin[1]) {\r\n ptMin[1] = pt[1];\r\n }\r\n if (pt[0] > ptMax[0]) {\r\n ptMax[0] = pt[0];\r\n }\r\n if (pt[1] > ptMax[1]) {\r\n ptMax[1] = pt[1];\r\n }\r\n }\r\n }\r\n return {\r\n min: smoothConstraint ? ptMin : ptMax,\r\n max: smoothConstraint ? ptMax : ptMin\r\n };\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n this.connectNulls = false;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length;\r\n var result = getBoundingBox(points, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length;\r\n var smoothMonotone = shape.smoothMonotone;\r\n var bbox = getBoundingBox(points, shape.smoothConstraint);\r\n var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel) {\r\n var rect = cartesian.getArea();\r\n var isHorizontal = cartesian.getBaseAxis().isHorizontal();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: round$1(sectorArea.r0, 1),\r\n r: round$1(sectorArea.r, 1),\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n return null;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n var p1 = points1[i];\r\n var p2 = points2[i];\r\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var min1 = [];\r\n var max1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n fromPoints(points1, min1, max1);\r\n fromPoints(points2, min2, max2);\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var points = [];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n for (; i < points.length - 1; i++) {\r\n var nextPt = points[i + 1];\r\n var pt = points[i];\r\n stepPoints.push(pt);\r\n var stepPt = [];\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n stepPoints.push(stepPt2);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n }\r\n }\r\n points[i] && stepPoints.push(points[i]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function createLineClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.mapArray(data.getItemLayout);\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n data.eachItemGraphicEl(function (el) {\r\n el && el.stopAnimation(null, true);\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n var shouldBolderOnEmphasis = seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder';\r\n if (shouldBolderOnEmphasis) {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel'\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var pt = data.getItemLayout(dataIndex);\r\n if (!pt) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.setPosition(pt);\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._updateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n polyline.stopAnimation();\r\n updateProps(polyline, {\r\n shape: {\r\n points: next\r\n }\r\n }, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n el.setPosition(polyline.shape.__points[updatedDataInfo[i].ptIdx]);\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function layoutPoints (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeRender = pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = isLargeRender && new Float32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.get(dims[0], i);\r\n point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n var x = tmpIn[0] = data.get(dims[0], i);\r\n var y = tmpIn[1] = data.get(dims[1], i);\r\n point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (isLargeRender) {\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n else {\r\n data.setItemLayout(i, (point && point.slice()) || [NaN, NaN]);\r\n }\r\n }\r\n isLargeRender && data.setLayout('symbolPoints', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var size = extent[1] - extent[0];\r\n var rate = Math.round(data.count() / size);\r\n if (rate > 1) {\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator (axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var PI$5 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$5) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$5 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$5 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$5 * 1.5 && rotationDiff > PI$5 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul$1([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul$1([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$5 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function collect(ecModel, api) {\r\n var result = {\r\n axesInfo: {},\r\n seriesInvolved: false,\r\n coordSysAxesInfo: {},\r\n coordSysMap: {}\r\n };\r\n collectAxesInfo(result, ecModel, api);\r\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\r\n return result;\r\n }\r\n function collectAxesInfo(result, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\r\n var linksOption = globalAxisPointerModel.get('link', true) || [];\r\n var linkGroups = [];\r\n each(api.getCoordinateSystems(), function (coordSys) {\r\n if (!coordSys.axisPointerEnabled) {\r\n return;\r\n }\r\n var coordSysKey = makeKey(coordSys.model);\r\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\r\n result.coordSysMap[coordSysKey] = coordSys;\r\n var coordSysModel = coordSys.model;\r\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\r\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\r\n if (coordSys.getTooltipAxes\r\n && globalTooltipModel\r\n && baseTooltipModel.get('show')) {\r\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\r\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\r\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\r\n if (triggerAxis || cross) {\r\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\r\n }\r\n if (cross) {\r\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\r\n }\r\n }\r\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\r\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\r\n var axisPointerShow = axisPointerModel.get('show');\r\n if (!axisPointerShow || (axisPointerShow === 'auto'\r\n && !fromTooltip\r\n && !isHandleTrigger(axisPointerModel))) {\r\n return;\r\n }\r\n if (triggerTooltip == null) {\r\n triggerTooltip = axisPointerModel.get('triggerTooltip');\r\n }\r\n axisPointerModel = fromTooltip\r\n ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip)\r\n : axisPointerModel;\r\n var snap = axisPointerModel.get('snap');\r\n var axisKey = makeKey(axis.model);\r\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\r\n var axisInfo = result.axesInfo[axisKey] = {\r\n key: axisKey,\r\n axis: axis,\r\n coordSys: coordSys,\r\n axisPointerModel: axisPointerModel,\r\n triggerTooltip: triggerTooltip,\r\n involveSeries: involveSeries,\r\n snap: snap,\r\n useHandle: isHandleTrigger(axisPointerModel),\r\n seriesModels: [],\r\n linkGroup: null\r\n };\r\n axesInfoInCoordSys[axisKey] = axisInfo;\r\n result.seriesInvolved = result.seriesInvolved || involveSeries;\r\n var groupIndex = getLinkGroupIndex(linksOption, axis);\r\n if (groupIndex != null) {\r\n var linkGroup = linkGroups[groupIndex]\r\n || (linkGroups[groupIndex] = { axesInfo: {} });\r\n linkGroup.axesInfo[axisKey] = axisInfo;\r\n linkGroup.mapper = linksOption[groupIndex].mapper;\r\n axisInfo.linkGroup = linkGroup;\r\n }\r\n }\r\n });\r\n }\r\n function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\r\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\r\n var fields = [\r\n 'type', 'snap', 'lineStyle', 'shadowStyle', 'label',\r\n 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'\r\n ];\r\n var volatileOption = {};\r\n each(fields, function (field) {\r\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\r\n });\r\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\r\n if (tooltipAxisPointerModel.get('type') === 'cross') {\r\n volatileOption.type = 'line';\r\n }\r\n var labelOption = volatileOption.label || (volatileOption.label = {});\r\n labelOption.show == null && (labelOption.show = false);\r\n if (fromTooltip === 'cross') {\r\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\r\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\r\n if (!triggerTooltip) {\r\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\r\n crossStyle && defaults(labelOption, crossStyle.textStyle);\r\n }\r\n }\r\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\r\n }\r\n function collectSeriesInfo(result, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\r\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\r\n if (!coordSys\r\n || seriesTooltipTrigger === 'none'\r\n || seriesTooltipTrigger === false\r\n || seriesTooltipTrigger === 'item'\r\n || seriesTooltipShow === false\r\n || seriesModel.get(['axisPointer', 'show'], true) === false) {\r\n return;\r\n }\r\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\r\n var axis = axisInfo.axis;\r\n if (coordSys.getAxis(axis.dim) === axis) {\r\n axisInfo.seriesModels.push(seriesModel);\r\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\r\n axisInfo.seriesDataCount += seriesModel.getData().count();\r\n }\r\n });\r\n });\r\n }\r\n function getLinkGroupIndex(linksOption, axis) {\r\n var axisModel = axis.model;\r\n var dim = axis.dim;\r\n for (var i = 0; i < linksOption.length; i++) {\r\n var linkOption = linksOption[i] || {};\r\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id)\r\n || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex)\r\n || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\r\n return i;\r\n }\r\n }\r\n }\r\n function checkPropInLink(linkPropValue, axisPropValue) {\r\n return linkPropValue === 'all'\r\n || (isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0)\r\n || linkPropValue === axisPropValue;\r\n }\r\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$6 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$6(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$6(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$6(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 60,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(layoutPoints('line'));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (!ignoreContainLabel && gridModel.get('containLabel')) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n realtimeSort: false\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$4 = Math.max;\r\n var mathMin$4 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea;\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n coordSysClipArea = coord.getArea && coord.getArea();\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this.removeOnRenderedListener(api);\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n var isReorder = payload && payload.type === 'changeAxisOrder';\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, isReorder);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) {\r\n var _this = this;\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 if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var realtimeSort = seriesModel.get('realtimeSort');\r\n if (realtimeSort && data.count()) {\r\n if (this._isFirstFrame) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n else {\r\n this._onRendered = function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n _this._updateSort(data, orderMap, baseAxis, api);\r\n };\r\n api.getZr().on('rendered', this._onRendered);\r\n }\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\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 data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false);\r\n }\r\n else if (coord.type === 'cartesian2d') {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\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 if (drawBackground) {\r\n var bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\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 }\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true);\r\n }\r\n else {\r\n updateProps(el, { shape: layout }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n this.removeOnRenderedListener(api);\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function (ecModel, api) {\r\n this._clear(this._model);\r\n this.removeOnRenderedListener(api);\r\n };\r\n BarView.prototype.dispose = function (ecModel, api) {\r\n this.removeOnRenderedListener(api);\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 BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var 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;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$4(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$4(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$4(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$4(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function () {\r\n return false;\r\n }\r\n };\r\n var 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 if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\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\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, data, newIndex, isHorizontal, isUpdate) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\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 }\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 (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n var defaultTextGetter = function (values) {\r\n return getDefaultLabel(seriesModel.getData(), newIndex, values);\r\n };\r\n var labelModel = seriesModel.getModel('label');\r\n (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter);\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\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 };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n el.ignore = isZeroOnPolar(layout);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n setLabelStyle(el, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\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 }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\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 var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var 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 function 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 barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function 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 }\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 function 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 ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\n\n function createListSimply (seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function labelLayout (seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.x -= margin / 2;\r\n textRect.y -= margin / 2;\r\n textRect.width += margin;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend({}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = {\r\n r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0)\r\n };\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var labelText = sector.getTextContent();\r\n var itemModel = data.getItemModel(idx);\r\n var labelTextEmphasisState = labelText.ensureState('emphasis');\r\n var labelModel = itemModel.getModel('label');\r\n var labelHoverModel = itemModel.getModel(['emphasis', 'label']);\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n }, { normal: {\r\n opacity: style && style.opacity\r\n } });\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n labelText.ignore = !labelModel.get('show');\r\n labelTextEmphasisState.ignore = !labelHoverModel.get('show');\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: style && style.opacity\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n labelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$6 = Math.PI * 2;\r\n var RADIAN$1 = Math.PI / 180;\r\n function getViewRect(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function pieLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var viewRect = getViewRect(seriesModel, api);\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = parsePercent$2(viewRect.width, api.getWidth());\r\n var height = parsePercent$2(viewRect.height, api.getHeight());\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width) + viewRect.x;\r\n var cy = parsePercent$2(center[1], height) + viewRect.y;\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$1;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$1;\r\n var validDataCount = 0;\r\n data.each(valueDim, function (value) {\r\n !isNaN(value) && validDataCount++;\r\n });\r\n var sum = data.getSum(valueDim);\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var clockwise = seriesModel.get('clockwise');\r\n var roseType = seriesModel.get('roseType');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var extent = data.getDataExtent(valueDim);\r\n extent[0] = 0;\r\n var restAngle = PI2$6;\r\n var valueSumLargerThanMinAngle = 0;\r\n var currentAngle = startAngle;\r\n var dir = clockwise ? 1 : -1;\r\n data.setLayout({ viewRect: viewRect, r: r });\r\n data.each(valueDim, function (value, idx) {\r\n var angle;\r\n if (isNaN(value)) {\r\n data.setItemLayout(idx, {\r\n angle: NaN,\r\n startAngle: NaN,\r\n endAngle: NaN,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? NaN\r\n : r\r\n });\r\n return;\r\n }\r\n if (roseType !== 'area') {\r\n angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n }\r\n else {\r\n angle = PI2$6 / validDataCount;\r\n }\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n restAngle -= minAngle;\r\n }\r\n else {\r\n valueSumLargerThanMinAngle += value;\r\n }\r\n var endAngle = currentAngle + dir * angle;\r\n data.setItemLayout(idx, {\r\n angle: angle,\r\n startAngle: currentAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? linearMap(value, extent, [r0, r])\r\n : r\r\n });\r\n currentAngle = endAngle;\r\n });\r\n if (restAngle < PI2$6 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$6 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n var ScatterSeriesModel = (function (_super) {\r\n __extends(ScatterSeriesModel, _super);\r\n function ScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n ScatterSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 5e3 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n ScatterSeriesModel.type = 'series.scatter';\r\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n ScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n symbolSize: 10,\r\n large: false,\r\n largeThreshold: 2000,\r\n itemStyle: {\r\n opacity: 0.8\r\n },\r\n emphasis: {\r\n scale: true\r\n },\r\n clip: true,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return ScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ScatterSeriesModel);\n\n var BOOST_SIZE_THRESHOLD = 4;\r\n var LargeSymbolPathShape = (function () {\r\n function LargeSymbolPathShape() {\r\n }\r\n return LargeSymbolPathShape;\r\n }());\r\n var LargeSymbolPath = (function (_super) {\r\n __extends(LargeSymbolPath, _super);\r\n function LargeSymbolPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeSymbolPath.prototype.getDefaultShape = function () {\r\n return new LargeSymbolPathShape();\r\n };\r\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\r\n var points = shape.points;\r\n var size = shape.size;\r\n var symbolProxy = this.symbolProxy;\r\n var symbolProxyShape = symbolProxy.shape;\r\n var ctx = path.getContext\r\n ? path.getContext()\r\n : path;\r\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\r\n if (canBoost) {\r\n this._ctx = ctx;\r\n return;\r\n }\r\n this._ctx = null;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n symbolProxyShape.x = x - size[0] / 2;\r\n symbolProxyShape.y = y - size[1] / 2;\r\n symbolProxyShape.width = size[0];\r\n symbolProxyShape.height = size[1];\r\n symbolProxy.buildPath(path, symbolProxyShape, true);\r\n }\r\n };\r\n LargeSymbolPath.prototype.afterBrush = function () {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var ctx = this._ctx;\r\n if (!ctx) {\r\n return;\r\n }\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\r\n }\r\n };\r\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var w = Math.max(size[0], 4);\r\n var h = Math.max(size[1], 4);\r\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\r\n var i = idx * 2;\r\n var x0 = points[i] - w / 2;\r\n var y0 = points[i + 1] - h / 2;\r\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\r\n return idx;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeSymbolPath;\r\n }(Path));\r\n var LargeSymbolDraw = (function () {\r\n function LargeSymbolDraw() {\r\n this.group = new Group();\r\n }\r\n LargeSymbolDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\r\n this.group.removeAll();\r\n var symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, false, opt);\r\n this.group.add(symbolEl);\r\n this._incremental = null;\r\n };\r\n LargeSymbolDraw.prototype.updateLayout = function (data) {\r\n if (this._incremental) {\r\n return;\r\n }\r\n var points = data.getLayout('symbolPoints');\r\n this.group.eachChild(function (child) {\r\n if (child.startIndex != null) {\r\n var len = (child.endIndex - child.startIndex) * 2;\r\n var byteOffset = child.startIndex * 4 * 2;\r\n points = new Float32Array(points.buffer, byteOffset, len);\r\n }\r\n child.setShape('points', points);\r\n });\r\n };\r\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 2e6) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n var symbolEl;\r\n if (this._incremental) {\r\n symbolEl = new LargeSymbolPath();\r\n this._incremental.addDisplayable(symbolEl, true);\r\n }\r\n else {\r\n symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default',\r\n startIndex: taskParams.start,\r\n endIndex: taskParams.end\r\n });\r\n symbolEl.incremental = true;\r\n this.group.add(symbolEl);\r\n }\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, !!this._incremental, opt);\r\n };\r\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\r\n var hostModel = data.hostModel;\r\n opt = opt || {};\r\n var size = data.getVisual('symbolSize');\r\n symbolEl.setShape('size', (size instanceof Array) ? size : [size, size]);\r\n symbolEl.softClipShape = opt.clipShape || null;\r\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\r\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\r\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\r\n symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\r\n var globalStyle = data.getVisual('style');\r\n var visualColor = globalStyle && globalStyle.fill;\r\n if (visualColor) {\r\n symbolEl.setColor(visualColor);\r\n }\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(symbolEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n symbolEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex >= 0) {\r\n ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\r\n }\r\n });\r\n }\r\n };\r\n LargeSymbolDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeSymbolDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeSymbolDraw;\r\n }());\n\n var ScatterView = (function (_super) {\r\n __extends(ScatterView, _super);\r\n function ScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterView.type;\r\n return _this;\r\n }\r\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.updateData(data, {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = true;\r\n };\r\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.incrementalPrepareUpdate(data);\r\n this._finished = false;\r\n };\r\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = layoutPoints().reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({ start: 0, end: data.count(), count: data.count() }, data);\r\n }\r\n this._symbolDraw.updateLayout(data);\r\n }\r\n };\r\n ScatterView.prototype._getClipShape = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\r\n return seriesModel.get('clip', true) ? clipArea : null;\r\n };\r\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\r\n var symbolDraw = this._symbolDraw;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\r\n symbolDraw && symbolDraw.remove();\r\n symbolDraw = this._symbolDraw = isLargeDraw\r\n ? new LargeSymbolDraw()\r\n : new SymbolDraw();\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(symbolDraw.group);\r\n return symbolDraw;\r\n };\r\n ScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n this._symbolDraw = null;\r\n };\r\n ScatterView.prototype.dispose = function () { };\r\n ScatterView.type = 'scatter';\r\n return ScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(ScatterView);\n\n registerLayout(layoutPoints('scatter'));\n\n var _nonShapeGraphicElements = {\r\n path: null,\r\n compoundPath: null,\r\n group: Group,\r\n image: ZRImage,\r\n text: ZRText\r\n };\r\n registerPreprocessor(function (option) {\r\n var graphicOption = option.graphic;\r\n if (isArray(graphicOption)) {\r\n if (!graphicOption[0] || !graphicOption[0].elements) {\r\n option.graphic = [{ elements: graphicOption }];\r\n }\r\n else {\r\n option.graphic = [option.graphic[0]];\r\n }\r\n }\r\n else if (graphicOption && !graphicOption.elements) {\r\n option.graphic = [{ elements: [graphicOption] }];\r\n }\r\n });\r\n var GraphicModel = extendComponentModel({\r\n type: 'graphic',\r\n defaultOption: {\r\n elements: [],\r\n parentId: null\r\n },\r\n _elOptionsToUpdate: null,\r\n mergeOption: function (option) {\r\n var elements = this.option.elements;\r\n this.option.elements = null;\r\n GraphicModel.superApply(this, 'mergeOption', arguments);\r\n this.option.elements = elements;\r\n },\r\n optionUpdated: function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var newList = (isInit ? thisOption : newOption).elements;\r\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\r\n var flattenedList = [];\r\n this._flatten(newList, flattenedList);\r\n var mappingResult = mappingToExists(existList, flattenedList, 'normalMerge');\r\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\r\n each(mappingResult, function (resultItem, index) {\r\n var newElOption = resultItem.newOption;\r\n if (__DEV__) {\r\n assert(isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\r\n }\r\n if (!newElOption) {\r\n return;\r\n }\r\n elOptionsToUpdate.push(newElOption);\r\n setKeyInfoToNewElOption(resultItem, newElOption);\r\n mergeNewElOptionToExist(existList, index, newElOption);\r\n setLayoutInfoToExist(existList[index], newElOption);\r\n }, this);\r\n for (var i = existList.length - 1; i >= 0; i--) {\r\n if (existList[i] == null) {\r\n existList.splice(i, 1);\r\n }\r\n else {\r\n delete existList[i].$action;\r\n }\r\n }\r\n },\r\n _flatten: function (optionList, result, parentOption) {\r\n each(optionList, function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (parentOption) {\r\n option.parentOption = parentOption;\r\n }\r\n result.push(option);\r\n var children = option.children;\r\n if (option.type === 'group' && children) {\r\n this._flatten(children, result, option);\r\n }\r\n delete option.children;\r\n }, this);\r\n },\r\n useElOptionsToUpdate: function () {\r\n var els = this._elOptionsToUpdate;\r\n this._elOptionsToUpdate = null;\r\n return els;\r\n }\r\n });\r\n extendComponentView({\r\n type: 'graphic',\r\n init: function (ecModel, api) {\r\n this._elMap = createHashMap();\r\n this._lastGraphicModel;\r\n },\r\n render: function (graphicModel, ecModel, api) {\r\n if (graphicModel !== this._lastGraphicModel) {\r\n this._clear();\r\n }\r\n this._lastGraphicModel = graphicModel;\r\n this._updateElements(graphicModel);\r\n this._relocate(graphicModel, api);\r\n },\r\n _updateElements: function (graphicModel) {\r\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\r\n if (!elOptionsToUpdate) {\r\n return;\r\n }\r\n var elMap = this._elMap;\r\n var rootGroup = this.group;\r\n each(elOptionsToUpdate, function (elOption) {\r\n var $action = elOption.$action;\r\n var id = elOption.id;\r\n var existEl = elMap.get(id);\r\n var parentId = elOption.parentId;\r\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\r\n var elOptionStyle = elOption.style;\r\n if (elOption.type === 'text' && elOptionStyle) {\r\n if (elOption.hv && elOption.hv[1]) {\r\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;\r\n }\r\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\r\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\r\n }\r\n var elOptionCleaned = getCleanedElOption(elOption);\r\n if (__DEV__) {\r\n existEl && assert(targetElParent === existEl.parent, 'Changing parent is not supported.');\r\n }\r\n if (!$action || $action === 'merge') {\r\n existEl\r\n ? existEl.attr(elOptionCleaned)\r\n : createEl(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'replace') {\r\n removeEl(existEl, elMap);\r\n createEl(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'remove') {\r\n removeEl(existEl, elMap);\r\n }\r\n var el = elMap.get(id);\r\n if (el) {\r\n el.__ecGraphicWidthOption = elOption.width;\r\n el.__ecGraphicHeightOption = elOption.height;\r\n setEventData(el, graphicModel);\r\n }\r\n });\r\n },\r\n _relocate: function (graphicModel, api) {\r\n var elOptions = graphicModel.option.elements;\r\n var rootGroup = this.group;\r\n var elMap = this._elMap;\r\n var apiWidth = api.getWidth();\r\n var apiHeight = api.getHeight();\r\n for (var i = 0; i < elOptions.length; i++) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el || !el.isGroup) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var isParentRoot = parentEl === rootGroup;\r\n el.__ecGraphicWidth = parsePercent$2(el.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentEl.__ecGraphicWidth) || 0;\r\n el.__ecGraphicHeight = parsePercent$2(el.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentEl.__ecGraphicHeight) || 0;\r\n }\r\n for (var i = elOptions.length - 1; i >= 0; i--) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var containerInfo = parentEl === rootGroup\r\n ? {\r\n width: apiWidth,\r\n height: apiHeight\r\n }\r\n : {\r\n width: parentEl.__ecGraphicWidth,\r\n height: parentEl.__ecGraphicHeight\r\n };\r\n positionElement(el, elOption, containerInfo, null, { hv: elOption.hv, boundingMode: elOption.bounding });\r\n }\r\n },\r\n _clear: function () {\r\n var elMap = this._elMap;\r\n elMap.each(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n this._elMap = createHashMap();\r\n },\r\n dispose: function () {\r\n this._clear();\r\n }\r\n });\r\n function createEl(id, targetElParent, elOption, elMap) {\r\n var graphicType = elOption.type;\r\n if (__DEV__) {\r\n assert(graphicType, 'graphic type MUST be set');\r\n }\r\n var Clz = _nonShapeGraphicElements.hasOwnProperty(graphicType)\r\n ? _nonShapeGraphicElements[graphicType]\r\n : getShapeClass(graphicType);\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type can not be found');\r\n }\r\n var el = new Clz(elOption);\r\n targetElParent.add(el);\r\n elMap.set(id, el);\r\n el.__ecGraphicId = id;\r\n }\r\n function removeEl(existEl, elMap) {\r\n var existElParent = existEl && existEl.parent;\r\n if (existElParent) {\r\n existEl.type === 'group' && existEl.traverse(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n elMap.removeKey(existEl.__ecGraphicId);\r\n existElParent.remove(existEl);\r\n }\r\n }\r\n function getCleanedElOption(elOption) {\r\n elOption = extend({}, elOption);\r\n each(['id', 'parentId', '$action', 'hv', 'bounding'].concat(LOCATION_PARAMS), function (name) {\r\n delete elOption[name];\r\n });\r\n return elOption;\r\n }\r\n function isSetLoc(obj, props) {\r\n var isSet;\r\n each(props, function (prop) {\r\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\r\n });\r\n return isSet;\r\n }\r\n function setKeyInfoToNewElOption(resultItem, newElOption) {\r\n var existElOption = resultItem.existing;\r\n newElOption.id = resultItem.keyInfo.id;\r\n !newElOption.type && existElOption && (newElOption.type = existElOption.type);\r\n if (newElOption.parentId == null) {\r\n var newElParentOption = newElOption.parentOption;\r\n if (newElParentOption) {\r\n newElOption.parentId = newElParentOption.id;\r\n }\r\n else if (existElOption) {\r\n newElOption.parentId = existElOption.parentId;\r\n }\r\n }\r\n newElOption.parentOption = null;\r\n }\r\n function mergeNewElOptionToExist(existList, index, newElOption) {\r\n var newElOptCopy = extend({}, newElOption);\r\n var existElOption = existList[index];\r\n var $action = newElOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n if (existElOption) {\r\n if (__DEV__) {\r\n var newType = newElOption.type;\r\n assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\r\n }\r\n merge(existElOption, newElOptCopy, true);\r\n mergeLayoutParam(existElOption, newElOptCopy, { ignoreSize: true });\r\n copyLayoutParams(newElOption, existElOption);\r\n }\r\n else {\r\n existList[index] = newElOptCopy;\r\n }\r\n }\r\n else if ($action === 'replace') {\r\n existList[index] = newElOptCopy;\r\n }\r\n else if ($action === 'remove') {\r\n existElOption && (existList[index] = null);\r\n }\r\n }\r\n function setLayoutInfoToExist(existItem, newElOption) {\r\n if (!existItem) {\r\n return;\r\n }\r\n existItem.hv = newElOption.hv = [\r\n isSetLoc(newElOption, ['left', 'right']),\r\n isSetLoc(newElOption, ['top', 'bottom'])\r\n ];\r\n if (existItem.type === 'group') {\r\n existItem.width == null && (existItem.width = newElOption.width = 0);\r\n existItem.height == null && (existItem.height = newElOption.height = 0);\r\n }\r\n }\r\n function setEventData(el, graphicModel, elOption) {\r\n var eventData = el.eventData;\r\n if (!el.silent && !el.ignore && !eventData) {\r\n eventData = el.eventData = {\r\n componentType: 'graphic',\r\n componentIndex: graphicModel.componentIndex,\r\n name: el.name\r\n };\r\n }\r\n if (eventData) {\r\n eventData.info = el.info;\r\n }\r\n }\n\n function findPointFromSeries (finder, ecModel) {\r\n var point = [];\r\n var seriesIndex = finder.seriesIndex;\r\n var seriesModel;\r\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\r\n return {\r\n point: []\r\n };\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, finder);\r\n if (dataIndex == null || dataIndex < 0 || isArray(dataIndex)) {\r\n return { point: [] };\r\n }\r\n var el = data.getItemGraphicEl(dataIndex);\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (seriesModel.getTooltipPosition) {\r\n point = seriesModel.getTooltipPosition(dataIndex) || [];\r\n }\r\n else if (coordSys && coordSys.dataToPoint) {\r\n if (finder.isStacked) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueAxisDim = valueAxis.dim;\r\n var baseAxisDim = baseAxis.dim;\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\r\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\r\n point = coordSys.dataToPoint(stackedData) || [];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }), dataIndex)) || [];\r\n }\r\n }\r\n else if (el) {\r\n var rect = el.getBoundingRect().clone();\r\n rect.applyTransform(el.transform);\r\n point = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n return { point: point, el: el };\r\n }\n\n var inner$7 = makeInner();\r\n function axisTrigger (payload, ecModel, api) {\r\n var currTrigger = payload.currTrigger;\r\n var point = [payload.x, payload.y];\r\n var finder = payload;\r\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer')\r\n .coordSysAxesInfo;\r\n if (!coordSysAxesInfo) {\r\n return;\r\n }\r\n if (illegalPoint(point)) {\r\n point = findPointFromSeries({\r\n seriesIndex: finder.seriesIndex,\r\n dataIndex: finder.dataIndex\r\n }, ecModel).point;\r\n }\r\n var isIllegalPoint = illegalPoint(point);\r\n var inputAxesInfo = finder.axesInfo;\r\n var axesInfo = coordSysAxesInfo.axesInfo;\r\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\r\n var outputPayload = {};\r\n var showValueMap = {};\r\n var dataByCoordSys = {\r\n list: [],\r\n map: {}\r\n };\r\n var updaters = {\r\n showPointer: curry(showPointer, showValueMap),\r\n showTooltip: curry(showTooltip, dataByCoordSys)\r\n };\r\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\r\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\r\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\r\n var axis = axisInfo.axis;\r\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\r\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\r\n var val = inputAxisInfo && inputAxisInfo.value;\r\n if (val == null && !isIllegalPoint) {\r\n val = axis.pointToData(point);\r\n }\r\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\r\n }\r\n });\r\n });\r\n var linkTriggers = {};\r\n each(axesInfo, function (tarAxisInfo, tarKey) {\r\n var linkGroup = tarAxisInfo.linkGroup;\r\n if (linkGroup && !showValueMap[tarKey]) {\r\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\r\n var srcValItem = showValueMap[srcKey];\r\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\r\n var val = srcValItem.value;\r\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\r\n linkTriggers[tarAxisInfo.key] = val;\r\n }\r\n });\r\n }\r\n });\r\n each(linkTriggers, function (val, tarKey) {\r\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\r\n });\r\n updateModelActually(showValueMap, axesInfo, outputPayload);\r\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\r\n dispatchHighDownActually(axesInfo, dispatchAction, api);\r\n return outputPayload;\r\n }\r\n function processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\r\n var axis = axisInfo.axis;\r\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\r\n return;\r\n }\r\n if (!axisInfo.involveSeries) {\r\n updaters.showPointer(axisInfo, newValue);\r\n return;\r\n }\r\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var snapToValue = payloadInfo.snapToValue;\r\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\r\n extend(outputFinder, payloadBatch[0]);\r\n }\r\n if (!noSnap && axisInfo.snap) {\r\n if (axis.containData(snapToValue) && snapToValue != null) {\r\n newValue = snapToValue;\r\n }\r\n }\r\n updaters.showPointer(axisInfo, newValue, payloadBatch);\r\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\r\n }\r\n function buildPayloadsBySeries(value, axisInfo) {\r\n var axis = axisInfo.axis;\r\n var dim = axis.dim;\r\n var snapToValue = value;\r\n var payloadBatch = [];\r\n var minDist = Number.MAX_VALUE;\r\n var minDiff = -1;\r\n each(axisInfo.seriesModels, function (series, idx) {\r\n var dataDim = series.getData().mapDimensionsAll(dim);\r\n var seriesNestestValue;\r\n var dataIndices;\r\n if (series.getAxisTooltipData) {\r\n var result = series.getAxisTooltipData(dataDim, value, axis);\r\n dataIndices = result.dataIndices;\r\n seriesNestestValue = result.nestestValue;\r\n }\r\n else {\r\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\r\n if (!dataIndices.length) {\r\n return;\r\n }\r\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\r\n }\r\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\r\n return;\r\n }\r\n var diff = value - seriesNestestValue;\r\n var dist = Math.abs(diff);\r\n if (dist <= minDist) {\r\n if (dist < minDist || (diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n snapToValue = seriesNestestValue;\r\n payloadBatch.length = 0;\r\n }\r\n each(dataIndices, function (dataIndex) {\r\n payloadBatch.push({\r\n seriesIndex: series.seriesIndex,\r\n dataIndexInside: dataIndex,\r\n dataIndex: series.getData().getRawIndex(dataIndex)\r\n });\r\n });\r\n }\r\n });\r\n return {\r\n payloadBatch: payloadBatch,\r\n snapToValue: snapToValue\r\n };\r\n }\r\n function showPointer(showValueMap, axisInfo, value, payloadBatch) {\r\n showValueMap[axisInfo.key] = {\r\n value: value,\r\n payloadBatch: payloadBatch\r\n };\r\n }\r\n function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var axis = axisInfo.axis;\r\n var axisModel = axis.model;\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\r\n return;\r\n }\r\n var coordSysModel = axisInfo.coordSys.model;\r\n var coordSysKey = makeKey(coordSysModel);\r\n var coordSysItem = dataByCoordSys.map[coordSysKey];\r\n if (!coordSysItem) {\r\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\r\n coordSysId: coordSysModel.id,\r\n coordSysIndex: coordSysModel.componentIndex,\r\n coordSysType: coordSysModel.type,\r\n coordSysMainType: coordSysModel.mainType,\r\n dataByAxis: []\r\n };\r\n dataByCoordSys.list.push(coordSysItem);\r\n }\r\n coordSysItem.dataByAxis.push({\r\n axisDim: axis.dim,\r\n axisIndex: axisModel.componentIndex,\r\n axisType: axisModel.type,\r\n axisId: axisModel.id,\r\n value: value,\r\n valueLabelOpt: {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n },\r\n seriesDataIndices: payloadBatch.slice()\r\n });\r\n }\r\n function updateModelActually(showValueMap, axesInfo, outputPayload) {\r\n var outputAxesInfo = outputPayload.axesInfo = [];\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n var valItem = showValueMap[key];\r\n if (valItem) {\r\n !axisInfo.useHandle && (option.status = 'show');\r\n option.value = valItem.value;\r\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\r\n }\r\n else {\r\n !axisInfo.useHandle && (option.status = 'hide');\r\n }\r\n option.status === 'show' && outputAxesInfo.push({\r\n axisDim: axisInfo.axis.dim,\r\n axisIndex: axisInfo.axis.model.componentIndex,\r\n value: option.value\r\n });\r\n });\r\n }\r\n function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\r\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\r\n dispatchAction({ type: 'hideTip' });\r\n return;\r\n }\r\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\r\n dispatchAction({\r\n type: 'showTip',\r\n escapeConnect: true,\r\n x: point[0],\r\n y: point[1],\r\n tooltipOption: payload.tooltipOption,\r\n position: payload.position,\r\n dataIndexInside: sampleItem.dataIndexInside,\r\n dataIndex: sampleItem.dataIndex,\r\n seriesIndex: sampleItem.seriesIndex,\r\n dataByCoordSys: dataByCoordSys.list\r\n });\r\n }\r\n function dispatchHighDownActually(axesInfo, dispatchAction, api) {\r\n var zr = api.getZr();\r\n var highDownKey = 'axisPointerLastHighlights';\r\n var lastHighlights = inner$7(zr)[highDownKey] || {};\r\n var newHighlights = inner$7(zr)[highDownKey] = {};\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\r\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\r\n newHighlights[key] = batchItem;\r\n });\r\n });\r\n var toHighlight = [];\r\n var toDownplay = [];\r\n each(lastHighlights, function (batchItem, key) {\r\n !newHighlights[key] && toDownplay.push(batchItem);\r\n });\r\n each(newHighlights, function (batchItem, key) {\r\n !lastHighlights[key] && toHighlight.push(batchItem);\r\n });\r\n toDownplay.length && api.dispatchAction({\r\n type: 'downplay',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toDownplay\r\n });\r\n toHighlight.length && api.dispatchAction({\r\n type: 'highlight',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toHighlight\r\n });\r\n }\r\n function findInputAxisInfo(inputAxesInfo, axisInfo) {\r\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\r\n var inputAxisInfo = inputAxesInfo[i];\r\n if (axisInfo.axis.dim === inputAxisInfo.axisDim\r\n && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\r\n return inputAxisInfo;\r\n }\r\n }\r\n }\r\n function makeMapperParam(axisInfo) {\r\n var axisModel = axisInfo.axis.model;\r\n var item = {};\r\n var dim = item.axisDim = axisInfo.axis.dim;\r\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\r\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\r\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\r\n return item;\r\n }\r\n function illegalPoint(point) {\r\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\r\n }\n\n var inner$8 = makeInner();\r\n var each$4 = each;\r\n function register(key, api, handler) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n inner$8(zr).records || (inner$8(zr).records = {});\r\n initGlobalListeners(zr, api);\r\n var record = inner$8(zr).records[key] || (inner$8(zr).records[key] = {});\r\n record.handler = handler;\r\n }\r\n function initGlobalListeners(zr, api) {\r\n if (inner$8(zr).initialized) {\r\n return;\r\n }\r\n inner$8(zr).initialized = true;\r\n useHandler('click', curry(doEnter, 'click'));\r\n useHandler('mousemove', curry(doEnter, 'mousemove'));\r\n useHandler('globalout', onLeave);\r\n function useHandler(eventType, cb) {\r\n zr.on(eventType, function (e) {\r\n var dis = makeDispatchAction(api);\r\n each$4(inner$8(zr).records, function (record) {\r\n record && cb(record, e, dis.dispatchAction);\r\n });\r\n dispatchTooltipFinally(dis.pendings, api);\r\n });\r\n }\r\n }\r\n function dispatchTooltipFinally(pendings, api) {\r\n var showLen = pendings.showTip.length;\r\n var hideLen = pendings.hideTip.length;\r\n var actuallyPayload;\r\n if (showLen) {\r\n actuallyPayload = pendings.showTip[showLen - 1];\r\n }\r\n else if (hideLen) {\r\n actuallyPayload = pendings.hideTip[hideLen - 1];\r\n }\r\n if (actuallyPayload) {\r\n actuallyPayload.dispatchAction = null;\r\n api.dispatchAction(actuallyPayload);\r\n }\r\n }\r\n function onLeave(record, e, dispatchAction) {\r\n record.handler('leave', null, dispatchAction);\r\n }\r\n function doEnter(currTrigger, record, e, dispatchAction) {\r\n record.handler(currTrigger, e, dispatchAction);\r\n }\r\n function makeDispatchAction(api) {\r\n var pendings = {\r\n showTip: [],\r\n hideTip: []\r\n };\r\n var dispatchAction = function (payload) {\r\n var pendingList = pendings[payload.type];\r\n if (pendingList) {\r\n pendingList.push(payload);\r\n }\r\n else {\r\n payload.dispatchAction = dispatchAction;\r\n api.dispatchAction(payload);\r\n }\r\n };\r\n return {\r\n dispatchAction: dispatchAction,\r\n pendings: pendings\r\n };\r\n }\r\n function unregister(key, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n var record = (inner$8(zr).records || {})[key];\r\n if (record) {\r\n inner$8(zr).records[key] = null;\r\n }\r\n }\n\n var AxisPointerView = (function (_super) {\r\n __extends(AxisPointerView, _super);\r\n function AxisPointerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerView.type;\r\n return _this;\r\n }\r\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var triggerOn = globalAxisPointerModel.get('triggerOn')\r\n || (globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click');\r\n register('axisPointer', api, function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none'\r\n && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\r\n dispatchAction({\r\n type: 'updateAxisPointer',\r\n currTrigger: currTrigger,\r\n x: e && e.offsetX,\r\n y: e && e.offsetY\r\n });\r\n }\r\n });\r\n };\r\n AxisPointerView.prototype.remove = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.prototype.dispose = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.type = 'axisPointer';\r\n return AxisPointerView;\r\n }(ComponentView));\r\n ComponentView.registerClass(AxisPointerView);\n\n var inner$9 = makeInner();\r\n var clone$3 = clone;\r\n var bind$1 = bind;\r\n var BaseAxisPointer = (function () {\r\n function BaseAxisPointer() {\r\n this._dragging = false;\r\n this.animationThreshold = 15;\r\n }\r\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\r\n var value = axisPointerModel.get('value');\r\n var status = axisPointerModel.get('status');\r\n this._axisModel = axisModel;\r\n this._axisPointerModel = axisPointerModel;\r\n this._api = api;\r\n if (!forceRender\r\n && this._lastValue === value\r\n && this._lastStatus === status) {\r\n return;\r\n }\r\n this._lastValue = value;\r\n this._lastStatus = status;\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (!status || status === 'hide') {\r\n group && group.hide();\r\n handle && handle.hide();\r\n return;\r\n }\r\n group && group.show();\r\n handle && handle.show();\r\n var elOption = {};\r\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\r\n var graphicKey = elOption.graphicKey;\r\n if (graphicKey !== this._lastGraphicKey) {\r\n this.clear(api);\r\n }\r\n this._lastGraphicKey = graphicKey;\r\n var moveAnimation = this._moveAnimation =\r\n this.determineAnimation(axisModel, axisPointerModel);\r\n if (!group) {\r\n group = this._group = new Group();\r\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\r\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\r\n api.getZr().add(group);\r\n }\r\n else {\r\n var doUpdateProps = curry(updateProps$1, axisPointerModel, moveAnimation);\r\n this.updatePointerEl(group, elOption, doUpdateProps);\r\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\r\n }\r\n updateMandatoryProps(group, axisPointerModel, true);\r\n this._renderHandle(value);\r\n };\r\n BaseAxisPointer.prototype.remove = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.dispose = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\r\n var animation = axisPointerModel.get('animation');\r\n var axis = axisModel.axis;\r\n var isCategoryAxis = axis.type === 'category';\r\n var useSnap = axisPointerModel.get('snap');\r\n if (!useSnap && !isCategoryAxis) {\r\n return false;\r\n }\r\n if (animation === 'auto' || animation == null) {\r\n var animationThreshold = this.animationThreshold;\r\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\r\n return true;\r\n }\r\n if (useSnap) {\r\n var seriesDataCount = getAxisInfo(axisModel).seriesDataCount;\r\n var axisExtent = axis.getExtent();\r\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\r\n }\r\n return false;\r\n }\r\n return animation === true;\r\n };\r\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n };\r\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\r\n var pointerOption = elOption.pointer;\r\n if (pointerOption) {\r\n var pointerEl = inner$9(group).pointerEl = new graphic[pointerOption.type](clone$3(elOption.pointer));\r\n group.add(pointerEl);\r\n }\r\n };\r\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\r\n if (elOption.label) {\r\n var labelEl = inner$9(group).labelEl = new ZRText(clone$3(elOption.label));\r\n group.add(labelEl);\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\r\n var pointerEl = inner$9(group).pointerEl;\r\n if (pointerEl && elOption.pointer) {\r\n pointerEl.setStyle(elOption.pointer.style);\r\n updateProps(pointerEl, { shape: elOption.pointer.shape });\r\n }\r\n };\r\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\r\n var labelEl = inner$9(group).labelEl;\r\n if (labelEl) {\r\n labelEl.setStyle(elOption.label.style);\r\n updateProps(labelEl, {\r\n x: elOption.label.x,\r\n y: elOption.label.y\r\n });\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype._renderHandle = function (value) {\r\n if (this._dragging || !this.updateHandleTransform) {\r\n return;\r\n }\r\n var axisPointerModel = this._axisPointerModel;\r\n var zr = this._api.getZr();\r\n var handle = this._handle;\r\n var handleModel = axisPointerModel.getModel('handle');\r\n var status = axisPointerModel.get('status');\r\n if (!handleModel.get('show') || !status || status === 'hide') {\r\n handle && zr.remove(handle);\r\n this._handle = null;\r\n return;\r\n }\r\n var isInit;\r\n if (!this._handle) {\r\n isInit = true;\r\n handle = this._handle = createIcon(handleModel.get('icon'), {\r\n cursor: 'move',\r\n draggable: true,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n onmousedown: bind$1(this._onHandleDragMove, this, 0, 0),\r\n drift: bind$1(this._onHandleDragMove, this),\r\n ondragend: bind$1(this._onHandleDragEnd, this)\r\n });\r\n zr.add(handle);\r\n }\r\n updateMandatoryProps(handle, axisPointerModel, false);\r\n handle.setStyle(handleModel.getItemStyle(null, [\r\n 'color', 'borderColor', 'borderWidth', 'opacity',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ]));\r\n var handleSize = handleModel.get('size');\r\n if (!isArray(handleSize)) {\r\n handleSize = [handleSize, handleSize];\r\n }\r\n handle.scaleX = handleSize[0] / 2;\r\n handle.scaleY = handleSize[1] / 2;\r\n createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\r\n this._moveHandleToValue(value, isInit);\r\n };\r\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\r\n updateProps$1(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\r\n };\r\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n this._dragging = true;\r\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\r\n this._payloadInfo = trans;\r\n handle.stopAnimation();\r\n handle.attr(getHandleTransProps(trans));\r\n inner$9(handle).lastProp = null;\r\n this._doDispatchAxisPointer();\r\n };\r\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var payloadInfo = this._payloadInfo;\r\n var axisModel = this._axisModel;\r\n this._api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payloadInfo.cursorPoint[0],\r\n y: payloadInfo.cursorPoint[1],\r\n tooltipOption: payloadInfo.tooltipOption,\r\n axesInfo: [{\r\n axisDim: axisModel.axis.dim,\r\n axisIndex: axisModel.componentIndex\r\n }]\r\n });\r\n };\r\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\r\n this._dragging = false;\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var value = this._axisPointerModel.get('value');\r\n this._moveHandleToValue(value);\r\n this._api.dispatchAction({\r\n type: 'hideTip'\r\n });\r\n };\r\n BaseAxisPointer.prototype.clear = function (api) {\r\n this._lastValue = null;\r\n this._lastStatus = null;\r\n var zr = api.getZr();\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (zr && group) {\r\n this._lastGraphicKey = null;\r\n group && zr.remove(group);\r\n handle && zr.remove(handle);\r\n this._group = null;\r\n this._handle = null;\r\n this._payloadInfo = null;\r\n }\r\n };\r\n BaseAxisPointer.prototype.doClear = function () {\r\n };\r\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n };\r\n return BaseAxisPointer;\r\n }());\r\n function updateProps$1(animationModel, moveAnimation, el, props) {\r\n if (!propsEqual(inner$9(el).lastProp, props)) {\r\n inner$9(el).lastProp = props;\r\n moveAnimation\r\n ? updateProps(el, props, animationModel)\r\n : (el.stopAnimation(), el.attr(props));\r\n }\r\n }\r\n function propsEqual(lastProps, newProps) {\r\n if (isObject(lastProps) && isObject(newProps)) {\r\n var equals_1 = true;\r\n each(newProps, function (item, key) {\r\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\r\n });\r\n return !!equals_1;\r\n }\r\n else {\r\n return lastProps === newProps;\r\n }\r\n }\r\n function updateLabelShowHide(labelEl, axisPointerModel) {\r\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\r\n }\r\n function getHandleTransProps(trans) {\r\n return {\r\n x: trans.x || 0,\r\n y: trans.y || 0,\r\n rotation: trans.rotation || 0\r\n };\r\n }\r\n function updateMandatoryProps(group, axisPointerModel, silent) {\r\n var z = axisPointerModel.get('z');\r\n var zlevel = axisPointerModel.get('zlevel');\r\n group && group.traverse(function (el) {\r\n if (el.type !== 'group') {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n el.silent = silent;\r\n }\r\n });\r\n }\n\n function buildElStyle(axisPointerModel) {\r\n var axisPointerType = axisPointerModel.get('type');\r\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\r\n var style;\r\n if (axisPointerType === 'line') {\r\n style = styleModel.getLineStyle();\r\n style.fill = null;\r\n }\r\n else if (axisPointerType === 'shadow') {\r\n style = styleModel.getAreaStyle();\r\n style.stroke = null;\r\n }\r\n return style;\r\n }\r\n function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\r\n var value = axisPointerModel.get('value');\r\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n });\r\n var labelModel = axisPointerModel.getModel('label');\r\n var paddings = normalizeCssArray$1(labelModel.get('padding') || 0);\r\n var font = labelModel.getFont();\r\n var textRect = getBoundingRect(text, font);\r\n var position = labelPos.position;\r\n var width = textRect.width + paddings[1] + paddings[3];\r\n var height = textRect.height + paddings[0] + paddings[2];\r\n var align = labelPos.align;\r\n align === 'right' && (position[0] -= width);\r\n align === 'center' && (position[0] -= width / 2);\r\n var verticalAlign = labelPos.verticalAlign;\r\n verticalAlign === 'bottom' && (position[1] -= height);\r\n verticalAlign === 'middle' && (position[1] -= height / 2);\r\n confineInContainer(position, width, height, api);\r\n var bgColor = labelModel.get('backgroundColor');\r\n if (!bgColor || bgColor === 'auto') {\r\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n }\r\n elOption.label = {\r\n x: position[0],\r\n y: position[1],\r\n style: {\r\n text: text,\r\n textFont: font,\r\n fill: labelModel.getTextColor(),\r\n padding: paddings,\r\n backgroundColor: bgColor,\r\n borderColor: labelModel.get('borderColor') || 'transparent',\r\n borderRadius: labelModel.get('borderRadius'),\r\n borderWidth: labelModel.get('borderWidth') || 0,\r\n shadowBlur: labelModel.get('shadowBlur'),\r\n shadowColor: labelModel.get('shadowColor'),\r\n shadowOffsetX: labelModel.get('shadowOffsetX'),\r\n shadowOffsetY: labelModel.get('shadowOffsetY')\r\n },\r\n z2: 10\r\n };\r\n }\r\n function confineInContainer(position, width, height, api) {\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n position[0] = Math.min(position[0] + width, viewWidth) - width;\r\n position[1] = Math.min(position[1] + height, viewHeight) - height;\r\n position[0] = Math.max(position[0], 0);\r\n position[1] = Math.max(position[1], 0);\r\n }\r\n function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\r\n value = axis.scale.parse(value);\r\n var text = axis.scale.getLabel({\r\n value: value\r\n }, {\r\n precision: opt.precision\r\n });\r\n var formatter = opt.formatter;\r\n if (formatter) {\r\n var params_1 = {\r\n value: getAxisRawValue(axis, { value: value }),\r\n axisDimension: axis.dim,\r\n axisIndex: axis.index,\r\n seriesData: []\r\n };\r\n each(seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams && params_1.seriesData.push(dataParams);\r\n });\r\n if (isString(formatter)) {\r\n text = formatter.replace('{value}', text);\r\n }\r\n else if (isFunction(formatter)) {\r\n text = formatter(params_1);\r\n }\r\n }\r\n return text;\r\n }\r\n function getTransformedPosition(axis, value, layoutInfo) {\r\n var transform = create$1();\r\n rotate(transform, transform, layoutInfo.rotation);\r\n translate(transform, transform, layoutInfo.position);\r\n return applyTransform$1([\r\n axis.dataToCoord(value),\r\n (layoutInfo.labelOffset || 0)\r\n + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)\r\n ], transform);\r\n }\r\n function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\r\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\r\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\r\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\r\n align: textLayout.textAlign,\r\n verticalAlign: textLayout.textVerticalAlign\r\n });\r\n }\r\n function makeLineShape(p1, p2, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x1: p1[xDimIndex],\r\n y1: p1[1 - xDimIndex],\r\n x2: p2[xDimIndex],\r\n y2: p2[1 - xDimIndex]\r\n };\r\n }\r\n function makeRectShape(xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n }\n\n var CartesianAxisPointer = (function (_super) {\r\n __extends(CartesianAxisPointer, _super);\r\n function CartesianAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisPointerType = axisPointerModel.get('type');\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$1(grid.model, axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$1(axisModel.axis.grid.model, axisModel, {\r\n labelInside: false\r\n });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var pos = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisExtent = axis.getGlobalExtent(true);\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var dimIndex = axis.dim === 'x' ? 0 : 1;\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n var tooltipOptions = [\r\n { verticalAlign: 'middle' },\r\n { align: 'center' }\r\n ];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: tooltipOptions[dimIndex]\r\n };\r\n };\r\n return CartesianAxisPointer;\r\n }(BaseAxisPointer));\r\n function getCartesian(grid, axis) {\r\n var opt = {};\r\n opt[axis.dim + 'AxisIndex'] = axis.index;\r\n return grid.getCartesian(opt);\r\n }\r\n var pointerShapeBuilder = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getAxisDimIndex(axis) {\r\n return axis.dim === 'x' ? 0 : 1;\r\n }\r\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n\n var AxisPointerModel = (function (_super) {\r\n __extends(AxisPointerModel, _super);\r\n function AxisPointerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerModel.type;\r\n return _this;\r\n }\r\n AxisPointerModel.type = 'axisPointer';\r\n AxisPointerModel.defaultOption = {\r\n show: 'auto',\r\n zlevel: 0,\r\n z: 50,\r\n type: 'line',\r\n snap: false,\r\n triggerTooltip: true,\r\n value: null,\r\n status: null,\r\n link: [],\r\n animation: null,\r\n animationDurationUpdate: 200,\r\n lineStyle: {\r\n color: '#B9BEC9',\r\n width: 1,\r\n type: 'dashed'\r\n },\r\n shadowStyle: {\r\n color: 'rgba(210,219,238,0.2)'\r\n },\r\n label: {\r\n show: true,\r\n formatter: null,\r\n precision: 'auto',\r\n margin: 3,\r\n color: '#fff',\r\n padding: [5, 7, 5, 7],\r\n backgroundColor: 'auto',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderRadius: 3\r\n },\r\n handle: {\r\n show: false,\r\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\r\n size: 45,\r\n margin: 50,\r\n color: '#333',\r\n shadowBlur: 3,\r\n shadowColor: '#aaa',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 2,\r\n throttle: 40\r\n }\r\n };\r\n return AxisPointerModel;\r\n }(ComponentModel));\n\n ComponentModel.registerClass(AxisPointerModel);\r\n registerPreprocessor(function (option) {\r\n if (option) {\r\n (!option.axisPointer || option.axisPointer.length === 0)\r\n && (option.axisPointer = {});\r\n var link = option.axisPointer.link;\r\n if (link && !isArray(link)) {\r\n option.axisPointer.link = [link];\r\n }\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\r\n ecModel.getComponent('axisPointer').coordSysAxesInfo =\r\n collect(ecModel, api);\r\n });\r\n registerAction({\r\n type: 'updateAxisPointer',\r\n event: 'updateAxisPointer',\r\n update: ':updateAxisPointer'\r\n }, axisTrigger);\n\n var TooltipModel = (function (_super) {\r\n __extends(TooltipModel, _super);\r\n function TooltipModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipModel.type;\r\n return _this;\r\n }\r\n TooltipModel.type = 'tooltip';\r\n TooltipModel.dependencies = ['axisPointer'];\r\n TooltipModel.defaultOption = {\r\n zlevel: 0,\r\n z: 60,\r\n show: true,\r\n showContent: true,\r\n trigger: 'item',\r\n triggerOn: 'mousemove|click',\r\n alwaysShowContent: false,\r\n displayMode: 'single',\r\n renderMode: 'auto',\r\n confine: false,\r\n showDelay: 0,\r\n hideDelay: 100,\r\n transitionDuration: 0.4,\r\n enterable: false,\r\n backgroundColor: '#fff',\r\n shadowBlur: 10,\r\n shadowColor: 'rgba(0, 0, 0, .2)',\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 2,\r\n borderColor: '#333',\r\n borderRadius: 4,\r\n borderWidth: 1,\r\n padding: 10,\r\n extraCssText: '',\r\n axisPointer: {\r\n type: 'line',\r\n axis: 'auto',\r\n animation: 'auto',\r\n animationDurationUpdate: 200,\r\n animationEasingUpdate: 'exponentialOut',\r\n crossStyle: {\r\n color: '#999',\r\n width: 1,\r\n type: 'dashed',\r\n textStyle: {}\r\n }\r\n },\r\n textStyle: {\r\n color: '#666',\r\n fontSize: 14\r\n }\r\n };\r\n return TooltipModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TooltipModel);\n\n var each$5 = each;\r\n var toCamelCase$1 = toCamelCase;\r\n var vendors = ['', '-webkit-', '-moz-', '-o-'];\r\n var gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\r\n function mirrowPos(pos) {\r\n pos = pos === 'left'\r\n ? 'right'\r\n : pos === 'right'\r\n ? 'left'\r\n : pos === 'top'\r\n ? 'bottom'\r\n : 'top';\r\n return pos;\r\n }\r\n function getFinalColor(color) {\r\n var finalNearPointColor = '#fff';\r\n if (isObject(color) && color.type !== 'pattern') {\r\n finalNearPointColor = color.colorStops[0].color;\r\n }\r\n else if (isObject(color) && (color.type === 'pattern')) {\r\n finalNearPointColor = 'transparent';\r\n }\r\n else if (isString(color)) {\r\n finalNearPointColor = color;\r\n }\r\n return finalNearPointColor;\r\n }\r\n function assembleArrow(backgroundColor, borderColor, arrowPosition) {\r\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\r\n return '';\r\n }\r\n borderColor = getFinalColor(borderColor);\r\n var arrowPos = mirrowPos(arrowPosition);\r\n var centerPos = '';\r\n var rotate = 0;\r\n if (indexOf(['left', 'right'], arrowPos) > -1) {\r\n centerPos = arrowPos + \":-6px;top:50%;transform:translateY(-50%)\";\r\n rotate = arrowPos === 'left' ? -225 : -45;\r\n }\r\n else {\r\n centerPos = arrowPos + \":-6px;left:50%;transform:translateX(-50%)\";\r\n rotate = arrowPos === 'top' ? 225 : 45;\r\n }\r\n var styleCss = [\r\n 'style=\"position:absolute;width:10px;height:10px;',\r\n \"\" + centerPos,\r\n \"rotate(\" + rotate + \"deg);\",\r\n \"border-bottom: \" + borderColor + \" solid 1px;\",\r\n \"border-right: \" + borderColor + \" solid 1px;\",\r\n \"background-color: \" + backgroundColor + \";\",\r\n 'box-shadow: 8px 8px 16px -3px #000',\r\n '\"'\r\n ];\r\n return \"
\";\r\n }\r\n function assembleTransition(duration) {\r\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\r\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ','\r\n + 'top ' + duration + 's ' + transitionCurve;\r\n return map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transition:' + transitionText;\r\n }).join(';');\r\n }\r\n function assembleFont(textStyleModel) {\r\n var cssText = [];\r\n var fontSize = textStyleModel.get('fontSize');\r\n var color = textStyleModel.getTextColor();\r\n color && cssText.push('color:' + color);\r\n cssText.push('font:' + textStyleModel.getFont());\r\n fontSize\r\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\r\n each$5(['decoration', 'align'], function (name) {\r\n var val = textStyleModel.get(name);\r\n val && cssText.push('text-' + name + ':' + val);\r\n });\r\n return cssText.join(';');\r\n }\r\n function assembleCssText(tooltipModel, isFirstShow) {\r\n var cssText = [];\r\n var transitionDuration = tooltipModel.get('transitionDuration');\r\n var backgroundColor = tooltipModel.get('backgroundColor');\r\n var shadowBlur = tooltipModel.get('shadowBlur');\r\n var shadowColor = tooltipModel.get('shadowColor');\r\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\r\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n var padding = tooltipModel.get('padding');\r\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\r\n cssText.push('box-shadow:' + boxShadow);\r\n !isFirstShow && transitionDuration\r\n && indexOf(['top', 'left', 'bottom', 'right'], tooltipModel.get('position')) > -1\r\n && tooltipModel.get('trigger') !== 'item'\r\n && cssText.push(assembleTransition(transitionDuration));\r\n if (backgroundColor) {\r\n if (env.canvasSupported) {\r\n cssText.push('background-Color:' + backgroundColor);\r\n }\r\n else {\r\n cssText.push('background-Color:#' + toHex(backgroundColor));\r\n cssText.push('filter:alpha(opacity=70)');\r\n }\r\n }\r\n each$5(['width', 'color', 'radius'], function (name) {\r\n var borderName = 'border-' + name;\r\n var camelCase = toCamelCase$1(borderName);\r\n var val = tooltipModel.get(camelCase);\r\n val != null\r\n && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\r\n });\r\n cssText.push(assembleFont(textStyleModel));\r\n if (padding != null) {\r\n cssText.push('padding:' + normalizeCssArray$1(padding).join('px ') + 'px');\r\n }\r\n return cssText.join(';') + ';';\r\n }\r\n function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\r\n var zrPainter = zr && zr.painter;\r\n if (appendToBody) {\r\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\r\n if (zrViewportRoot) {\r\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\r\n }\r\n }\r\n else {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\r\n if (viewportRootOffset) {\r\n out[0] += viewportRootOffset.offsetLeft;\r\n out[1] += viewportRootOffset.offsetTop;\r\n }\r\n }\r\n }\r\n var TooltipHTMLContent = (function () {\r\n function TooltipHTMLContent(container, api, opt) {\r\n this._show = false;\r\n this._styleCoord = [0, 0];\r\n this._enterable = true;\r\n this._firstShow = true;\r\n if (env.wxa) {\r\n return null;\r\n }\r\n var el = document.createElement('div');\r\n el.domBelongToZr = true;\r\n this.el = el;\r\n var zr = this._zr = api.getZr();\r\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\r\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\r\n if (appendToBody) {\r\n document.body.appendChild(el);\r\n }\r\n else {\r\n container.appendChild(el);\r\n }\r\n this._container = container;\r\n var self = this;\r\n el.onmouseenter = function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n };\r\n el.onmousemove = function (e) {\r\n e = e || window.event;\r\n if (!self._enterable) {\r\n var handler = zr.handler;\r\n var zrViewportRoot = zr.painter.getViewportRoot();\r\n normalizeEvent(zrViewportRoot, e, true);\r\n handler.dispatch('mousemove', e);\r\n }\r\n };\r\n el.onmouseleave = function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n };\r\n }\r\n TooltipHTMLContent.prototype.update = function () {\r\n var container = this._container;\r\n var stl = container.currentStyle\r\n || document.defaultView.getComputedStyle(container);\r\n var domStyle = container.style;\r\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\r\n domStyle.position = 'relative';\r\n }\r\n };\r\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\r\n clearTimeout(this._hideTimeout);\r\n var el = this.el;\r\n var styleCoord = this._styleCoord;\r\n var offset = el.offsetHeight / 2;\r\n nearPointColor = getFinalColor(nearPointColor);\r\n el.style.cssText = gCssText + assembleCssText(tooltipModel, this._firstShow)\r\n + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;'\r\n + (\"border-color: \" + nearPointColor + \";\")\r\n + (tooltipModel.get('extraCssText') || '');\r\n el.style.display = el.innerHTML ? 'block' : 'none';\r\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\r\n this._show = true;\r\n this._firstShow = false;\r\n };\r\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\r\n if (content == null) {\r\n return;\r\n }\r\n this.el.innerHTML = content;\r\n this.el.innerHTML += (isString(arrowPosition)\r\n && tooltipModel.get('trigger') === 'item'\r\n && !tooltipModel.get('confine'))\r\n ? assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition) : '';\r\n };\r\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipHTMLContent.prototype.getSize = function () {\r\n var el = this.el;\r\n return [el.clientWidth, el.clientHeight];\r\n };\r\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\r\n var style = this.el.style;\r\n style.left = styleCoord[0] + 'px';\r\n style.top = styleCoord[1] + 'px';\r\n };\r\n TooltipHTMLContent.prototype.hide = function () {\r\n this.el.style.display = 'none';\r\n this._show = false;\r\n };\r\n TooltipHTMLContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipHTMLContent.prototype.dispose = function () {\r\n this.el.parentNode.removeChild(this.el);\r\n };\r\n TooltipHTMLContent.prototype.getOuterSize = function () {\r\n var width = this.el.clientWidth;\r\n var height = this.el.clientHeight;\r\n if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var stl = document.defaultView.getComputedStyle(this.el);\r\n if (stl) {\r\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\r\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\r\n }\r\n }\r\n return { width: width, height: height };\r\n };\r\n return TooltipHTMLContent;\r\n }());\n\n var TooltipRichContent = (function () {\r\n function TooltipRichContent(api) {\r\n this._show = false;\r\n this._enterable = true;\r\n this._zr = api.getZr();\r\n }\r\n TooltipRichContent.prototype.update = function () {\r\n };\r\n TooltipRichContent.prototype.show = function () {\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n }\r\n this.el.show();\r\n this._show = true;\r\n };\r\n TooltipRichContent.prototype.setContent = function (content, markerRich, tooltipModel, borderColor, arrowPosition) {\r\n if (this.el) {\r\n this._zr.remove(this.el);\r\n }\r\n var markers = {};\r\n var text = content;\r\n var prefix = '{marker';\r\n var suffix = '|}';\r\n var startId = text.indexOf(prefix);\r\n while (startId >= 0) {\r\n var endId = text.indexOf(suffix);\r\n var name_1 = text.substr(startId + prefix.length, endId - startId - prefix.length);\r\n if (name_1.indexOf('sub') > -1) {\r\n markers['marker' + name_1] = {\r\n width: 4,\r\n height: 4,\r\n borderRadius: 2,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n else {\r\n markers['marker' + name_1] = {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 5,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n text = text.substr(endId + 1);\r\n startId = text.indexOf(prefix);\r\n }\r\n this.el = new ZRText({\r\n style: {\r\n rich: markers,\r\n text: content,\r\n lineHeight: 20,\r\n backgroundColor: tooltipModel.get('backgroundColor'),\r\n borderRadius: tooltipModel.get('borderRadius'),\r\n borderWidth: 1,\r\n borderColor: borderColor,\r\n shadowColor: tooltipModel.get('shadowColor'),\r\n shadowBlur: tooltipModel.get('shadowBlur'),\r\n shadowOffsetX: tooltipModel.get('shadowOffsetX'),\r\n shadowOffsetY: tooltipModel.get('shadowOffsetY'),\r\n fill: tooltipModel.get(['textStyle', 'color']),\r\n padding: tooltipModel.get('padding'),\r\n verticalAlign: 'middle',\r\n align: 'left'\r\n },\r\n z: tooltipModel.get('z')\r\n });\r\n this._zr.add(this.el);\r\n var self = this;\r\n this.el.on('mouseover', function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n });\r\n this.el.on('mouseout', function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n });\r\n };\r\n TooltipRichContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipRichContent.prototype.getSize = function () {\r\n var bounding = this.el.getBoundingRect();\r\n return [bounding.width, bounding.height];\r\n };\r\n TooltipRichContent.prototype.moveTo = function (x, y) {\r\n var el = this.el;\r\n if (el) {\r\n el.x = x;\r\n el.y = y;\r\n el.markRedraw();\r\n }\r\n };\r\n TooltipRichContent.prototype.hide = function () {\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n this._show = false;\r\n };\r\n TooltipRichContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipRichContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipRichContent.prototype.getOuterSize = function () {\r\n var size = this.getSize();\r\n return {\r\n width: size[0],\r\n height: size[1]\r\n };\r\n };\r\n TooltipRichContent.prototype.dispose = function () {\r\n this._zr.remove(this.el);\r\n };\r\n return TooltipRichContent;\r\n }());\n\n var bind$2 = bind;\r\n var each$6 = each;\r\n var parsePercent$3 = parsePercent$2;\r\n var proxyRect = new Rect({\r\n shape: { x: -1, y: -1, width: 2, height: 2 }\r\n });\r\n var TooltipView = (function (_super) {\r\n __extends(TooltipView, _super);\r\n function TooltipView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipView.type;\r\n return _this;\r\n }\r\n TooltipView.prototype.init = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var tooltipModel = ecModel.getComponent('tooltip');\r\n var renderMode = tooltipModel.get('renderMode');\r\n this._renderMode = getTooltipRenderMode(renderMode);\r\n var tooltipContent;\r\n if (this._renderMode === 'html') {\r\n tooltipContent = new TooltipHTMLContent(api.getDom(), api, {\r\n appendToBody: tooltipModel.get('appendToBody', true)\r\n });\r\n this._newLine = '';\r\n }\r\n else {\r\n tooltipContent = new TooltipRichContent(api);\r\n this._newLine = '\\n';\r\n }\r\n this._tooltipContent = tooltipContent;\r\n };\r\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this.group.removeAll();\r\n this._tooltipModel = tooltipModel;\r\n this._ecModel = ecModel;\r\n this._api = api;\r\n this._lastDataByCoordSys = null;\r\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n var tooltipContent = this._tooltipContent;\r\n tooltipContent.update();\r\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\r\n this._initGlobalListener();\r\n this._keepShow();\r\n };\r\n TooltipView.prototype._initGlobalListener = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var triggerOn = tooltipModel.get('triggerOn');\r\n register('itemTooltip', this._api, bind$2(function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none') {\r\n if (triggerOn.indexOf(currTrigger) >= 0) {\r\n this._tryShow(e, dispatchAction);\r\n }\r\n else if (currTrigger === 'leave') {\r\n this._hide(dispatchAction);\r\n }\r\n }\r\n }, this));\r\n };\r\n TooltipView.prototype._keepShow = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var ecModel = this._ecModel;\r\n var api = this._api;\r\n if (this._lastX != null\r\n && this._lastY != null\r\n && tooltipModel.get('triggerOn') !== 'none') {\r\n var self_1 = this;\r\n clearTimeout(this._refreshUpdateTimeout);\r\n this._refreshUpdateTimeout = setTimeout(function () {\r\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\r\n x: self_1._lastX,\r\n y: self_1._lastY\r\n });\r\n });\r\n }\r\n };\r\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\r\n if (payload.from === this.uid || env.node) {\r\n return;\r\n }\r\n var dispatchAction = makeDispatchAction$1(payload, api);\r\n this._ticket = '';\r\n var dataByCoordSys = payload.dataByCoordSys;\r\n if (payload.tooltip && payload.x != null && payload.y != null) {\r\n var el = proxyRect;\r\n el.x = payload.x;\r\n el.y = payload.y;\r\n el.update();\r\n el.tooltip = payload.tooltip;\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n target: el\r\n }, dispatchAction);\r\n }\r\n else if (dataByCoordSys) {\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n dataByCoordSys: dataByCoordSys,\r\n tooltipOption: payload.tooltipOption\r\n }, dispatchAction);\r\n }\r\n else if (payload.seriesIndex != null) {\r\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\r\n return;\r\n }\r\n var pointInfo = findPointFromSeries(payload, ecModel);\r\n var cx = pointInfo.point[0];\r\n var cy = pointInfo.point[1];\r\n if (cx != null && cy != null) {\r\n this._tryShow({\r\n offsetX: cx,\r\n offsetY: cy,\r\n position: payload.position,\r\n target: pointInfo.el\r\n }, dispatchAction);\r\n }\r\n }\r\n else if (payload.x != null && payload.y != null) {\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payload.x,\r\n y: payload.y\r\n });\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n target: api.getZr().findHover(payload.x, payload.y).target\r\n }, dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\r\n var tooltipContent = this._tooltipContent;\r\n if (!this._alwaysShowContent && this._tooltipModel) {\r\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\r\n }\r\n this._lastX = this._lastY = null;\r\n if (payload.from !== this.uid) {\r\n this._hide(makeDispatchAction$1(payload, api));\r\n }\r\n };\r\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\r\n var seriesIndex = payload.seriesIndex;\r\n var dataIndex = payload.dataIndex;\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\r\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (!seriesModel) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var tooltipCascadedModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n seriesModel,\r\n (seriesModel.coordinateSystem || {}).model,\r\n tooltipModel\r\n ]);\r\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\r\n return;\r\n }\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n seriesIndex: seriesIndex,\r\n dataIndex: dataIndex,\r\n position: payload.position\r\n });\r\n return true;\r\n };\r\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\r\n var el = e.target;\r\n var tooltipModel = this._tooltipModel;\r\n if (!tooltipModel) {\r\n return;\r\n }\r\n this._lastX = e.offsetX;\r\n this._lastY = e.offsetY;\r\n var dataByCoordSys = e.dataByCoordSys;\r\n if (dataByCoordSys && dataByCoordSys.length) {\r\n this._showAxisTooltip(dataByCoordSys, e);\r\n }\r\n else if (el && getECData(el).dataIndex != null) {\r\n this._lastDataByCoordSys = null;\r\n this._showSeriesItemTooltip(e, el, dispatchAction);\r\n }\r\n else if (el && el.tooltip) {\r\n this._lastDataByCoordSys = null;\r\n this._showComponentItemTooltip(e, el, dispatchAction);\r\n }\r\n else {\r\n this._lastDataByCoordSys = null;\r\n this._hide(dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\r\n var delay = tooltipModel.get('showDelay');\r\n cb = bind(cb, this);\r\n clearTimeout(this._showTimout);\r\n delay > 0\r\n ? (this._showTimout = setTimeout(cb, delay))\r\n : cb();\r\n };\r\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\r\n var ecModel = this._ecModel;\r\n var globalTooltipModel = this._tooltipModel;\r\n var point = [e.offsetX, e.offsetY];\r\n var singleDefaultHTML = [];\r\n var singleParamsList = [];\r\n var singleTooltipModel = buildTooltipModel([\r\n e.tooltipOption,\r\n globalTooltipModel\r\n ]);\r\n var renderMode = this._renderMode;\r\n var newLine = this._newLine;\r\n var markers = {};\r\n each$6(dataByCoordSys, function (itemCoordSys) {\r\n each$6(itemCoordSys.dataByAxis, function (item) {\r\n var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex);\r\n var axisValue = item.value;\r\n var seriesDefaultHTML = [];\r\n if (!axisModel || axisValue == null) {\r\n return;\r\n }\r\n var valueLabel = getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt);\r\n each(item.seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams.axisDim = item.axisDim;\r\n dataParams.axisIndex = item.axisIndex;\r\n dataParams.axisType = item.axisType;\r\n dataParams.axisId = item.axisId;\r\n dataParams.axisValue = getAxisRawValue(axisModel.axis, { value: axisValue });\r\n dataParams.axisValueLabel = valueLabel;\r\n dataParams.marker = getTooltipMarker({\r\n color: dataParams.color,\r\n renderMode: renderMode\r\n });\r\n singleParamsList.push(dataParams);\r\n var seriesTooltip = series.formatTooltip(dataIndex, true, null, renderMode);\r\n var html;\r\n if (isObject(seriesTooltip)) {\r\n html = seriesTooltip.html;\r\n var newMarkers = seriesTooltip.markers;\r\n merge(markers, newMarkers);\r\n }\r\n else {\r\n html = seriesTooltip;\r\n }\r\n dataParams.html = html;\r\n });\r\n switch (singleTooltipModel.get('order')) {\r\n case 'valueAsc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(a.data) - +(b.data);\r\n });\r\n break;\r\n case 'valueDesc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(b.data) - +(a.data);\r\n });\r\n break;\r\n case 'seriesDesc':\r\n singleParamsList.reverse();\r\n break;\r\n }\r\n each(singleParamsList, function (params) {\r\n seriesDefaultHTML.push(params.html);\r\n delete params.html;\r\n });\r\n var firstLine = valueLabel;\r\n if (renderMode !== 'html') {\r\n singleDefaultHTML.push(seriesDefaultHTML.join(newLine));\r\n }\r\n else {\r\n singleDefaultHTML.push((firstLine\r\n ? ('
'\r\n + encodeHTML(firstLine) + '
'\r\n + newLine)\r\n : '')\r\n + seriesDefaultHTML.reverse().join(newLine));\r\n }\r\n singleDefaultHTML.push('
');\r\n });\r\n }, this);\r\n singleDefaultHTML.pop();\r\n var singleDefaultHTMLStr = singleDefaultHTML.join(this._newLine + this._newLine);\r\n var positionExpr = e.position;\r\n this._showOrMove(singleTooltipModel, function () {\r\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\r\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList);\r\n }\r\n else {\r\n this._showTooltipContent(singleTooltipModel, singleDefaultHTMLStr, singleParamsList, Math.random() + '', point[0], point[1], positionExpr, undefined, markers);\r\n }\r\n });\r\n };\r\n TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\r\n var ecModel = this._ecModel;\r\n var ecData = getECData(el);\r\n var seriesIndex = ecData.seriesIndex;\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n var dataModel = ecData.dataModel || seriesModel;\r\n var dataIndex = ecData.dataIndex;\r\n var dataType = ecData.dataType;\r\n var data = dataModel.getData(dataType);\r\n var tooltipModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n dataModel,\r\n seriesModel && (seriesModel.coordinateSystem || {}).model,\r\n this._tooltipModel\r\n ]);\r\n var tooltipTrigger = tooltipModel.get('trigger');\r\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\r\n return;\r\n }\r\n var tooltipOrder = tooltipModel.get('order');\r\n var params = dataModel.getDataParams(dataIndex, dataType);\r\n params.marker = getTooltipMarker({\r\n color: params.color,\r\n renderMode: this._renderMode\r\n });\r\n var seriesTooltip = dataModel.formatTooltip(dataIndex, false, dataType, this._renderMode, tooltipOrder);\r\n var defaultHtml;\r\n var markers;\r\n if (isObject(seriesTooltip)) {\r\n defaultHtml = seriesTooltip.html;\r\n markers = seriesTooltip.markers;\r\n }\r\n else {\r\n defaultHtml = seriesTooltip;\r\n markers = null;\r\n }\r\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\r\n this._showOrMove(tooltipModel, function () {\r\n this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markers);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n dataIndexInside: dataIndex,\r\n dataIndex: data.getRawIndex(dataIndex),\r\n seriesIndex: seriesIndex,\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\r\n var tooltipOpt = el.tooltip;\r\n if (isString(tooltipOpt)) {\r\n var content = tooltipOpt;\r\n tooltipOpt = {\r\n content: content,\r\n formatter: content\r\n };\r\n }\r\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\r\n var defaultHtml = subTooltipModel.get('content');\r\n var asyncTicket = Math.random() + '';\r\n this._showOrMove(subTooltipModel, function () {\r\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markers) {\r\n this._ticket = '';\r\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\r\n return;\r\n }\r\n var tooltipContent = this._tooltipContent;\r\n var formatter = tooltipModel.get('formatter');\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var html = defaultHtml;\r\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'));\r\n if (formatter && isString(formatter)) {\r\n html = formatTpl(formatter, params, true);\r\n }\r\n else if (isFunction(formatter)) {\r\n var callback = bind$2(function (cbTicket, html) {\r\n if (cbTicket === this._ticket) {\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n }\r\n }, this);\r\n this._ticket = asyncTicket;\r\n html = formatter(params, asyncTicket, callback);\r\n }\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n tooltipContent.show(tooltipModel, nearPoint.color);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n };\r\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger) {\r\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\r\n return {\r\n color: this._renderMode === 'html' ? '#fff' : 'none'\r\n };\r\n }\r\n if (!isArray(tooltipDataParams)) {\r\n return {\r\n color: tooltipDataParams.color || tooltipDataParams.borderColor\r\n };\r\n }\r\n };\r\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\r\n var viewWidth = this._api.getWidth();\r\n var viewHeight = this._api.getHeight();\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var contentSize = content.getSize();\r\n var align = tooltipModel.get('align');\r\n var vAlign = tooltipModel.get('verticalAlign');\r\n var rect = el && el.getBoundingRect().clone();\r\n el && rect.applyTransform(el.transform);\r\n if (isFunction(positionExpr)) {\r\n positionExpr = positionExpr([x, y], params, content.el, rect, {\r\n viewSize: [viewWidth, viewHeight],\r\n contentSize: contentSize.slice()\r\n });\r\n }\r\n if (isArray(positionExpr)) {\r\n x = parsePercent$3(positionExpr[0], viewWidth);\r\n y = parsePercent$3(positionExpr[1], viewHeight);\r\n }\r\n else if (isObject(positionExpr)) {\r\n var boxLayoutPosition = positionExpr;\r\n boxLayoutPosition.width = contentSize[0];\r\n boxLayoutPosition.height = contentSize[1];\r\n var layoutRect = getLayoutRect(boxLayoutPosition, { width: viewWidth, height: viewHeight });\r\n x = layoutRect.x;\r\n y = layoutRect.y;\r\n align = null;\r\n vAlign = null;\r\n }\r\n else if (isString(positionExpr) && el) {\r\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n else {\r\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\r\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\r\n if (tooltipModel.get('confine')) {\r\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n content.moveTo(x, y);\r\n };\r\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\r\n var lastCoordSys = this._lastDataByCoordSys;\r\n var contentNotChanged = !!lastCoordSys\r\n && lastCoordSys.length === dataByCoordSys.length;\r\n contentNotChanged && each$6(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\r\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\r\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\r\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\r\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\r\n contentNotChanged && each$6(lastDataByAxis, function (lastItem, indexAxis) {\r\n var thisItem = thisDataByAxis[indexAxis] || {};\r\n var lastIndices = lastItem.seriesDataIndices || [];\r\n var newIndices = thisItem.seriesDataIndices || [];\r\n contentNotChanged = contentNotChanged\r\n && lastItem.value === thisItem.value\r\n && lastItem.axisType === thisItem.axisType\r\n && lastItem.axisId === thisItem.axisId\r\n && lastIndices.length === newIndices.length;\r\n contentNotChanged && each$6(lastIndices, function (lastIdxItem, j) {\r\n var newIdxItem = newIndices[j];\r\n contentNotChanged = contentNotChanged\r\n && lastIdxItem.seriesIndex === newIdxItem.seriesIndex\r\n && lastIdxItem.dataIndex === newIdxItem.dataIndex;\r\n });\r\n });\r\n });\r\n this._lastDataByCoordSys = dataByCoordSys;\r\n return !!contentNotChanged;\r\n };\r\n TooltipView.prototype._hide = function (dispatchAction) {\r\n this._lastDataByCoordSys = null;\r\n dispatchAction({\r\n type: 'hideTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype.dispose = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this._tooltipContent.dispose();\r\n unregister('itemTooltip', api);\r\n };\r\n TooltipView.type = 'tooltip';\r\n return TooltipView;\r\n }(ComponentView));\r\n function buildTooltipModel(modelCascade) {\r\n var resultModel = modelCascade.pop();\r\n while (modelCascade.length) {\r\n var tooltipOpt = modelCascade.pop();\r\n if (tooltipOpt) {\r\n if (tooltipOpt instanceof Model) {\r\n tooltipOpt = tooltipOpt.get('tooltip', true);\r\n }\r\n if (isString(tooltipOpt)) {\r\n tooltipOpt = {\r\n formatter: tooltipOpt\r\n };\r\n }\r\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\r\n }\r\n }\r\n return resultModel;\r\n }\r\n function makeDispatchAction$1(payload, api) {\r\n return payload.dispatchAction || bind(api.dispatchAction, api);\r\n }\r\n function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n if (gapH != null) {\r\n if (x + width + gapH > viewWidth) {\r\n x -= width + gapH;\r\n }\r\n else {\r\n x += gapH;\r\n }\r\n }\r\n if (gapV != null) {\r\n if (y + height + gapV > viewHeight) {\r\n y -= height + gapV;\r\n }\r\n else {\r\n y += gapV;\r\n }\r\n }\r\n return [x, y];\r\n }\r\n function confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n x = Math.min(x + width, viewWidth) - width;\r\n y = Math.min(y + height, viewHeight) - height;\r\n x = Math.max(x, 0);\r\n y = Math.max(y, 0);\r\n return [x, y];\r\n }\r\n function calcTooltipPosition(position, rect, contentSize) {\r\n var domWidth = contentSize[0];\r\n var domHeight = contentSize[1];\r\n var gap = 10;\r\n var offset = 5;\r\n var x = 0;\r\n var y = 0;\r\n var rectWidth = rect.width;\r\n var rectHeight = rect.height;\r\n switch (position) {\r\n case 'inside':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'top':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y - domHeight - gap;\r\n break;\r\n case 'bottom':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight + gap;\r\n break;\r\n case 'left':\r\n x = rect.x - domWidth - gap - offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'right':\r\n x = rect.x + rectWidth + gap + offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n }\r\n return [x, y];\r\n }\r\n function isCenterAlign(align) {\r\n return align === 'center' || align === 'middle';\r\n }\r\n ComponentView.registerClass(TooltipView);\n\n registerAction({\r\n type: 'showTip',\r\n event: 'showTip',\r\n update: 'tooltip:manuallyShowTip'\r\n }, function () { });\r\n registerAction({\r\n type: 'hideTip',\r\n event: 'hideTip',\r\n update: 'tooltip:manuallyHideTip'\r\n }, function () { });\n\n var getDefaultSelectorOptions = function (ecModel, type) {\r\n if (type === 'all') {\r\n return {\r\n type: 'all',\r\n title: ecModel.getLocale(['legend', 'selector', 'all'])\r\n };\r\n }\r\n else if (type === 'inverse') {\r\n return {\r\n type: 'inverse',\r\n title: ecModel.getLocale(['legend', 'selector', 'inverse'])\r\n };\r\n }\r\n };\r\n var LegendModel = (function (_super) {\r\n __extends(LegendModel, _super);\r\n function LegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendModel.type;\r\n _this.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n return _this;\r\n }\r\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n option.selected = option.selected || {};\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype._updateSelector = function (option) {\r\n var selector = option.selector;\r\n var ecModel = this.ecModel;\r\n if (selector === true) {\r\n selector = option.selector = ['all', 'inverse'];\r\n }\r\n if (isArray(selector)) {\r\n each(selector, function (item, index) {\r\n isString(item) && (item = { type: item });\r\n selector[index] = merge(item, getDefaultSelectorOptions(ecModel, item.type));\r\n });\r\n }\r\n };\r\n LegendModel.prototype.optionUpdated = function () {\r\n this._updateData(this.ecModel);\r\n var legendData = this._data;\r\n if (legendData[0] && this.get('selectedMode') === 'single') {\r\n var hasSelected = false;\r\n for (var i = 0; i < legendData.length; i++) {\r\n var name_1 = legendData[i].get('name');\r\n if (this.isSelected(name_1)) {\r\n this.select(name_1);\r\n hasSelected = true;\r\n break;\r\n }\r\n }\r\n !hasSelected && this.select(legendData[0].get('name'));\r\n }\r\n };\r\n LegendModel.prototype._updateData = function (ecModel) {\r\n var potentialData = [];\r\n var availableNames = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var seriesName = seriesModel.name;\r\n availableNames.push(seriesName);\r\n var isPotential;\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n var names = provider.getAllNames();\r\n if (!ecModel.isSeriesFiltered(seriesModel)) {\r\n availableNames = availableNames.concat(names);\r\n }\r\n if (names.length) {\r\n potentialData = potentialData.concat(names);\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n if (isPotential && isNameSpecified(seriesModel)) {\r\n potentialData.push(seriesModel.name);\r\n }\r\n });\r\n this._availableNames = availableNames;\r\n var rawData = this.get('data') || potentialData;\r\n var legendData = map(rawData, function (dataItem) {\r\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\r\n dataItem = {\r\n name: dataItem\r\n };\r\n }\r\n return new Model(dataItem, this, this.ecModel);\r\n }, this);\r\n this._data = legendData;\r\n };\r\n LegendModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n LegendModel.prototype.select = function (name) {\r\n var selected = this.option.selected;\r\n var selectedMode = this.get('selectedMode');\r\n if (selectedMode === 'single') {\r\n var data = this._data;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name')] = false;\r\n });\r\n }\r\n selected[name] = true;\r\n };\r\n LegendModel.prototype.unSelect = function (name) {\r\n if (this.get('selectedMode') !== 'single') {\r\n this.option.selected[name] = false;\r\n }\r\n };\r\n LegendModel.prototype.toggleSelected = function (name) {\r\n var selected = this.option.selected;\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n this[selected[name] ? 'unSelect' : 'select'](name);\r\n };\r\n LegendModel.prototype.allSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name', true)] = true;\r\n });\r\n };\r\n LegendModel.prototype.inverseSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n var name = dataItem.get('name', true);\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n selected[name] = !selected[name];\r\n });\r\n };\r\n LegendModel.prototype.isSelected = function (name) {\r\n var selected = this.option.selected;\r\n return !(selected.hasOwnProperty(name) && !selected[name])\r\n && indexOf(this._availableNames, name) >= 0;\r\n };\r\n LegendModel.prototype.getOrient = function () {\r\n return this.get('orient') === 'vertical'\r\n ? { index: 1, name: 'vertical' }\r\n : { index: 0, name: 'horizontal' };\r\n };\r\n LegendModel.type = 'legend.plain';\r\n LegendModel.dependencies = ['series'];\r\n LegendModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n orient: 'horizontal',\r\n left: 'center',\r\n top: 0,\r\n align: 'auto',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n itemWidth: 25,\r\n itemHeight: 14,\r\n inactiveColor: '#ccc',\r\n inactiveBorderColor: '#ccc',\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n textStyle: {\r\n color: '#333'\r\n },\r\n selectedMode: true,\r\n selector: false,\r\n selectorLabel: {\r\n show: true,\r\n borderRadius: 10,\r\n padding: [3, 5, 3, 5],\r\n fontSize: 12,\r\n fontFamily: ' sans-serif',\r\n color: '#666',\r\n borderWidth: 1,\r\n borderColor: '#666'\r\n },\r\n emphasis: {\r\n selectorLabel: {\r\n show: true,\r\n color: '#eee',\r\n backgroundColor: '#666'\r\n }\r\n },\r\n selectorPosition: 'auto',\r\n selectorItemGap: 7,\r\n selectorButtonGap: 10,\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return LegendModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(LegendModel);\n\n function legendSelectActionHandler(methodName, payload, ecModel) {\r\n var selectedMap = {};\r\n var isToggleSelect = methodName === 'toggleSelected';\r\n var isSelected;\r\n ecModel.eachComponent('legend', function (legendModel) {\r\n if (isToggleSelect && isSelected != null) {\r\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\r\n }\r\n else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\r\n legendModel[methodName]();\r\n }\r\n else {\r\n legendModel[methodName](payload.name);\r\n isSelected = legendModel.isSelected(payload.name);\r\n }\r\n var legendData = legendModel.getData();\r\n each(legendData, function (model) {\r\n var name = model.get('name');\r\n if (name === '\\n' || name === '') {\r\n return;\r\n }\r\n var isItemSelected = legendModel.isSelected(name);\r\n if (selectedMap.hasOwnProperty(name)) {\r\n selectedMap[name] = selectedMap[name] && isItemSelected;\r\n }\r\n else {\r\n selectedMap[name] = isItemSelected;\r\n }\r\n });\r\n });\r\n return (methodName === 'allSelect' || methodName === 'inverseSelect')\r\n ? {\r\n selected: selectedMap\r\n }\r\n : {\r\n name: payload.name,\r\n selected: selectedMap\r\n };\r\n }\r\n registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\r\n registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\r\n registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\r\n registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\r\n registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n\n function layout$2(group, componentModel, api) {\r\n var boxLayoutParams = componentModel.getBoxLayoutParams();\r\n var padding = componentModel.get('padding');\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\r\n box(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\r\n positionElement(group, boxLayoutParams, viewportSize, padding);\r\n }\r\n function makeBackground(rect, componentModel) {\r\n var padding = normalizeCssArray$1(componentModel.get('padding'));\r\n var style = componentModel.getItemStyle(['color', 'opacity']);\r\n style.fill = componentModel.get('backgroundColor');\r\n rect = new Rect({\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[1] + padding[3],\r\n height: rect.height + padding[0] + padding[2],\r\n r: componentModel.get('borderRadius')\r\n },\r\n style: style,\r\n silent: true,\r\n z2: -1\r\n });\r\n return rect;\r\n }\n\n var curry$1 = curry;\r\n var each$7 = each;\r\n var Group$1 = Group;\r\n var LegendView = (function (_super) {\r\n __extends(LegendView, _super);\r\n function LegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendView.type;\r\n _this.newlineDisabled = false;\r\n return _this;\r\n }\r\n LegendView.prototype.init = function () {\r\n this.group.add(this._contentGroup = new Group$1());\r\n this.group.add(this._selectorGroup = new Group$1());\r\n this._isFirstRender = true;\r\n };\r\n LegendView.prototype.getContentGroup = function () {\r\n return this._contentGroup;\r\n };\r\n LegendView.prototype.getSelectorGroup = function () {\r\n return this._selectorGroup;\r\n };\r\n LegendView.prototype.render = function (legendModel, ecModel, api) {\r\n var isFirstRender = this._isFirstRender;\r\n this._isFirstRender = false;\r\n this.resetInner();\r\n if (!legendModel.get('show', true)) {\r\n return;\r\n }\r\n var itemAlign = legendModel.get('align');\r\n var orient = legendModel.get('orient');\r\n if (!itemAlign || itemAlign === 'auto') {\r\n itemAlign = (legendModel.get('left') === 'right'\r\n && orient === 'vertical') ? 'right' : 'left';\r\n }\r\n var selector = legendModel.get('selector', true);\r\n var selectorPosition = legendModel.get('selectorPosition', true);\r\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\r\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\r\n }\r\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var positionInfo = legendModel.getBoxLayoutParams();\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var padding = legendModel.get('padding');\r\n var maxSize = getLayoutRect(positionInfo, viewportSize, padding);\r\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\r\n var layoutRect = getLayoutRect(defaults({\r\n width: mainRect.width,\r\n height: mainRect.height\r\n }, positionInfo), viewportSize, padding);\r\n this.group.x = layoutRect.x - mainRect.x;\r\n this.group.y = layoutRect.y - mainRect.y;\r\n this.group.markRedraw();\r\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\r\n };\r\n LegendView.prototype.resetInner = function () {\r\n this.getContentGroup().removeAll();\r\n this._backgroundEl && this.group.remove(this._backgroundEl);\r\n this.getSelectorGroup().removeAll();\r\n };\r\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var legendDrawnMap = createHashMap();\r\n var selectMode = legendModel.get('selectedMode');\r\n var excludeSeriesId = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\r\n });\r\n each$7(legendModel.getData(), function (itemModel, dataIndex) {\r\n var name = itemModel.get('name');\r\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\r\n var g = new Group$1();\r\n g.newline = true;\r\n contentGroup.add(g);\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByName(name)[0];\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel) {\r\n var data = seriesModel.getData();\r\n var style = data.getVisual('style');\r\n var color = style[data.getVisual('drawType')] || style.fill;\r\n var borderColor = style.stroke;\r\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\r\n var symbolType = data.getVisual('symbol');\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, name, null, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n else {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n if (!provider.containName(name)) {\r\n return;\r\n }\r\n var idx = provider.indexOfName(name);\r\n var style = provider.getItemVisual(idx, 'style');\r\n var borderColor = style.stroke;\r\n var color = style.fill;\r\n var colorArr = parse(style.fill);\r\n if (colorArr && colorArr[3] === 0) {\r\n colorArr[3] = 0.2;\r\n color = stringify(colorArr, 'rgba');\r\n }\r\n var legendSymbolType = 'roundRect';\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, null, name, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, null, name, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, null, name, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n }, this);\r\n }\r\n if (__DEV__) {\r\n if (!legendDrawnMap.get(name)) {\r\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\r\n }\r\n }\r\n }, this);\r\n if (selector) {\r\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\r\n }\r\n };\r\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n each$7(selector, function createSelectorButton(selectorItem) {\r\n var type = selectorItem.type;\r\n var labelText = new ZRText({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n },\r\n onclick: function () {\r\n api.dispatchAction({\r\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\r\n });\r\n }\r\n });\r\n selectorGroup.add(labelText);\r\n var labelModel = legendModel.getModel('selectorLabel');\r\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\r\n setLabelStyle(labelText, { normal: labelModel, emphasis: emphasisLabelModel }, {\r\n defaultText: selectorItem.title\r\n });\r\n enableHoverEmphasis(labelText);\r\n });\r\n };\r\n LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode) {\r\n var itemWidth = legendModel.get('itemWidth');\r\n var itemHeight = legendModel.get('itemHeight');\r\n var inactiveColor = legendModel.get('inactiveColor');\r\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\r\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\r\n var legendModelItemStyle = legendModel.getModel('itemStyle');\r\n var isSelected = legendModel.isSelected(name);\r\n var itemGroup = new Group$1();\r\n var textStyleModel = itemModel.getModel('textStyle');\r\n var itemIcon = itemModel.get('icon');\r\n var tooltipModel = itemModel.getModel('tooltip');\r\n var legendGlobalTooltipModel = tooltipModel.parentModel;\r\n legendSymbolType = itemIcon || legendSymbolType;\r\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n if (!itemIcon && symbolType\r\n && ((symbolType !== legendSymbolType) || symbolType === 'none')) {\r\n var size = itemHeight * 0.8;\r\n if (symbolType === 'none') {\r\n symbolType = 'circle';\r\n }\r\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n }\r\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\r\n var textAlign = itemAlign;\r\n var formatter = legendModel.get('formatter');\r\n var content = name;\r\n if (typeof formatter === 'string' && formatter) {\r\n content = formatter.replace('{name}', name != null ? name : '');\r\n }\r\n else if (typeof formatter === 'function') {\r\n content = formatter(name);\r\n }\r\n itemGroup.add(new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: content,\r\n x: textX,\r\n y: itemHeight / 2,\r\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\r\n align: textAlign,\r\n verticalAlign: 'middle'\r\n })\r\n }));\r\n var hitRect = new Rect({\r\n shape: itemGroup.getBoundingRect(),\r\n invisible: true\r\n });\r\n if (tooltipModel.get('show')) {\r\n var formatterParams = {\r\n componentType: 'legend',\r\n legendIndex: legendModel.componentIndex,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n hitRect.tooltip = extend({\r\n content: name,\r\n formatter: legendGlobalTooltipModel.get('formatter', true)\r\n || function (params) {\r\n return params.name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipModel.option);\r\n }\r\n itemGroup.add(hitRect);\r\n itemGroup.eachChild(function (child) {\r\n child.silent = true;\r\n });\r\n hitRect.silent = !selectMode;\r\n this.getContentGroup().add(itemGroup);\r\n enableHoverEmphasis(itemGroup);\r\n itemGroup.__legendDataIndex = dataIndex;\r\n return itemGroup;\r\n };\r\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var selectorGroup = this.getSelectorGroup();\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\r\n var contentRect = contentGroup.getBoundingRect();\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n selectorGroup.markRedraw();\r\n contentGroup.markRedraw();\r\n if (selector) {\r\n box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = orientIdx === 0 ? 'width' : 'height';\r\n var hw = orientIdx === 0 ? 'height' : 'width';\r\n var yx = orientIdx === 0 ? 'y' : 'x';\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\r\n }\r\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n return mainRect;\r\n }\r\n else {\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n return this.group.getBoundingRect();\r\n }\r\n };\r\n LegendView.prototype.remove = function () {\r\n this.getContentGroup().removeAll();\r\n this._isFirstRender = true;\r\n };\r\n LegendView.type = 'legend.plain';\r\n return LegendView;\r\n }(ComponentView));\r\n function setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected) {\r\n var itemStyle;\r\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\r\n itemStyle = legendModelItemStyle.getItemStyle();\r\n symbol.style.stroke = borderColor;\r\n if (!isSelected) {\r\n itemStyle.stroke = inactiveBorderColor;\r\n }\r\n }\r\n else {\r\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\r\n }\r\n symbol.setStyle(itemStyle);\r\n return symbol;\r\n }\r\n function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\r\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\r\n api.dispatchAction({\r\n type: 'legendToggleSelect',\r\n name: seriesName != null ? seriesName : dataName\r\n });\r\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\r\n }\r\n function isUseHoverLayer(api) {\r\n var list = api.getZr().storage.getDisplayList();\r\n var emphasisState;\r\n var i = 0;\r\n var len = list.length;\r\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\r\n i++;\r\n }\r\n return emphasisState && emphasisState.hoverLayer;\r\n }\r\n function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'highlight',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'downplay',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n ComponentView.registerClass(LegendView);\n\n function legendFilter (ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (legendModels && legendModels.length) {\r\n ecModel.filterSeries(function (series) {\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(series.name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\r\n ComponentModel.registerSubTypeDefaulter('legend', function () {\r\n return 'plain';\r\n });\n\n var ScrollableLegendModel = (function (_super) {\r\n __extends(ScrollableLegendModel, _super);\r\n function ScrollableLegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendModel.type;\r\n return _this;\r\n }\r\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\r\n this.option.scrollDataIndex = scrollDataIndex;\r\n };\r\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\r\n };\r\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n mergeAndNormalizeLayoutParams(this, this.option, option);\r\n };\r\n ScrollableLegendModel.type = 'legend.scroll';\r\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\r\n scrollDataIndex: 0,\r\n pageButtonItemGap: 5,\r\n pageButtonGap: null,\r\n pageButtonPosition: 'end',\r\n pageFormatter: '{current}/{total}',\r\n pageIcons: {\r\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\r\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\r\n },\r\n pageIconColor: '#2f4554',\r\n pageIconInactiveColor: '#aaa',\r\n pageIconSize: 15,\r\n pageTextStyle: {\r\n color: '#333'\r\n },\r\n animationDurationUpdate: 800\r\n });\r\n return ScrollableLegendModel;\r\n }(LegendModel));\r\n function mergeAndNormalizeLayoutParams(legendModel, target, raw) {\r\n var orient = legendModel.getOrient();\r\n var ignoreSize = [1, 1];\r\n ignoreSize[orient.index] = 0;\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: !!ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(ScrollableLegendModel);\n\n var Group$2 = Group;\r\n var WH = ['width', 'height'];\r\n var XY = ['x', 'y'];\r\n var ScrollableLegendView = (function (_super) {\r\n __extends(ScrollableLegendView, _super);\r\n function ScrollableLegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendView.type;\r\n _this.newlineDisabled = true;\r\n _this._currentIndex = 0;\r\n return _this;\r\n }\r\n ScrollableLegendView.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n this.group.add(this._containerGroup = new Group$2());\r\n this._containerGroup.add(this.getContentGroup());\r\n this.group.add(this._controllerGroup = new Group$2());\r\n };\r\n ScrollableLegendView.prototype.resetInner = function () {\r\n _super.prototype.resetInner.call(this);\r\n this._controllerGroup.removeAll();\r\n this._containerGroup.removeClipPath();\r\n this._containerGroup.__rectSize = null;\r\n };\r\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var self = this;\r\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var controllerGroup = this._controllerGroup;\r\n var pageIconSize = legendModel.get('pageIconSize', true);\r\n var pageIconSizeArr = isArray(pageIconSize)\r\n ? pageIconSize : [pageIconSize, pageIconSize];\r\n createPageButton('pagePrev', 0);\r\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\r\n controllerGroup.add(new ZRText({\r\n name: 'pageText',\r\n style: {\r\n text: 'xx/xx',\r\n fill: pageTextStyleModel.getTextColor(),\r\n font: pageTextStyleModel.getFont(),\r\n verticalAlign: 'middle',\r\n align: 'center'\r\n },\r\n silent: true\r\n }));\r\n createPageButton('pageNext', 1);\r\n function createPageButton(name, iconIdx) {\r\n var pageDataIndexName = (name + 'DataIndex');\r\n var icon = createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\r\n onclick: bind(self._pageGo, self, pageDataIndexName, legendModel, api)\r\n }, {\r\n x: -pageIconSizeArr[0] / 2,\r\n y: -pageIconSizeArr[1] / 2,\r\n width: pageIconSizeArr[0],\r\n height: pageIconSizeArr[1]\r\n });\r\n icon.name = name;\r\n controllerGroup.add(icon);\r\n }\r\n };\r\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH[orientIdx];\r\n var xy = XY[orientIdx];\r\n var hw = WH[1 - orientIdx];\r\n var yx = XY[1 - orientIdx];\r\n selector && box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var processMaxSize = clone(maxSize);\r\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\r\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\r\n if (selector) {\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n var offset = selectorRect[wh] + selectorButtonGap;\r\n selectorPos[orientIdx] -= offset;\r\n mainRect[xy] -= offset;\r\n }\r\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\r\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\r\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n selectorGroup.markRedraw();\r\n }\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\r\n var contentGroup = this.getContentGroup();\r\n var containerGroup = this._containerGroup;\r\n var controllerGroup = this._controllerGroup;\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\r\n box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\r\n var contentRect = contentGroup.getBoundingRect();\r\n var controllerRect = controllerGroup.getBoundingRect();\r\n var showController = this._showController = contentRect[wh] > maxSize[wh];\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n if (!isFirstRender) {\r\n contentPos[orientIdx] = contentGroup[yx];\r\n }\r\n var containerPos = [0, 0];\r\n var controllerPos = [-controllerRect.x, -controllerRect.y];\r\n var pageButtonGap = retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\r\n if (showController) {\r\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\r\n if (pageButtonPosition === 'end') {\r\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\r\n }\r\n else {\r\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\r\n }\r\n }\r\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\r\n contentGroup.setPosition(contentPos);\r\n containerGroup.setPosition(containerPos);\r\n controllerGroup.setPosition(controllerPos);\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\r\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\r\n containerGroup.__rectSize = maxSize[wh];\r\n if (showController) {\r\n var clipShape = { x: 0, y: 0 };\r\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\r\n clipShape[hw] = mainRect[hw];\r\n containerGroup.setClipPath(new Rect({ shape: clipShape }));\r\n containerGroup.__rectSize = clipShape[wh];\r\n }\r\n else {\r\n controllerGroup.eachChild(function (child) {\r\n child.attr({\r\n invisible: true,\r\n silent: true\r\n });\r\n });\r\n }\r\n var pageInfo = this._getPageInfo(legendModel);\r\n pageInfo.pageIndex != null && updateProps(contentGroup, { x: pageInfo.contentPosition[0], y: pageInfo.contentPosition[1] }, showController ? legendModel : null);\r\n this._updatePageInfoView(legendModel, pageInfo);\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\r\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\r\n scrollDataIndex != null && api.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: scrollDataIndex,\r\n legendId: legendModel.id\r\n });\r\n };\r\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\r\n var controllerGroup = this._controllerGroup;\r\n each(['pagePrev', 'pageNext'], function (name) {\r\n var key = (name + 'DataIndex');\r\n var canJump = pageInfo[key] != null;\r\n var icon = controllerGroup.childOfName(name);\r\n if (icon) {\r\n icon.setStyle('fill', canJump\r\n ? legendModel.get('pageIconColor', true)\r\n : legendModel.get('pageIconInactiveColor', true));\r\n icon.cursor = canJump ? 'pointer' : 'default';\r\n }\r\n });\r\n var pageText = controllerGroup.childOfName('pageText');\r\n var pageFormatter = legendModel.get('pageFormatter');\r\n var pageIndex = pageInfo.pageIndex;\r\n var current = pageIndex != null ? pageIndex + 1 : 0;\r\n var total = pageInfo.pageCount;\r\n pageText && pageFormatter && pageText.setStyle('text', isString(pageFormatter)\r\n ? pageFormatter.replace('{current}', current == null ? '' : current + '')\r\n .replace('{total}', total == null ? '' : total + '')\r\n : pageFormatter({ current: current, total: total }));\r\n };\r\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\r\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\r\n var contentGroup = this.getContentGroup();\r\n var containerRectSize = this._containerGroup.__rectSize;\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH[orientIdx];\r\n var xy = XY[orientIdx];\r\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\r\n var children = contentGroup.children();\r\n var targetItem = children[targetItemIndex];\r\n var itemCount = children.length;\r\n var pCount = !itemCount ? 0 : 1;\r\n var result = {\r\n contentPosition: [contentGroup.x, contentGroup.y],\r\n pageCount: pCount,\r\n pageIndex: pCount - 1,\r\n pagePrevDataIndex: null,\r\n pageNextDataIndex: null\r\n };\r\n if (!targetItem) {\r\n return result;\r\n }\r\n var targetItemInfo = getItemInfo(targetItem);\r\n result.contentPosition[orientIdx] = -targetItemInfo.s;\r\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize)\r\n || (currItemInfo && !intersect(currItemInfo, winStartItemInfo.s))) {\r\n if (winEndItemInfo.i > winStartItemInfo.i) {\r\n winStartItemInfo = winEndItemInfo;\r\n }\r\n else {\r\n winStartItemInfo = currItemInfo;\r\n }\r\n if (winStartItemInfo) {\r\n if (result.pageNextDataIndex == null) {\r\n result.pageNextDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n }\r\n }\r\n winEndItemInfo = currItemInfo;\r\n }\r\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s))\r\n && winStartItemInfo.i < winEndItemInfo.i) {\r\n winEndItemInfo = winStartItemInfo;\r\n if (result.pagePrevDataIndex == null) {\r\n result.pagePrevDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n ++result.pageIndex;\r\n }\r\n winStartItemInfo = currItemInfo;\r\n }\r\n return result;\r\n function getItemInfo(el) {\r\n if (el) {\r\n var itemRect = el.getBoundingRect();\r\n var start = itemRect[xy] + el[xy];\r\n return {\r\n s: start,\r\n e: start + itemRect[wh],\r\n i: el.__legendDataIndex\r\n };\r\n }\r\n }\r\n function intersect(itemInfo, winStart) {\r\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\r\n }\r\n };\r\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\r\n if (!this._showController) {\r\n return 0;\r\n }\r\n var index;\r\n var contentGroup = this.getContentGroup();\r\n var defaultIndex;\r\n contentGroup.eachChild(function (child, idx) {\r\n var legendDataIdx = child.__legendDataIndex;\r\n if (defaultIndex == null && legendDataIdx != null) {\r\n defaultIndex = idx;\r\n }\r\n if (legendDataIdx === targetDataIndex) {\r\n index = idx;\r\n }\r\n });\r\n return index != null ? index : defaultIndex;\r\n };\r\n ScrollableLegendView.type = 'legend.scroll';\r\n return ScrollableLegendView;\r\n }(LegendView));\r\n ComponentView.registerClass(ScrollableLegendView);\n\n registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\r\n var scrollDataIndex = payload.scrollDataIndex;\r\n scrollDataIndex != null && ecModel.eachComponent({ mainType: 'legend', subType: 'scroll', query: payload }, function (legendModel) {\r\n legendModel.setScrollDataIndex(scrollDataIndex);\r\n });\r\n });\n\n var TitleModel = (function (_super) {\r\n __extends(TitleModel, _super);\r\n function TitleModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleModel.type;\r\n _this.layoutMode = { type: 'box', ignoreSize: true };\r\n return _this;\r\n }\r\n TitleModel.type = 'title';\r\n TitleModel.defaultOption = {\r\n zlevel: 0,\r\n z: 6,\r\n show: true,\r\n text: '',\r\n target: 'blank',\r\n subtext: '',\r\n subtarget: 'blank',\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n color: '#464646'\r\n },\r\n subtextStyle: {\r\n fontSize: 12,\r\n color: '#6E7079'\r\n }\r\n };\r\n return TitleModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TitleModel);\r\n var TitleView = (function (_super) {\r\n __extends(TitleView, _super);\r\n function TitleView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleView.type;\r\n return _this;\r\n }\r\n TitleView.prototype.render = function (titleModel, ecModel, api) {\r\n this.group.removeAll();\r\n if (!titleModel.get('show')) {\r\n return;\r\n }\r\n var group = this.group;\r\n var textStyleModel = titleModel.getModel('textStyle');\r\n var subtextStyleModel = titleModel.getModel('subtextStyle');\r\n var textAlign = titleModel.get('textAlign');\r\n var textVerticalAlign = retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\r\n var textEl = new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: titleModel.get('text'),\r\n fill: textStyleModel.getTextColor()\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var textRect = textEl.getBoundingRect();\r\n var subText = titleModel.get('subtext');\r\n var subTextEl = new ZRText({\r\n style: createTextStyle(subtextStyleModel, {\r\n text: subText,\r\n fill: subtextStyleModel.getTextColor(),\r\n y: textRect.height + titleModel.get('itemGap'),\r\n verticalAlign: 'top'\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var link = titleModel.get('link');\r\n var sublink = titleModel.get('sublink');\r\n var triggerEvent = titleModel.get('triggerEvent', true);\r\n textEl.silent = !link && !triggerEvent;\r\n subTextEl.silent = !sublink && !triggerEvent;\r\n if (link) {\r\n textEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('target'));\r\n });\r\n }\r\n if (sublink) {\r\n subTextEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('subtarget'));\r\n });\r\n }\r\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent\r\n ? {\r\n componentType: 'title',\r\n componentIndex: titleModel.componentIndex\r\n }\r\n : null;\r\n group.add(textEl);\r\n subText && group.add(subTextEl);\r\n var groupRect = group.getBoundingRect();\r\n var layoutOption = titleModel.getBoxLayoutParams();\r\n layoutOption.width = groupRect.width;\r\n layoutOption.height = groupRect.height;\r\n var layoutRect = getLayoutRect(layoutOption, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, titleModel.get('padding'));\r\n if (!textAlign) {\r\n textAlign = (titleModel.get('left') || titleModel.get('right'));\r\n if (textAlign === 'middle') {\r\n textAlign = 'center';\r\n }\r\n if (textAlign === 'right') {\r\n layoutRect.x += layoutRect.width;\r\n }\r\n else if (textAlign === 'center') {\r\n layoutRect.x += layoutRect.width / 2;\r\n }\r\n }\r\n if (!textVerticalAlign) {\r\n textVerticalAlign = (titleModel.get('top') || titleModel.get('bottom'));\r\n if (textVerticalAlign === 'center') {\r\n textVerticalAlign = 'middle';\r\n }\r\n if (textVerticalAlign === 'bottom') {\r\n layoutRect.y += layoutRect.height;\r\n }\r\n else if (textVerticalAlign === 'middle') {\r\n layoutRect.y += layoutRect.height / 2;\r\n }\r\n textVerticalAlign = textVerticalAlign || 'top';\r\n }\r\n group.x = layoutRect.x;\r\n group.y = layoutRect.y;\r\n group.markRedraw();\r\n var alignStyle = {\r\n align: textAlign,\r\n verticalAlign: textVerticalAlign\r\n };\r\n textEl.setStyle(alignStyle);\r\n subTextEl.setStyle(alignStyle);\r\n groupRect = group.getBoundingRect();\r\n var padding = layoutRect.margin;\r\n var style = titleModel.getItemStyle(['color', 'opacity']);\r\n style.fill = titleModel.get('backgroundColor');\r\n var rect = new Rect({\r\n shape: {\r\n x: groupRect.x - padding[3],\r\n y: groupRect.y - padding[0],\r\n width: groupRect.width + padding[1] + padding[3],\r\n height: groupRect.height + padding[0] + padding[2],\r\n r: titleModel.get('borderRadius')\r\n },\r\n style: style,\r\n subPixelOptimize: true,\r\n silent: true\r\n });\r\n group.add(rect);\r\n };\r\n TitleView.type = 'title';\r\n return TitleView;\r\n }(ComponentView));\r\n ComponentView.registerClass(TitleView);\n\n function fillLabel(opt) {\r\n defaultEmphasis(opt, 'label', ['show']);\r\n }\r\n var inner$a = makeInner();\r\n var MarkerModel = (function (_super) {\r\n __extends(MarkerModel, _super);\r\n function MarkerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerModel.type;\r\n _this.createdBySelf = false;\r\n return _this;\r\n }\r\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\r\n if (__DEV__) {\r\n if (this.type === 'marker') {\r\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\r\n }\r\n }\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._mergeOption(option, ecModel, false, true);\r\n };\r\n MarkerModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var hostSeries = this.__hostSeries;\r\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\r\n };\r\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\r\n this._mergeOption(newOpt, ecModel, false, false);\r\n };\r\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\r\n var componentType = this.mainType;\r\n if (!createdBySelf) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerOpt = seriesModel.get(this.mainType, true);\r\n var markerModel = inner$a(seriesModel)[componentType];\r\n if (!markerOpt || !markerOpt.data) {\r\n inner$a(seriesModel)[componentType] = null;\r\n return;\r\n }\r\n if (!markerModel) {\r\n if (isInit) {\r\n fillLabel(markerOpt);\r\n }\r\n each(markerOpt.data, function (item) {\r\n if (item instanceof Array) {\r\n fillLabel(item[0]);\r\n fillLabel(item[1]);\r\n }\r\n else {\r\n fillLabel(item);\r\n }\r\n });\r\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\r\n extend(markerModel, {\r\n mainType: this.mainType,\r\n seriesIndex: seriesModel.seriesIndex,\r\n name: seriesModel.name,\r\n createdBySelf: true\r\n });\r\n markerModel.__hostSeries = seriesModel;\r\n }\r\n else {\r\n markerModel._mergeOption(markerOpt, ecModel, true);\r\n }\r\n inner$a(seriesModel)[componentType] = markerModel;\r\n }, this);\r\n }\r\n };\r\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var formattedValue = isArray(value)\r\n ? map(value, addCommas).join(', ') : addCommas(value);\r\n var name = encodeHTML(data.getName(dataIndex));\r\n var html = \"
\" + encodeHTML(this.name) + \"
\";\r\n if (value != null || name) {\r\n html += renderMode === 'html' ? '' : '\\n';\r\n }\r\n if (name) {\r\n html += \"
\" + name + \"\";\r\n }\r\n if (value != null) {\r\n html = renderMode === 'html'\r\n ? concatTooltipHtml(html, formattedValue, true) + (name ? '
' : '')\r\n : (html + formattedValue);\r\n }\r\n return html;\r\n };\r\n MarkerModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n MarkerModel.prototype.setData = function (data) {\r\n this._data = data;\r\n };\r\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\r\n return inner$a(seriesModel)[componentType];\r\n };\r\n MarkerModel.type = 'marker';\r\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\r\n return MarkerModel;\r\n }(ComponentModel));\r\n mixin(MarkerModel, DataFormatMixin.prototype);\n\n var MarkPointModel = (function (_super) {\r\n __extends(MarkPointModel, _super);\r\n function MarkPointModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointModel.type;\r\n return _this;\r\n }\r\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkPointModel.type = 'markPoint';\r\n MarkPointModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: 'pin',\r\n symbolSize: 50,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'inside'\r\n },\r\n itemStyle: {\r\n borderWidth: 2\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return MarkPointModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkPointModel);\n\n function hasXOrY(item) {\r\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\r\n }\r\n function hasXAndY(item) {\r\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\r\n }\r\n function markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\r\n var coordArr = [];\r\n var stacked = isDimensionStacked(data, targetDataDim);\r\n var calcDataDim = stacked\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDataDim;\r\n var value = numCalculate(data, calcDataDim, markerType);\r\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\r\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\r\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\r\n var coordArrValue = data.get(targetDataDim, dataIndex);\r\n var precision = getPrecision(data.get(targetDataDim, dataIndex));\r\n precision = Math.min(precision, 20);\r\n if (precision >= 0) {\r\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\r\n }\r\n return [coordArr, coordArrValue];\r\n }\r\n var markerTypeCalculator = {\r\n min: curry(markerTypeCalculatorWithExtent, 'min'),\r\n max: curry(markerTypeCalculatorWithExtent, 'max'),\r\n average: curry(markerTypeCalculatorWithExtent, 'average'),\r\n median: curry(markerTypeCalculatorWithExtent, 'median')\r\n };\r\n function dataTransform(seriesModel, item) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\r\n var dims = coordSys.dimensions;\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n item = clone(item);\r\n if (item.type\r\n && markerTypeCalculator[item.type]\r\n && axisInfo.baseAxis && axisInfo.valueAxis) {\r\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\r\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\r\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\r\n item.coord = coordInfo[0];\r\n item.value = coordInfo[1];\r\n }\r\n else {\r\n var coord = [\r\n item.xAxis != null ? item.xAxis : item.radiusAxis,\r\n item.yAxis != null ? item.yAxis : item.angleAxis\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n if (markerTypeCalculator[coord[i]]) {\r\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\r\n }\r\n }\r\n item.coord = coord;\r\n }\r\n }\r\n return item;\r\n }\r\n function getAxisInfo$1(item, data, coordSys, seriesModel) {\r\n var ret = {};\r\n if (item.valueIndex != null || item.valueDim != null) {\r\n ret.valueDataDim = item.valueIndex != null\r\n ? data.getDimension(item.valueIndex) : item.valueDim;\r\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\r\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n }\r\n else {\r\n ret.baseAxis = seriesModel.getBaseAxis();\r\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\r\n }\r\n return ret;\r\n }\r\n function dataDimToCoordDim(seriesModel, dataDim) {\r\n var data = seriesModel.getData();\r\n var dimensions = data.dimensions;\r\n dataDim = data.getDimension(dataDim);\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimItem = data.getDimensionInfo(dimensions[i]);\r\n if (dimItem.name === dataDim) {\r\n return dimItem.coordDim;\r\n }\r\n }\r\n }\r\n function dataFilter$1(coordSys, item) {\r\n return (coordSys && coordSys.containData && item.coord && !hasXOrY(item))\r\n ? coordSys.containData(item.coord) : true;\r\n }\r\n function dimValueGetter(item, dimName, dataIndex, dimIndex) {\r\n if (dimIndex < 2) {\r\n return item.coord && item.coord[dimIndex];\r\n }\r\n return item.value;\r\n }\r\n function numCalculate(data, valueDataDim, type) {\r\n if (type === 'average') {\r\n var sum_1 = 0;\r\n var count_1 = 0;\r\n data.each(valueDataDim, function (val, idx) {\r\n if (!isNaN(val)) {\r\n sum_1 += val;\r\n count_1++;\r\n }\r\n });\r\n return sum_1 / count_1;\r\n }\r\n else if (type === 'median') {\r\n return data.getMedian(valueDataDim);\r\n }\r\n else {\r\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\r\n }\r\n }\n\n var inner$b = makeInner();\r\n var MarkerView = (function (_super) {\r\n __extends(MarkerView, _super);\r\n function MarkerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerView.type;\r\n return _this;\r\n }\r\n MarkerView.prototype.init = function () {\r\n this.markerGroupMap = createHashMap();\r\n };\r\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\r\n var _this = this;\r\n var markerGroupMap = this.markerGroupMap;\r\n markerGroupMap.each(function (item) {\r\n inner$b(item).keep = false;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\r\n });\r\n markerGroupMap.each(function (item) {\r\n !inner$b(item).keep && _this.group.remove(item.group);\r\n });\r\n };\r\n MarkerView.prototype.markKeep = function (drawGroup) {\r\n inner$b(drawGroup).keep = true;\r\n };\r\n MarkerView.prototype.blurSeries = function (seriesModelList) {\r\n var _this = this;\r\n each(seriesModelList, function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n if (markerModel) {\r\n var data = markerModel.getData();\r\n data.eachItemGraphicEl(function (el) {\r\n if (el) {\r\n enterBlur(el);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n MarkerView.type = 'marker';\r\n return MarkerView;\r\n }(ComponentView));\n\n function updateMarkerLayout(mpData, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\r\n }\r\n else if (coordSys) {\r\n var x = mpData.get(coordSys.dimensions[0], idx);\r\n var y = mpData.get(coordSys.dimensions[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n mpData.setItemLayout(idx, point);\r\n });\r\n }\r\n var MarkPointView = (function (_super) {\r\n __extends(MarkPointView, _super);\r\n function MarkPointView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointView.type;\r\n return _this;\r\n }\r\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\r\n if (mpModel) {\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var symbolDrawMap = this.markerGroupMap;\r\n var symbolDraw = symbolDrawMap.get(seriesId)\r\n || symbolDrawMap.set(seriesId, new SymbolDraw());\r\n var mpData = createList$1(coordSys, seriesModel, mpModel);\r\n mpModel.setData(mpData);\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var symbol = itemModel.getShallow('symbol');\r\n var symbolSize = itemModel.getShallow('symbolSize');\r\n if (isFunction(symbol) || isFunction(symbolSize)) {\r\n var rawIdx = mpModel.getRawValue(idx);\r\n var dataParams = mpModel.getDataParams(idx);\r\n if (isFunction(symbol)) {\r\n symbol = symbol(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolSize)) {\r\n symbolSize = symbolSize(rawIdx, dataParams);\r\n }\r\n }\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n var color = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color;\r\n }\r\n mpData.setItemVisual(idx, {\r\n symbol: symbol,\r\n symbolSize: symbolSize,\r\n style: style\r\n });\r\n });\r\n symbolDraw.updateData(mpData);\r\n this.group.add(symbolDraw.group);\r\n mpData.eachItemGraphicEl(function (el) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mpModel;\r\n });\r\n });\r\n this.markKeep(symbolDraw);\r\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkPointView.type = 'markPoint';\r\n return MarkPointView;\r\n }(MarkerView));\r\n function createList$1(coordSys, seriesModel, mpModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var mpData = new List(coordDimsInfos, mpModel);\r\n var dataOpt = map(mpModel.get('data'), curry(dataTransform, seriesModel));\r\n if (coordSys) {\r\n dataOpt = filter(dataOpt, curry(dataFilter$1, coordSys));\r\n }\r\n mpData.initData(dataOpt, null, coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n });\r\n return mpData;\r\n }\r\n ComponentView.registerClass(MarkPointView);\n\n registerPreprocessor(function (opt) {\r\n opt.markPoint = opt.markPoint || {};\r\n });\n\n var MarkLineModel = (function (_super) {\r\n __extends(MarkLineModel, _super);\r\n function MarkLineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineModel.type;\r\n return _this;\r\n }\r\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkLineModel.type = 'markLine';\r\n MarkLineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: ['circle', 'arrow'],\r\n symbolSize: [8, 16],\r\n precision: 2,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'end',\r\n distance: 5\r\n },\r\n lineStyle: {\r\n type: 'dashed'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n width: 3\r\n }\r\n },\r\n animationEasing: 'linear'\r\n };\r\n return MarkLineModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkLineModel);\n\n var straightLineProto = Line.prototype;\r\n var bezierCurveProto = BezierCurve.prototype;\r\n var StraightLineShape = (function () {\r\n function StraightLineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return StraightLineShape;\r\n }());\r\n var CurveShape = (function (_super) {\r\n __extends(CurveShape, _super);\r\n function CurveShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return CurveShape;\r\n }(StraightLineShape));\r\n function isStraightLine(shape) {\r\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\r\n }\r\n var ECLinePath = (function (_super) {\r\n __extends(ECLinePath, _super);\r\n function ECLinePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-line';\r\n return _this;\r\n }\r\n ECLinePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECLinePath.prototype.getDefaultShape = function () {\r\n return new StraightLineShape();\r\n };\r\n ECLinePath.prototype.buildPath = function (ctx, shape) {\r\n if (isStraightLine(shape)) {\r\n straightLineProto.buildPath.call(this, ctx, shape);\r\n }\r\n else {\r\n bezierCurveProto.buildPath.call(this, ctx, shape);\r\n }\r\n };\r\n ECLinePath.prototype.pointAt = function (t) {\r\n if (isStraightLine(this.shape)) {\r\n return straightLineProto.pointAt.call(this, t);\r\n }\r\n else {\r\n return bezierCurveProto.pointAt.call(this, t);\r\n }\r\n };\r\n ECLinePath.prototype.tangentAt = function (t) {\r\n var shape = this.shape;\r\n var p = isStraightLine(shape)\r\n ? [shape.x2 - shape.x1, shape.y2 - shape.y1]\r\n : bezierCurveProto.tangentAt.call(this, t);\r\n return normalize(p, p);\r\n };\r\n return ECLinePath;\r\n }(Path));\n\n var SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\r\n function makeSymbolTypeKey(symbolCategory) {\r\n return '_' + symbolCategory + 'Type';\r\n }\r\n function createSymbol$1(name, lineData, idx) {\r\n var symbolType = lineData.getItemVisual(idx, name);\r\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\r\n if (!symbolType || symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSizeArr = isArray(symbolSize)\r\n ? symbolSize : [symbolSize, symbolSize];\r\n var symbolPath = createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\r\n symbolPath.name = name;\r\n return symbolPath;\r\n }\r\n function createLine(points) {\r\n var line = new ECLinePath({\r\n name: 'line',\r\n subPixelOptimize: true\r\n });\r\n setLinePoints(line.shape, points);\r\n return line;\r\n }\r\n function setLinePoints(targetShape, points) {\r\n targetShape.x1 = points[0][0];\r\n targetShape.y1 = points[0][1];\r\n targetShape.x2 = points[1][0];\r\n targetShape.y2 = points[1][1];\r\n targetShape.percent = 1;\r\n var cp1 = points[2];\r\n if (cp1) {\r\n targetShape.cpx1 = cp1[0];\r\n targetShape.cpy1 = cp1[1];\r\n }\r\n else {\r\n targetShape.cpx1 = NaN;\r\n targetShape.cpy1 = NaN;\r\n }\r\n }\r\n var Line$1 = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createLine(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var linePoints = lineData.getItemLayout(idx);\r\n var line = createLine(linePoints);\r\n line.shape.percent = 0;\r\n initProps(line, {\r\n shape: {\r\n percent: 1\r\n }\r\n }, seriesModel, idx);\r\n this.add(line);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var linePoints = lineData.getItemLayout(idx);\r\n var target = {\r\n shape: {}\r\n };\r\n setLinePoints(target.shape, linePoints);\r\n updateProps(line, target, seriesModel, idx);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\r\n var key = makeSymbolTypeKey(symbolCategory);\r\n if (this[key] !== symbolType) {\r\n this.remove(this.childOfName(symbolCategory));\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n }\r\n this[key] = symbolType;\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.getLinePath = function () {\r\n return this.childAt(0);\r\n };\r\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\r\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\r\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n var itemModel = lineData.getItemModel(idx);\r\n emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\r\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var visualColor = lineStyle.stroke;\r\n line.useStyle(lineStyle);\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n line.ensureState('emphasis').style = emphasisLineStyle;\r\n line.ensureState('blur').style = blurLineStyle;\r\n line.ensureState('select').style = selectLineStyle;\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = this.childOfName(symbolCategory);\r\n if (symbol) {\r\n symbol.setColor(visualColor);\r\n symbol.style.opacity = lineStyle.opacity;\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var lineState = line.getState(stateName);\r\n if (lineState) {\r\n var lineStateStyle = lineState.style || {};\r\n var state = symbol.ensureState(stateName);\r\n var stateStyle = state.style || (state.style = {});\r\n if (lineStateStyle.stroke != null) {\r\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\r\n }\r\n if (lineStateStyle.opacity != null) {\r\n stateStyle.opacity = lineStateStyle.opacity;\r\n }\r\n }\r\n }\r\n symbol.markRedraw();\r\n }\r\n }, this);\r\n var rawVal = seriesModel.getRawValue(idx);\r\n setLabelStyle(this, labelStatesModels, {\r\n labelDataIndex: idx,\r\n labelFetcher: {\r\n getFormattedLabel: function (dataIndex, stateName) {\r\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\r\n }\r\n },\r\n inheritColor: visualColor || '#000',\r\n defaultText: (rawVal == null\r\n ? lineData.getName(idx)\r\n : isFinite(rawVal)\r\n ? round$1(rawVal)\r\n : rawVal) + ''\r\n });\r\n var label = this.getTextContent();\r\n if (label) {\r\n var labelNormalModel = labelStatesModels.normal;\r\n label.__align = label.style.align;\r\n label.__verticalAlign = label.style.verticalAlign;\r\n label.__position = labelNormalModel.get('position') || 'middle';\r\n var distance = labelNormalModel.get('distance');\r\n if (!isArray(distance)) {\r\n distance = [distance, distance];\r\n }\r\n label.__labelDistance = distance;\r\n }\r\n this.setTextConfig({\r\n position: null,\r\n local: true,\r\n inside: false\r\n });\r\n enableHoverEmphasis(this);\r\n };\r\n Line.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n Line.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n Line.prototype.updateLayout = function (lineData, idx) {\r\n this.setLinePoints(lineData.getItemLayout(idx));\r\n };\r\n Line.prototype.setLinePoints = function (points) {\r\n var linePath = this.childOfName('line');\r\n setLinePoints(linePath.shape, points);\r\n linePath.dirty();\r\n };\r\n Line.prototype.beforeUpdate = function () {\r\n var lineGroup = this;\r\n var symbolFrom = lineGroup.childOfName('fromSymbol');\r\n var symbolTo = lineGroup.childOfName('toSymbol');\r\n var label = lineGroup.getTextContent();\r\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\r\n return;\r\n }\r\n var invScale = 1;\r\n var parentNode = this.parent;\r\n while (parentNode) {\r\n if (parentNode.scaleX) {\r\n invScale /= parentNode.scaleX;\r\n }\r\n parentNode = parentNode.parent;\r\n }\r\n var line = lineGroup.childOfName('line');\r\n if (!this.__dirty && !line.__dirty) {\r\n return;\r\n }\r\n var percent = line.shape.percent;\r\n var fromPos = line.pointAt(0);\r\n var toPos = line.pointAt(percent);\r\n var d = sub([], toPos, fromPos);\r\n normalize(d, d);\r\n if (symbolFrom) {\r\n symbolFrom.setPosition(fromPos);\r\n var tangent = line.tangentAt(0);\r\n symbolFrom.rotation = Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\r\n symbolFrom.markRedraw();\r\n }\r\n if (symbolTo) {\r\n symbolTo.setPosition(toPos);\r\n var tangent = line.tangentAt(1);\r\n symbolTo.rotation = -Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\r\n symbolTo.markRedraw();\r\n }\r\n if (label && !label.ignore) {\r\n label.x = label.y = 0;\r\n label.originX = label.originY = 0;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var distance = label.__labelDistance;\r\n var distanceX = distance[0] * invScale;\r\n var distanceY = distance[1] * invScale;\r\n var halfPercent = percent / 2;\r\n var tangent = line.tangentAt(halfPercent);\r\n var n = [tangent[1], -tangent[0]];\r\n var cp = line.pointAt(halfPercent);\r\n if (n[1] > 0) {\r\n n[0] = -n[0];\r\n n[1] = -n[1];\r\n }\r\n var dir = tangent[0] < 0 ? -1 : 1;\r\n if (label.__position !== 'start' && label.__position !== 'end') {\r\n var rotation = -Math.atan2(tangent[1], tangent[0]);\r\n if (toPos[0] < fromPos[0]) {\r\n rotation = Math.PI + rotation;\r\n }\r\n label.rotation = rotation;\r\n }\r\n var dy = void 0;\r\n switch (label.__position) {\r\n case 'insideStartTop':\r\n case 'insideMiddleTop':\r\n case 'insideEndTop':\r\n case 'middle':\r\n dy = -distanceY;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideStartBottom':\r\n case 'insideMiddleBottom':\r\n case 'insideEndBottom':\r\n dy = distanceY;\r\n textVerticalAlign = 'top';\r\n break;\r\n default:\r\n dy = 0;\r\n textVerticalAlign = 'middle';\r\n }\r\n switch (label.__position) {\r\n case 'end':\r\n label.x = d[0] * distanceX + toPos[0];\r\n label.y = d[1] * distanceY + toPos[1];\r\n textAlign = d[0] > 0.8 ? 'left' : (d[0] < -0.8 ? 'right' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'top' : (d[1] < -0.8 ? 'bottom' : 'middle');\r\n break;\r\n case 'start':\r\n label.x = -d[0] * distanceX + fromPos[0];\r\n label.y = -d[1] * distanceY + fromPos[1];\r\n textAlign = d[0] > 0.8 ? 'right' : (d[0] < -0.8 ? 'left' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : (d[1] < -0.8 ? 'top' : 'middle');\r\n break;\r\n case 'insideStartTop':\r\n case 'insideStart':\r\n case 'insideStartBottom':\r\n label.x = distanceX * dir + fromPos[0];\r\n label.y = fromPos[1] + dy;\r\n textAlign = tangent[0] < 0 ? 'right' : 'left';\r\n label.originX = -distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n case 'insideMiddleTop':\r\n case 'insideMiddle':\r\n case 'insideMiddleBottom':\r\n case 'middle':\r\n label.x = cp[0];\r\n label.y = cp[1] + dy;\r\n textAlign = 'center';\r\n label.originY = -dy;\r\n break;\r\n case 'insideEndTop':\r\n case 'insideEnd':\r\n case 'insideEndBottom':\r\n label.x = -distanceX * dir + toPos[0];\r\n label.y = toPos[1] + dy;\r\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\r\n label.originX = distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n }\r\n label.scaleX = label.scaleY = invScale;\r\n label.setStyle({\r\n verticalAlign: label.__verticalAlign || textVerticalAlign,\r\n align: label.__align || textAlign\r\n });\r\n }\r\n };\r\n return Line;\r\n }(Group));\n\n var LineDraw = (function () {\r\n function LineDraw(LineCtor) {\r\n this.group = new Group();\r\n this._LineCtor = LineCtor || Line$1;\r\n }\r\n LineDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n LineDraw.prototype.updateData = function (lineData) {\r\n var _this = this;\r\n var lineDraw = this;\r\n var group = lineDraw.group;\r\n var oldLineData = lineDraw._lineData;\r\n lineDraw._lineData = lineData;\r\n if (!oldLineData) {\r\n group.removeAll();\r\n }\r\n var seriesScope = makeSeriesScope$1(lineData);\r\n lineData.diff(oldLineData)\r\n .add(function (idx) {\r\n _this._doAdd(lineData, idx, seriesScope);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldLineData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n };\r\n LineDraw.prototype.updateLayout = function () {\r\n var lineData = this._lineData;\r\n if (!lineData) {\r\n return;\r\n }\r\n lineData.eachItemGraphicEl(function (el, idx) {\r\n el.updateLayout(lineData, idx);\r\n }, this);\r\n };\r\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\r\n this._seriesScope = makeSeriesScope$1(lineData);\r\n this._lineData = null;\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup && !isEffectObject(el)) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (lineNeedsDraw(itemLayout)) {\r\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n this.group.add(el);\r\n lineData.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n LineDraw.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (!lineNeedsDraw(itemLayout)) {\r\n return;\r\n }\r\n var el = new this._LineCtor(lineData, idx, seriesScope);\r\n lineData.setItemGraphicEl(idx, el);\r\n this.group.add(el);\r\n };\r\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\r\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\r\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\r\n this.group.remove(itemEl);\r\n return;\r\n }\r\n if (!itemEl) {\r\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\r\n }\r\n else {\r\n itemEl.updateData(newLineData, newIdx, seriesScope);\r\n }\r\n newLineData.setItemGraphicEl(newIdx, itemEl);\r\n this.group.add(itemEl);\r\n };\r\n return LineDraw;\r\n }());\r\n function isEffectObject(el) {\r\n return el.animators && el.animators.length > 0;\r\n }\r\n function makeSeriesScope$1(lineData) {\r\n var hostModel = lineData.hostModel;\r\n return {\r\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\r\n emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\r\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\r\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\r\n labelStatesModels: getLabelStatesModels(hostModel)\r\n };\r\n }\r\n function isPointNaN(pt) {\r\n return isNaN(pt[0]) || isNaN(pt[1]);\r\n }\r\n function lineNeedsDraw(pts) {\r\n return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\r\n }\n\n var inner$c = makeInner();\r\n var markLineTransform = function (seriesModel, coordSys, mlModel, item) {\r\n var data = seriesModel.getData();\r\n var itemArray;\r\n if (!isArray(item)) {\r\n var mlType = item.type;\r\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median'\r\n || (item.xAxis != null || item.yAxis != null)) {\r\n var valueAxis = void 0;\r\n var value = void 0;\r\n if (item.yAxis != null || item.xAxis != null) {\r\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\r\n value = retrieve(item.yAxis, item.xAxis);\r\n }\r\n else {\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n valueAxis = axisInfo.valueAxis;\r\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\r\n value = numCalculate(data, valueDataDim, mlType);\r\n }\r\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\r\n var baseIndex = 1 - valueIndex;\r\n var mlFrom = clone(item);\r\n var mlTo = {\r\n coord: []\r\n };\r\n mlFrom.type = null;\r\n mlFrom.coord = [];\r\n mlFrom.coord[baseIndex] = -Infinity;\r\n mlTo.coord[baseIndex] = Infinity;\r\n var precision = mlModel.get('precision');\r\n if (precision >= 0 && typeof value === 'number') {\r\n value = +value.toFixed(Math.min(precision, 20));\r\n }\r\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\r\n itemArray = [mlFrom, mlTo, {\r\n type: mlType,\r\n valueIndex: item.valueIndex,\r\n value: value\r\n }];\r\n }\r\n else {\r\n if (__DEV__) {\r\n logError('Invalid markLine data.');\r\n }\r\n itemArray = [];\r\n }\r\n }\r\n else {\r\n itemArray = item;\r\n }\r\n var normalizedItem = [\r\n dataTransform(seriesModel, itemArray[0]),\r\n dataTransform(seriesModel, itemArray[1]),\r\n extend({}, itemArray[2])\r\n ];\r\n normalizedItem[2].type = normalizedItem[2].type || null;\r\n merge(normalizedItem[2], normalizedItem[0]);\r\n merge(normalizedItem[2], normalizedItem[1]);\r\n return normalizedItem;\r\n };\r\n function isInifinity(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n var dimName = coordSys.dimensions[dimIndex];\r\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex])\r\n && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\r\n }\r\n function markLineFilter(coordSys, item) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var fromCoord = item[0].coord;\r\n var toCoord = item[1].coord;\r\n if (fromCoord && toCoord\r\n && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys)\r\n || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, item[0])\r\n && dataFilter$1(coordSys, item[1]);\r\n }\r\n function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\r\n }\r\n else {\r\n var dims = coordSys.dimensions;\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var dims = coordSys.dimensions;\r\n if (isInifinity(data.get(dims[0], idx))) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n else if (isInifinity(data.get(dims[1], idx))) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n data.setItemLayout(idx, point);\r\n }\r\n var MarkLineView = (function (_super) {\r\n __extends(MarkLineView, _super);\r\n function MarkLineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineView.type;\r\n return _this;\r\n }\r\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\r\n if (mlModel) {\r\n var mlData_1 = mlModel.getData();\r\n var fromData_1 = inner$c(mlModel).from;\r\n var toData_1 = inner$c(mlModel).to;\r\n fromData_1.each(function (idx) {\r\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\r\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\r\n });\r\n mlData_1.each(function (idx) {\r\n mlData_1.setItemLayout(idx, [\r\n fromData_1.getItemLayout(idx),\r\n toData_1.getItemLayout(idx)\r\n ]);\r\n });\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var lineDrawMap = this.markerGroupMap;\r\n var lineDraw = lineDrawMap.get(seriesId)\r\n || lineDrawMap.set(seriesId, new LineDraw());\r\n this.group.add(lineDraw.group);\r\n var mlData = createList$2(coordSys, seriesModel, mlModel);\r\n var fromData = mlData.from;\r\n var toData = mlData.to;\r\n var lineData = mlData.line;\r\n inner$c(mlModel).from = fromData;\r\n inner$c(mlModel).to = toData;\r\n mlModel.setData(lineData);\r\n var symbolType = mlModel.get('symbol');\r\n var symbolSize = mlModel.get('symbolSize');\r\n if (!isArray(symbolType)) {\r\n symbolType = [symbolType, symbolType];\r\n }\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [symbolSize, symbolSize];\r\n }\r\n mlData.from.each(function (idx) {\r\n updateDataVisualAndLayout(fromData, idx, true);\r\n updateDataVisualAndLayout(toData, idx, false);\r\n });\r\n lineData.each(function (idx) {\r\n var lineStyle = lineData.getItemModel(idx)\r\n .getModel('lineStyle').getLineStyle();\r\n lineData.setItemLayout(idx, [\r\n fromData.getItemLayout(idx),\r\n toData.getItemLayout(idx)\r\n ]);\r\n if (lineStyle.stroke == null) {\r\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\r\n }\r\n lineData.setItemVisual(idx, {\r\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\r\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\r\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\r\n toSymbol: toData.getItemVisual(idx, 'symbol'),\r\n style: lineStyle\r\n });\r\n });\r\n lineDraw.updateData(lineData);\r\n mlData.line.eachItemGraphicEl(function (el, idx) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mlModel;\r\n });\r\n });\r\n function updateDataVisualAndLayout(data, idx, isFrom) {\r\n var itemModel = data.getItemModel(idx);\r\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (style.fill == null) {\r\n style.fill = getVisualFromData(seriesData, 'color');\r\n }\r\n data.setItemVisual(idx, {\r\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\r\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\r\n style: style\r\n });\r\n }\r\n this.markKeep(lineDraw);\r\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkLineView.type = 'markLine';\r\n return MarkLineView;\r\n }(MarkerView));\r\n function createList$2(coordSys, seriesModel, mlModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var fromData = new List(coordDimsInfos, mlModel);\r\n var toData = new List(coordDimsInfos, mlModel);\r\n var lineData = new List([], mlModel);\r\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markLineFilter, coordSys));\r\n }\r\n var dimValueGetter$1 = coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n };\r\n fromData.initData(map(optData, function (item) {\r\n return item[0];\r\n }), null, dimValueGetter$1);\r\n toData.initData(map(optData, function (item) {\r\n return item[1];\r\n }), null, dimValueGetter$1);\r\n lineData.initData(map(optData, function (item) {\r\n return item[2];\r\n }));\r\n lineData.hasItemOption = true;\r\n return {\r\n from: fromData,\r\n to: toData,\r\n line: lineData\r\n };\r\n }\r\n ComponentView.registerClass(MarkLineView);\n\n registerPreprocessor(function (opt) {\r\n opt.markLine = opt.markLine || {};\r\n });\n\n var MarkAreaModel = (function (_super) {\r\n __extends(MarkAreaModel, _super);\r\n function MarkAreaModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaModel.type;\r\n return _this;\r\n }\r\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkAreaModel.type = 'markArea';\r\n MarkAreaModel.defaultOption = {\r\n zlevel: 0,\r\n z: 1,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n animation: false,\r\n label: {\r\n show: true,\r\n position: 'top'\r\n },\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n position: 'top'\r\n }\r\n }\r\n };\r\n return MarkAreaModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkAreaModel);\n\n var inner$d = makeInner();\r\n var markAreaTransform = function (seriesModel, coordSys, maModel, item) {\r\n var lt = dataTransform(seriesModel, item[0]);\r\n var rb = dataTransform(seriesModel, item[1]);\r\n var ltCoord = lt.coord;\r\n var rbCoord = rb.coord;\r\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\r\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\r\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\r\n rbCoord[1] = retrieve(rbCoord[1], Infinity);\r\n var result = mergeAll([{}, lt, rb]);\r\n result.coord = [\r\n lt.coord, rb.coord\r\n ];\r\n result.x0 = lt.x;\r\n result.y0 = lt.y;\r\n result.x1 = rb.x;\r\n result.y1 = rb.y;\r\n return result;\r\n };\r\n function isInifinity$1(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n return isInifinity$1(fromCoord[otherDimIndex]) && isInifinity$1(toCoord[otherDimIndex]);\r\n }\r\n function markAreaFilter(coordSys, item) {\r\n var fromCoord = item.coord[0];\r\n var toCoord = item.coord[1];\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n if (fromCoord && toCoord\r\n && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord)\r\n || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, {\r\n coord: fromCoord,\r\n x: item.x0,\r\n y: item.y0\r\n })\r\n || dataFilter$1(coordSys, {\r\n coord: toCoord,\r\n x: item.x1,\r\n y: item.y1\r\n });\r\n }\r\n function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get(dims[0]), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get(dims[1]), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\r\n }\r\n else {\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n var pt = [x, y];\r\n coordSys.clampData && coordSys.clampData(pt, pt);\r\n point = coordSys.dataToPoint(pt, true);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n if (isInifinity$1(x)) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\r\n }\r\n else if (isInifinity$1(y)) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n return point;\r\n }\r\n var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\r\n var MarkAreaView = (function (_super) {\r\n __extends(MarkAreaView, _super);\r\n function MarkAreaView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaView.type;\r\n return _this;\r\n }\r\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\r\n if (maModel) {\r\n var areaData_1 = maModel.getData();\r\n areaData_1.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\r\n });\r\n areaData_1.setItemLayout(idx, points);\r\n var el = areaData_1.getItemGraphicEl(idx);\r\n el.setShape('points', points);\r\n });\r\n }\r\n }, this);\r\n };\r\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var areaGroupMap = this.markerGroupMap;\r\n var polygonGroup = areaGroupMap.get(seriesId)\r\n || areaGroupMap.set(seriesId, { group: new Group() });\r\n this.group.add(polygonGroup.group);\r\n this.markKeep(polygonGroup);\r\n var areaData = createList$3(coordSys, seriesModel, maModel);\r\n maModel.setData(areaData);\r\n areaData.each(function (idx) {\r\n areaData.setItemLayout(idx, map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\r\n }));\r\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\r\n var color$1 = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color$1;\r\n if (typeof style.fill === 'string') {\r\n style.fill = modifyAlpha(style.fill, 0.4);\r\n }\r\n }\r\n if (!style.stroke) {\r\n style.stroke = color$1;\r\n }\r\n areaData.setItemVisual(idx, 'style', style);\r\n });\r\n areaData.diff(inner$d(polygonGroup).data)\r\n .add(function (idx) {\r\n var polygon = new Polygon({\r\n shape: {\r\n points: areaData.getItemLayout(idx)\r\n }\r\n });\r\n areaData.setItemGraphicEl(idx, polygon);\r\n polygonGroup.group.add(polygon);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var polygon = inner$d(polygonGroup).data.getItemGraphicEl(oldIdx);\r\n updateProps(polygon, {\r\n shape: {\r\n points: areaData.getItemLayout(newIdx)\r\n }\r\n }, maModel, newIdx);\r\n polygonGroup.group.add(polygon);\r\n areaData.setItemGraphicEl(newIdx, polygon);\r\n })\r\n .remove(function (idx) {\r\n var polygon = inner$d(polygonGroup).data.getItemGraphicEl(idx);\r\n polygonGroup.group.remove(polygon);\r\n })\r\n .execute();\r\n areaData.eachItemGraphicEl(function (polygon, idx) {\r\n var itemModel = areaData.getItemModel(idx);\r\n var style = areaData.getItemVisual(idx, 'style');\r\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\r\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\r\n labelFetcher: maModel,\r\n labelDataIndex: idx,\r\n defaultText: areaData.getName(idx) || '',\r\n inheritColor: typeof style.fill === 'string'\r\n ? modifyAlpha(style.fill, 1) : '#000'\r\n });\r\n setStatesStylesFromModel(polygon, itemModel);\r\n enableHoverEmphasis(polygon);\r\n getECData(polygon).dataModel = maModel;\r\n });\r\n inner$d(polygonGroup).data = areaData;\r\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkAreaView.type = 'markArea';\r\n return MarkAreaView;\r\n }(MarkerView));\r\n function createList$3(coordSys, seriesModel, maModel) {\r\n var coordDimsInfos;\r\n var areaData;\r\n var dims = ['x0', 'y0', 'x1', 'y1'];\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var data = seriesModel.getData();\r\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\r\n return defaults({\r\n name: coordDim\r\n }, info);\r\n });\r\n areaData = new List(map(dims, function (dim, idx) {\r\n return {\r\n name: dim,\r\n type: coordDimsInfos[idx % 2].type\r\n };\r\n }), maModel);\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n areaData = new List(coordDimsInfos, maModel);\r\n }\r\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markAreaFilter, coordSys));\r\n }\r\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\r\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\r\n } : function (item) {\r\n return item.value;\r\n };\r\n areaData.initData(optData, null, dimValueGetter);\r\n areaData.hasItemOption = true;\r\n return areaData;\r\n }\r\n ComponentView.registerClass(MarkAreaView);\n\n registerPreprocessor(function (opt) {\r\n opt.markArea = opt.markArea || {};\r\n });\n\n ComponentModel.registerSubTypeDefaulter('dataZoom', function () {\r\n return 'slider';\r\n });\n\n var DATA_ZOOM_AXIS_DIMENSIONS = [\r\n 'x', 'y', 'radius', 'angle', 'single'\r\n ];\r\n var SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\r\n function isCoordSupported(seriesModel) {\r\n var coordType = seriesModel.get('coordinateSystem');\r\n return indexOf(SERIES_COORDS, coordType) >= 0;\r\n }\r\n function getAxisMainType(axisDim) {\r\n if (__DEV__) {\r\n assert(axisDim);\r\n }\r\n return axisDim + 'Axis';\r\n }\r\n function findEffectedDataZooms(ecModel, payload) {\r\n var axisRecords = createHashMap();\r\n var effectedModels = [];\r\n var effectedModelMap = createHashMap();\r\n ecModel.eachComponent({ mainType: 'dataZoom', query: payload }, function (dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid)) {\r\n addToEffected(dataZoomModel);\r\n }\r\n });\r\n var foundNewLink;\r\n do {\r\n foundNewLink = false;\r\n ecModel.eachComponent('dataZoom', processSingle);\r\n } while (foundNewLink);\r\n function processSingle(dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\r\n addToEffected(dataZoomModel);\r\n foundNewLink = true;\r\n }\r\n }\r\n function addToEffected(dataZoom) {\r\n effectedModelMap.set(dataZoom.uid, true);\r\n effectedModels.push(dataZoom);\r\n markAxisControlled(dataZoom);\r\n }\r\n function isLinked(dataZoomModel) {\r\n var isLink = false;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisIdxArr = axisRecords.get(axisDim);\r\n if (axisIdxArr && axisIdxArr[axisIndex]) {\r\n isLink = true;\r\n }\r\n });\r\n return isLink;\r\n }\r\n function markAxisControlled(dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\r\n });\r\n }\r\n return effectedModels;\r\n }\r\n function collectReferCoordSysModelInfo(dataZoomModel) {\r\n var ecModel = dataZoomModel.ecModel;\r\n var coordSysInfoWrap = {\r\n infoList: [],\r\n infoMap: createHashMap()\r\n };\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n if (!axisModel) {\r\n return;\r\n }\r\n var coordSysModel = axisModel.getCoordSysModel();\r\n if (!coordSysModel) {\r\n return;\r\n }\r\n var coordSysUid = coordSysModel.uid;\r\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\r\n if (!coordSysInfo) {\r\n coordSysInfo = { model: coordSysModel, axisModels: [] };\r\n coordSysInfoWrap.infoList.push(coordSysInfo);\r\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\r\n }\r\n coordSysInfo.axisModels.push(axisModel);\r\n });\r\n return coordSysInfoWrap;\r\n }\n\n var DataZoomAxisInfo = (function () {\r\n function DataZoomAxisInfo() {\r\n this.indexList = [];\r\n this.indexMap = [];\r\n }\r\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\r\n this.indexList.push(axisCmptIdx);\r\n this.indexMap[axisCmptIdx] = true;\r\n };\r\n return DataZoomAxisInfo;\r\n }());\r\n var DataZoomModel = (function (_super) {\r\n __extends(DataZoomModel, _super);\r\n function DataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomModel.type;\r\n _this._autoThrottle = true;\r\n _this._noTarget = true;\r\n _this._rangePropMode = ['percent', 'percent'];\r\n return _this;\r\n }\r\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputRawOption = retrieveRawOption(option);\r\n this.settledOption = inputRawOption;\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype.mergeOption = function (newOption) {\r\n var inputRawOption = retrieveRawOption(newOption);\r\n merge(this.option, newOption, true);\r\n merge(this.settledOption, inputRawOption, true);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype._doInit = function (inputRawOption) {\r\n var thisOption = this.option;\r\n if (!env.canvasSupported) {\r\n thisOption.realtime = false;\r\n }\r\n this._setDefaultThrottle(inputRawOption);\r\n this._updateRangeUse(inputRawOption);\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n if (this._rangePropMode[index] === 'value') {\r\n thisOption[names[0]] = settledOption[names[0]] = null;\r\n }\r\n }, this);\r\n this._resetTarget();\r\n };\r\n DataZoomModel.prototype._resetTarget = function () {\r\n var optionOrient = this.get('orient', true);\r\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\r\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\r\n if (hasAxisSpecified) {\r\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\r\n }\r\n else {\r\n this._orient = optionOrient || 'horizontal';\r\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\r\n }\r\n this._noTarget = true;\r\n targetAxisIndexMap.each(function (axisInfo) {\r\n if (axisInfo.indexList.length) {\r\n this._noTarget = false;\r\n }\r\n }, this);\r\n };\r\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\r\n var hasAxisSpecified = false;\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\r\n if (!refering.specified) {\r\n return;\r\n }\r\n hasAxisSpecified = true;\r\n var axisInfo = new DataZoomAxisInfo();\r\n each(refering.models, function (axisModel) {\r\n axisInfo.add(axisModel.componentIndex);\r\n });\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }, this);\r\n return hasAxisSpecified;\r\n };\r\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\r\n var ecModel = this.ecModel;\r\n var needAuto = true;\r\n if (needAuto) {\r\n var axisDim = orient === 'vertical' ? 'y' : 'x';\r\n var axisModels = ecModel.findComponents({ mainType: axisDim + 'Axis' });\r\n setParallelAxis(axisModels, axisDim);\r\n }\r\n if (needAuto) {\r\n var axisModels = ecModel.findComponents({\r\n mainType: 'singleAxis',\r\n filter: function (axisModel) { return axisModel.get('orient', true) === orient; }\r\n });\r\n setParallelAxis(axisModels, 'single');\r\n }\r\n function setParallelAxis(axisModels, axisDim) {\r\n var axisModel = axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModel.componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n if (axisDim === 'x' || axisDim === 'y') {\r\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n gridModel_1 && each(axisModels, function (axModel) {\r\n if (axisModel.componentIndex !== axModel.componentIndex\r\n && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\r\n axisInfo.add(axModel.componentIndex);\r\n }\r\n });\r\n }\r\n }\r\n if (needAuto) {\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n if (needAuto) {\r\n return;\r\n }\r\n var axisModels = ecModel.findComponents({\r\n mainType: getAxisMainType(axisDim),\r\n filter: function (axisModel) { return axisModel.get('type', true) === 'category'; }\r\n });\r\n if (axisModels[0]) {\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModels[0].componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }\r\n }, this);\r\n }\r\n };\r\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\r\n var dim;\r\n this.eachTargetAxis(function (axisDim) {\r\n !dim && (dim = axisDim);\r\n }, this);\r\n return dim === 'y' ? 'vertical' : 'horizontal';\r\n };\r\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\r\n if (inputRawOption.hasOwnProperty('throttle')) {\r\n this._autoThrottle = false;\r\n }\r\n if (this._autoThrottle) {\r\n var globalOption = this.ecModel.option;\r\n this.option.throttle = (globalOption.animation && globalOption.animationDurationUpdate > 0) ? 100 : 20;\r\n }\r\n };\r\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\r\n var rangePropMode = this._rangePropMode;\r\n var rangeModeInOption = this.get('rangeMode');\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n var percentSpecified = inputRawOption[names[0]] != null;\r\n var valueSpecified = inputRawOption[names[1]] != null;\r\n if (percentSpecified && !valueSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n else if (!percentSpecified && valueSpecified) {\r\n rangePropMode[index] = 'value';\r\n }\r\n else if (rangeModeInOption) {\r\n rangePropMode[index] = rangeModeInOption[index];\r\n }\r\n else if (percentSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n });\r\n };\r\n DataZoomModel.prototype.noTarget = function () {\r\n return this._noTarget;\r\n };\r\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\r\n var firstAxisModel;\r\n this.eachTargetAxis(function (axisDim, axisIndex) {\r\n if (firstAxisModel == null) {\r\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n }, this);\r\n return firstAxisModel;\r\n };\r\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\r\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\r\n each(axisInfo.indexList, function (axisIndex) {\r\n callback.call(context, axisDim, axisIndex);\r\n });\r\n });\r\n };\r\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\r\n var axisModel = this.getAxisModel(axisDim, axisIndex);\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n };\r\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\r\n if (__DEV__) {\r\n assert(axisDim && axisIndex != null);\r\n }\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\r\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n };\r\n DataZoomModel.prototype.setRawRange = function (opt) {\r\n var thisOption = this.option;\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\r\n if (opt[names[0]] != null || opt[names[1]] != null) {\r\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\r\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\r\n }\r\n }, this);\r\n this._updateRangeUse(opt);\r\n };\r\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\r\n var option = this.option;\r\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\r\n option[name] = opt[name];\r\n });\r\n };\r\n DataZoomModel.prototype.getPercentRange = function () {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataPercentWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\r\n if (axisDim == null && axisIndex == null) {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataValueWindow();\r\n }\r\n }\r\n else {\r\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n var firstProxy;\r\n var axisDimList = this._targetAxisInfoMap.keys();\r\n for (var i = 0; i < axisDimList.length; i++) {\r\n var axisDim = axisDimList[i];\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n for (var j = 0; j < axisInfo.indexList.length; j++) {\r\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\r\n if (proxy.hostedBy(this)) {\r\n return proxy;\r\n }\r\n if (!firstProxy) {\r\n firstProxy = proxy;\r\n }\r\n }\r\n }\r\n return firstProxy;\r\n };\r\n DataZoomModel.prototype.getRangePropMode = function () {\r\n return this._rangePropMode.slice();\r\n };\r\n DataZoomModel.prototype.getOrient = function () {\r\n if (__DEV__) {\r\n assert(this._orient);\r\n }\r\n return this._orient;\r\n };\r\n DataZoomModel.type = 'dataZoom';\r\n DataZoomModel.dependencies = [\r\n 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'\r\n ];\r\n DataZoomModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n filterMode: 'filter',\r\n start: 0,\r\n end: 100\r\n };\r\n return DataZoomModel;\r\n }(ComponentModel));\r\n function retrieveRawOption(option) {\r\n var ret = {};\r\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\r\n option.hasOwnProperty(name) && (ret[name] = option[name]);\r\n });\r\n return ret;\r\n }\n\n var DataZoomView = (function (_super) {\r\n __extends(DataZoomView, _super);\r\n function DataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomView.type;\r\n return _this;\r\n }\r\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n this.dataZoomModel = dataZoomModel;\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n DataZoomView.type = 'dataZoom';\r\n return DataZoomView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DataZoomView);\n\n var SliderZoomModel = (function (_super) {\r\n __extends(SliderZoomModel, _super);\r\n function SliderZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomModel.type;\r\n return _this;\r\n }\r\n SliderZoomModel.type = 'dataZoom.slider';\r\n SliderZoomModel.layoutMode = 'box';\r\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n show: true,\r\n right: 'ph',\r\n top: 'ph',\r\n width: 'ph',\r\n height: 'ph',\r\n left: null,\r\n bottom: null,\r\n borderColor: '#d2dbee',\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(47,69,84,0)',\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#d2dbee',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#d2dbee',\r\n opacity: 0.2\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#8fb0f7',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#8fb0f7',\r\n opacity: 0.2\r\n }\r\n },\r\n fillerColor: 'rgba(135,175,274,0.2)',\r\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\r\n handleSize: '100%',\r\n handleStyle: {\r\n color: '#fff',\r\n borderColor: '#ACB8D1'\r\n },\r\n moveHandleSize: 7,\r\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\r\n moveHandleStyle: {\r\n color: '#D2DBEE',\r\n opacity: 0.7\r\n },\r\n showDetail: true,\r\n showDataShadow: 'auto',\r\n realtime: true,\r\n zoomLock: false,\r\n textStyle: {\r\n color: '#6E7079'\r\n },\r\n brushSelect: true,\r\n brushStyle: {\r\n color: 'rgba(135,175,274,0.15)'\r\n },\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#8FB0F7'\r\n },\r\n moveHandleStyle: {\r\n color: '#8FB0F7'\r\n }\r\n }\r\n });\r\n return SliderZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SliderZoomModel);\n\n function sliderMove (delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\r\n delta = delta || 0;\r\n var extentSpan = extent[1] - extent[0];\r\n if (minSpan != null) {\r\n minSpan = restrict(minSpan, [0, extentSpan]);\r\n }\r\n if (maxSpan != null) {\r\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\r\n }\r\n if (handleIndex === 'all') {\r\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\r\n handleSpan = restrict(handleSpan, [0, extentSpan]);\r\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\r\n handleIndex = 0;\r\n }\r\n handleEnds[0] = restrict(handleEnds[0], extent);\r\n handleEnds[1] = restrict(handleEnds[1], extent);\r\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\r\n handleEnds[handleIndex] += delta;\r\n var extentMinSpan = minSpan || 0;\r\n var realExtent = extent.slice();\r\n originalDistSign.sign < 0 ? (realExtent[0] += extentMinSpan) : (realExtent[1] -= extentMinSpan);\r\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\r\n var currDistSign;\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\r\n }\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (maxSpan != null && currDistSign.span > maxSpan) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\r\n }\r\n return handleEnds;\r\n }\r\n function getSpanSign(handleEnds, handleIndex) {\r\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\r\n return { span: Math.abs(dist), sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 };\r\n }\r\n function restrict(value, extend) {\r\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\r\n }\n\n var Rect$1 = Rect;\r\n var DEFAULT_LOCATION_EDGE_GAP = 7;\r\n var DEFAULT_FRAME_BORDER_WIDTH = 1;\r\n var DEFAULT_FILLER_SIZE = 30;\r\n var DEFAULT_MOVE_HANDLE_SIZE = 7;\r\n var HORIZONTAL = 'horizontal';\r\n var VERTICAL = 'vertical';\r\n var LABEL_GAP = 5;\r\n var SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\r\n var REALTIME_ANIMATION_CONFIG = {\r\n easing: 'cubicOut',\r\n duration: 100\r\n };\r\n var SliderZoomView = (function (_super) {\r\n __extends(SliderZoomView, _super);\r\n function SliderZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomView.type;\r\n _this._displayables = {};\r\n return _this;\r\n }\r\n SliderZoomView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n this._onBrush = bind(this._onBrush, this);\r\n this._onBrushEnd = bind(this._onBrushEnd, this);\r\n };\r\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n _super.prototype.render.apply(this, arguments);\r\n createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\r\n this._orient = dataZoomModel.getOrient();\r\n if (dataZoomModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n this._updateView();\r\n };\r\n SliderZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n SliderZoomView.prototype._clear = function () {\r\n clear(this, '_dispatchZoomAction');\r\n var zr = this.api.getZr();\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n };\r\n SliderZoomView.prototype._buildView = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n this._brushing = false;\r\n this._resetLocation();\r\n this._resetInterval();\r\n var barGroup = this._displayables.sliderGroup = new Group();\r\n this._renderBackground();\r\n this._renderHandle();\r\n this._renderDataShadow();\r\n thisGroup.add(barGroup);\r\n this._positionGroup();\r\n };\r\n SliderZoomView.prototype._resetLocation = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var showMoveHandle = dataZoomModel.get('brushSelect');\r\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\r\n var coordRect = this._findCoordRect();\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var positionInfo = this._orient === HORIZONTAL\r\n ? {\r\n right: ecSize.width - coordRect.x - coordRect.width,\r\n top: (ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize),\r\n width: coordRect.width,\r\n height: DEFAULT_FILLER_SIZE\r\n }\r\n : {\r\n right: DEFAULT_LOCATION_EDGE_GAP,\r\n top: coordRect.y,\r\n width: DEFAULT_FILLER_SIZE,\r\n height: coordRect.height\r\n };\r\n var layoutParams = getLayoutParams(dataZoomModel.option);\r\n each(['right', 'top', 'width', 'height'], function (name) {\r\n if (layoutParams[name] === 'ph') {\r\n layoutParams[name] = positionInfo[name];\r\n }\r\n });\r\n var layoutRect = getLayoutRect(layoutParams, ecSize);\r\n this._location = { x: layoutRect.x, y: layoutRect.y };\r\n this._size = [layoutRect.width, layoutRect.height];\r\n this._orient === VERTICAL && this._size.reverse();\r\n };\r\n SliderZoomView.prototype._positionGroup = function () {\r\n var thisGroup = this.group;\r\n var location = this._location;\r\n var orient = this._orient;\r\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\r\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\r\n sliderGroup.attr((orient === HORIZONTAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: 1 }\r\n : (orient === HORIZONTAL && inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: -1 }\r\n : (orient === VERTICAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 }\r\n : { scaleY: otherAxisInverse ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 });\r\n var rect = thisGroup.getBoundingRect([sliderGroup]);\r\n thisGroup.x = location.x - rect.x;\r\n thisGroup.y = location.y - rect.y;\r\n thisGroup.markRedraw();\r\n };\r\n SliderZoomView.prototype._getViewExtent = function () {\r\n return [0, this._size[0]];\r\n };\r\n SliderZoomView.prototype._renderBackground = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var size = this._size;\r\n var barGroup = this._displayables.sliderGroup;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n barGroup.add(new Rect$1({\r\n silent: true,\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: dataZoomModel.get('backgroundColor')\r\n },\r\n z2: -40\r\n }));\r\n var clickPanel = new Rect$1({\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: 'transparent'\r\n },\r\n z2: 0,\r\n onclick: bind(this._onClickPanel, this)\r\n });\r\n var zr = this.api.getZr();\r\n if (brushSelect) {\r\n clickPanel.on('mousedown', this._onBrushStart, this);\r\n clickPanel.cursor = 'crosshair';\r\n zr.on('mousemove', this._onBrush);\r\n zr.on('mouseup', this._onBrushEnd);\r\n }\r\n else {\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n }\r\n barGroup.add(clickPanel);\r\n };\r\n SliderZoomView.prototype._renderDataShadow = function () {\r\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\r\n this._displayables.dataShadowSegs = [];\r\n if (!info) {\r\n return;\r\n }\r\n var size = this._size;\r\n var seriesModel = info.series;\r\n var data = seriesModel.getRawData();\r\n var otherDim = seriesModel.getShadowDim\r\n ? seriesModel.getShadowDim()\r\n : info.otherDim;\r\n if (otherDim == null) {\r\n return;\r\n }\r\n var otherDataExtent = data.getDataExtent(otherDim);\r\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\r\n otherDataExtent = [\r\n otherDataExtent[0] - otherOffset,\r\n otherDataExtent[1] + otherOffset\r\n ];\r\n var otherShadowExtent = [0, size[1]];\r\n var thisShadowExtent = [0, size[0]];\r\n var areaPoints = [[size[0], 0], [0, 0]];\r\n var linePoints = [];\r\n var step = thisShadowExtent[1] / (data.count() - 1);\r\n var thisCoord = 0;\r\n var stride = Math.round(data.count() / size[0]);\r\n var lastIsEmpty;\r\n data.each([otherDim], function (value, index) {\r\n if (stride > 0 && (index % stride)) {\r\n thisCoord += step;\r\n return;\r\n }\r\n var isEmpty = value == null || isNaN(value) || value === '';\r\n var otherCoord = isEmpty\r\n ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\r\n if (isEmpty && !lastIsEmpty && index) {\r\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\r\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\r\n }\r\n else if (!isEmpty && lastIsEmpty) {\r\n areaPoints.push([thisCoord, 0]);\r\n linePoints.push([thisCoord, 0]);\r\n }\r\n areaPoints.push([thisCoord, otherCoord]);\r\n linePoints.push([thisCoord, otherCoord]);\r\n thisCoord += step;\r\n lastIsEmpty = isEmpty;\r\n });\r\n var dataZoomModel = this.dataZoomModel;\r\n function createDataShadowGroup(isSelectedArea) {\r\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\r\n var group = new Group();\r\n var polygon = new Polygon({\r\n shape: { points: areaPoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('areaStyle').getAreaStyle(),\r\n silent: true,\r\n z2: -20\r\n });\r\n var polyline = new Polyline({\r\n shape: { points: linePoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('lineStyle').getLineStyle(),\r\n silent: true,\r\n z2: -19\r\n });\r\n group.add(polygon);\r\n group.add(polyline);\r\n return group;\r\n }\r\n for (var i = 0; i < 3; i++) {\r\n var group = createDataShadowGroup(i === 1);\r\n this._displayables.sliderGroup.add(group);\r\n this._displayables.dataShadowSegs.push(group);\r\n }\r\n };\r\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var showDataShadow = dataZoomModel.get('showDataShadow');\r\n if (showDataShadow === false) {\r\n return;\r\n }\r\n var result;\r\n var ecModel = this.ecModel;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var seriesModels = dataZoomModel\r\n .getAxisProxy(axisDim, axisIndex)\r\n .getTargetSeriesModels();\r\n each(seriesModels, function (seriesModel) {\r\n if (result) {\r\n return;\r\n }\r\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\r\n return;\r\n }\r\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\r\n var otherDim = getOtherDim(axisDim);\r\n var otherAxisInverse;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (otherDim != null && coordSys.getOtherAxis) {\r\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\r\n }\r\n otherDim = seriesModel.getData().mapDimension(otherDim);\r\n result = {\r\n thisAxis: thisAxis,\r\n series: seriesModel,\r\n thisDim: axisDim,\r\n otherDim: otherDim,\r\n otherAxisInverse: otherAxisInverse\r\n };\r\n }, this);\r\n }, this);\r\n return result;\r\n };\r\n SliderZoomView.prototype._renderHandle = function () {\r\n var thisGroup = this.group;\r\n var displayables = this._displayables;\r\n var handles = displayables.handles = [null, null];\r\n var handleLabels = displayables.handleLabels = [null, null];\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var size = this._size;\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n var filler = displayables.filler = new Rect$1({\r\n silent: brushSelect,\r\n style: {\r\n fill: dataZoomModel.get('fillerColor')\r\n },\r\n textConfig: {\r\n position: 'inside'\r\n }\r\n });\r\n sliderGroup.add(filler);\r\n sliderGroup.add(new Rect$1({\r\n silent: true,\r\n subPixelOptimize: true,\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: size[0],\r\n height: size[1],\r\n r: borderRadius\r\n },\r\n style: {\r\n stroke: dataZoomModel.get('dataBackgroundColor')\r\n || dataZoomModel.get('borderColor'),\r\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\r\n fill: 'rgba(0,0,0,0)'\r\n }\r\n }));\r\n each([0, 1], function (handleIndex) {\r\n var iconStr = dataZoomModel.get('handleIcon');\r\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\r\n iconStr = 'path://' + iconStr;\r\n if (__DEV__) {\r\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\r\n }\r\n }\r\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\r\n path.attr({\r\n cursor: getCursor(this._orient),\r\n draggable: true,\r\n drift: bind(this._onDragMove, this, handleIndex),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false),\r\n z2: 5\r\n });\r\n var bRect = path.getBoundingRect();\r\n var handleSize = dataZoomModel.get('handleSize');\r\n this._handleHeight = parsePercent$2(handleSize, this._size[1]);\r\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\r\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\r\n path.style.strokeNoScale = true;\r\n path.rectHover = true;\r\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n enableHoverEmphasis(path);\r\n var handleColor = dataZoomModel.get('handleColor');\r\n if (handleColor != null) {\r\n path.style.fill = handleColor;\r\n }\r\n sliderGroup.add(handles[handleIndex] = path);\r\n var textStyleModel = dataZoomModel.getModel('textStyle');\r\n thisGroup.add(handleLabels[handleIndex] = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n verticalAlign: 'middle',\r\n align: 'center',\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n },\r\n z2: 10\r\n }));\r\n }, this);\r\n var actualMoveZone = filler;\r\n if (brushSelect) {\r\n var moveHandleHeight = parsePercent$2(dataZoomModel.get('moveHandleSize'), size[1]);\r\n var moveHandle_1 = displayables.moveHandle = new Rect({\r\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\r\n silent: true,\r\n shape: {\r\n r: [0, 0, 2, 2],\r\n y: size[1] - 0.5,\r\n height: moveHandleHeight\r\n }\r\n });\r\n var iconSize = moveHandleHeight * 0.8;\r\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\r\n moveHandleIcon.silent = true;\r\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\r\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\r\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\r\n actualMoveZone = displayables.moveZone = new Rect({\r\n invisible: true,\r\n shape: {\r\n y: size[1] - moveZoneExpandSize,\r\n height: moveHandleHeight + moveZoneExpandSize\r\n }\r\n });\r\n actualMoveZone.on('mouseover', function () {\r\n api.enterEmphasis(moveHandle_1);\r\n })\r\n .on('mouseout', function () {\r\n api.leaveEmphasis(moveHandle_1);\r\n });\r\n sliderGroup.add(moveHandle_1);\r\n sliderGroup.add(moveHandleIcon);\r\n sliderGroup.add(actualMoveZone);\r\n }\r\n actualMoveZone.attr({\r\n draggable: true,\r\n cursor: getCursor(this._orient),\r\n drift: bind(this._onDragMove, this, 'all'),\r\n ondragstart: bind(this._showDataInfo, this, true),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false)\r\n });\r\n };\r\n SliderZoomView.prototype._resetInterval = function () {\r\n var range = this._range = this.dataZoomModel.getPercentRange();\r\n var viewExtent = this._getViewExtent();\r\n this._handleEnds = [\r\n linearMap(range[0], [0, 100], viewExtent, true),\r\n linearMap(range[1], [0, 100], viewExtent, true)\r\n ];\r\n };\r\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var handleEnds = this._handleEnds;\r\n var viewExtend = this._getViewExtent();\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n var percentExtent = [0, 100];\r\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null\r\n ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null\r\n ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\r\n var lastRange = this._range;\r\n var range = this._range = asc([\r\n linearMap(handleEnds[0], viewExtend, percentExtent, true),\r\n linearMap(handleEnds[1], viewExtend, percentExtent, true)\r\n ]);\r\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\r\n };\r\n SliderZoomView.prototype._updateView = function (nonRealtime) {\r\n var displaybles = this._displayables;\r\n var handleEnds = this._handleEnds;\r\n var handleInterval = asc(handleEnds.slice());\r\n var size = this._size;\r\n each([0, 1], function (handleIndex) {\r\n var handle = displaybles.handles[handleIndex];\r\n var handleHeight = this._handleHeight;\r\n handle.attr({\r\n scaleX: handleHeight / 2,\r\n scaleY: handleHeight / 2,\r\n x: handleEnds[handleIndex],\r\n y: size[1] / 2 - handleHeight / 2\r\n });\r\n }, this);\r\n displaybles.filler.setShape({\r\n x: handleInterval[0],\r\n y: 0,\r\n width: handleInterval[1] - handleInterval[0],\r\n height: size[1]\r\n });\r\n var viewExtent = {\r\n x: handleInterval[0],\r\n width: handleInterval[1] - handleInterval[0]\r\n };\r\n if (displaybles.moveHandle) {\r\n displaybles.moveHandle.setShape(viewExtent);\r\n displaybles.moveZone.setShape(viewExtent);\r\n displaybles.moveZone.getBoundingRect();\r\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\r\n }\r\n var dataShadowSegs = displaybles.dataShadowSegs;\r\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\r\n for (var i = 0; i < dataShadowSegs.length; i++) {\r\n var segGroup = dataShadowSegs[i];\r\n var clipPath = segGroup.getClipPath();\r\n if (!clipPath) {\r\n clipPath = new Rect();\r\n segGroup.setClipPath(clipPath);\r\n }\r\n clipPath.setShape({\r\n x: segIntervals[i],\r\n y: 0,\r\n width: segIntervals[i + 1] - segIntervals[i],\r\n height: size[1]\r\n });\r\n }\r\n this._updateDataInfo(nonRealtime);\r\n };\r\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var displaybles = this._displayables;\r\n var handleLabels = displaybles.handleLabels;\r\n var orient = this._orient;\r\n var labelTexts = ['', ''];\r\n if (dataZoomModel.get('showDetail')) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var axis = axisProxy.getAxisModel().axis;\r\n var range = this._range;\r\n var dataInterval = nonRealtime\r\n ? axisProxy.calculateDataWindow({\r\n start: range[0], end: range[1]\r\n }).valueWindow\r\n : axisProxy.getDataValueWindow();\r\n labelTexts = [\r\n this._formatLabel(dataInterval[0], axis),\r\n this._formatLabel(dataInterval[1], axis)\r\n ];\r\n }\r\n }\r\n var orderedHandleEnds = asc(this._handleEnds.slice());\r\n setLabel.call(this, 0);\r\n setLabel.call(this, 1);\r\n function setLabel(handleIndex) {\r\n var barTransform = getTransform(displaybles.handles[handleIndex].parent, this.group);\r\n var direction = transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\r\n var offset = this._handleWidth / 2 + LABEL_GAP;\r\n var textPoint = applyTransform$1([\r\n orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset),\r\n this._size[1] / 2\r\n ], barTransform);\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\r\n align: orient === HORIZONTAL ? direction : 'center',\r\n text: labelTexts[handleIndex]\r\n });\r\n }\r\n };\r\n SliderZoomView.prototype._formatLabel = function (value, axis) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var labelFormatter = dataZoomModel.get('labelFormatter');\r\n var labelPrecision = dataZoomModel.get('labelPrecision');\r\n if (labelPrecision == null || labelPrecision === 'auto') {\r\n labelPrecision = axis.getPixelPrecision();\r\n }\r\n var valueStr = (value == null || isNaN(value))\r\n ? ''\r\n : (axis.type === 'category' || axis.type === 'time')\r\n ? axis.scale.getLabel({\r\n value: Math.round(value)\r\n })\r\n : value.toFixed(Math.min(labelPrecision, 20));\r\n return isFunction(labelFormatter)\r\n ? labelFormatter(value, valueStr)\r\n : isString(labelFormatter)\r\n ? labelFormatter.replace('{value}', valueStr)\r\n : valueStr;\r\n };\r\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\r\n showOrHide = this._dragging || showOrHide;\r\n var displayables = this._displayables;\r\n var handleLabels = displayables.handleLabels;\r\n handleLabels[0].attr('invisible', !showOrHide);\r\n handleLabels[1].attr('invisible', !showOrHide);\r\n displayables.moveHandle\r\n && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\r\n };\r\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\r\n this._dragging = true;\r\n stop(event.event);\r\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\r\n var vertex = applyTransform$1([dx, dy], barTransform, true);\r\n var changed = this._updateInterval(handleIndex, vertex[0]);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n this._updateView(!realtime);\r\n changed && realtime && this._dispatchZoomAction(true);\r\n };\r\n SliderZoomView.prototype._onDragEnd = function () {\r\n this._dragging = false;\r\n this._showDataInfo(false);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n !realtime && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onClickPanel = function (e) {\r\n var size = this._size;\r\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\r\n if (localPoint[0] < 0 || localPoint[0] > size[0]\r\n || localPoint[1] < 0 || localPoint[1] > size[1]) {\r\n return;\r\n }\r\n var handleEnds = this._handleEnds;\r\n var center = (handleEnds[0] + handleEnds[1]) / 2;\r\n var changed = this._updateInterval('all', localPoint[0] - center);\r\n this._updateView();\r\n changed && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrushStart = function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n this._brushStart = new Point(x, y);\r\n this._brushing = true;\r\n this._brushStartTime = +new Date();\r\n };\r\n SliderZoomView.prototype._onBrushEnd = function (e) {\r\n if (!this._brushing) {\r\n return;\r\n }\r\n var brushRect = this._displayables.brushRect;\r\n this._brushing = false;\r\n if (!brushRect) {\r\n return;\r\n }\r\n brushRect.attr('ignore', true);\r\n var brushShape = brushRect.shape;\r\n var brushEndTime = +new Date();\r\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\r\n return;\r\n }\r\n var viewExtend = this._getViewExtent();\r\n var percentExtent = [0, 100];\r\n this._range = asc([\r\n linearMap(brushShape.x, viewExtend, percentExtent, true),\r\n linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)\r\n ]);\r\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\r\n this._updateView();\r\n this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrush = function (e) {\r\n if (this._brushing) {\r\n stop(e.event);\r\n this._updateBrushRect(e.offsetX, e.offsetY);\r\n }\r\n };\r\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\r\n var displayables = this._displayables;\r\n var dataZoomModel = this.dataZoomModel;\r\n var brushRect = displayables.brushRect;\r\n if (!brushRect) {\r\n brushRect = displayables.brushRect = new Rect$1({\r\n silent: true,\r\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\r\n });\r\n displayables.sliderGroup.add(brushRect);\r\n }\r\n brushRect.ignore = false;\r\n var brushStart = this._brushStart;\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\r\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\r\n var size = this._size;\r\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\r\n brushRect.setShape({\r\n x: startPoint[0], y: 0,\r\n width: endPoint[0] - startPoint[0], height: size[1]\r\n });\r\n };\r\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\r\n var range = this._range;\r\n this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n dataZoomId: this.dataZoomModel.id,\r\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n };\r\n SliderZoomView.prototype._findCoordRect = function () {\r\n var rect;\r\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\r\n if (!rect && coordSysInfoList.length) {\r\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\r\n rect = coordSys.getRect && coordSys.getRect();\r\n }\r\n if (!rect) {\r\n var width = this.api.getWidth();\r\n var height = this.api.getHeight();\r\n rect = {\r\n x: width * 0.2,\r\n y: height * 0.2,\r\n width: width * 0.6,\r\n height: height * 0.6\r\n };\r\n }\r\n return rect;\r\n };\r\n SliderZoomView.type = 'dataZoom.slider';\r\n return SliderZoomView;\r\n }(DataZoomView));\r\n function getOtherDim(thisDim) {\r\n var map = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' };\r\n return map[thisDim];\r\n }\r\n function getCursor(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(SliderZoomView);\n\n var each$8 = each;\r\n var asc$1 = asc;\r\n var AxisProxy = (function () {\r\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\r\n this._dimName = dimName;\r\n this._axisIndex = axisIndex;\r\n this.ecModel = ecModel;\r\n this._dataZoomModel = dataZoomModel;\r\n }\r\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\r\n return this._dataZoomModel === dataZoomModel;\r\n };\r\n AxisProxy.prototype.getDataValueWindow = function () {\r\n return this._valueWindow.slice();\r\n };\r\n AxisProxy.prototype.getDataPercentWindow = function () {\r\n return this._percentWindow.slice();\r\n };\r\n AxisProxy.prototype.getTargetSeriesModels = function () {\r\n var seriesModels = [];\r\n this.ecModel.eachSeries(function (seriesModel) {\r\n if (isCoordSupported(seriesModel)) {\r\n var axisMainType = getAxisMainType(this._dimName);\r\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\r\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\r\n seriesModels.push(seriesModel);\r\n }\r\n }\r\n }, this);\r\n return seriesModels;\r\n };\r\n AxisProxy.prototype.getAxisModel = function () {\r\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\r\n };\r\n AxisProxy.prototype.getMinMaxSpan = function () {\r\n return clone(this._minMaxSpan);\r\n };\r\n AxisProxy.prototype.calculateDataWindow = function (opt) {\r\n var dataExtent = this._dataExtent;\r\n var axisModel = this.getAxisModel();\r\n var scale = axisModel.axis.scale;\r\n var rangePropMode = this._dataZoomModel.getRangePropMode();\r\n var percentExtent = [0, 100];\r\n var percentWindow = [];\r\n var valueWindow = [];\r\n var hasPropModeValue;\r\n each$8(['start', 'end'], function (prop, idx) {\r\n var boundPercent = opt[prop];\r\n var boundValue = opt[prop + 'Value'];\r\n if (rangePropMode[idx] === 'percent') {\r\n boundPercent == null && (boundPercent = percentExtent[idx]);\r\n boundValue = scale.parse(linearMap(boundPercent, percentExtent, dataExtent));\r\n }\r\n else {\r\n hasPropModeValue = true;\r\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\r\n boundPercent = linearMap(boundValue, dataExtent, percentExtent);\r\n }\r\n valueWindow[idx] = boundValue;\r\n percentWindow[idx] = boundPercent;\r\n });\r\n asc$1(valueWindow);\r\n asc$1(percentWindow);\r\n var spans = this._minMaxSpan;\r\n hasPropModeValue\r\n ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false)\r\n : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\r\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\r\n var suffix = toValue ? 'Span' : 'ValueSpan';\r\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\r\n for (var i = 0; i < 2; i++) {\r\n toWindow[i] = linearMap(fromWindow[i], fromExtent, toExtent, true);\r\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\r\n }\r\n }\r\n return {\r\n valueWindow: valueWindow,\r\n percentWindow: percentWindow\r\n };\r\n };\r\n AxisProxy.prototype.reset = function (dataZoomModel) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var targetSeries = this.getTargetSeriesModels();\r\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\r\n this._updateMinMaxSpan();\r\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\r\n this._valueWindow = dataWindow.valueWindow;\r\n this._percentWindow = dataWindow.percentWindow;\r\n this._setAxisModel();\r\n };\r\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var axisDim = this._dimName;\r\n var seriesModels = this.getTargetSeriesModels();\r\n var filterMode = dataZoomModel.get('filterMode');\r\n var valueWindow = this._valueWindow;\r\n if (filterMode === 'none') {\r\n return;\r\n }\r\n each$8(seriesModels, function (seriesModel) {\r\n var seriesData = seriesModel.getData();\r\n var dataDims = seriesData.mapDimensionsAll(axisDim);\r\n if (!dataDims.length) {\r\n return;\r\n }\r\n if (filterMode === 'weakFilter') {\r\n seriesData.filterSelf(function (dataIndex) {\r\n var leftOut;\r\n var rightOut;\r\n var hasValue;\r\n for (var i = 0; i < dataDims.length; i++) {\r\n var value = seriesData.get(dataDims[i], dataIndex);\r\n var thisHasValue = !isNaN(value);\r\n var thisLeftOut = value < valueWindow[0];\r\n var thisRightOut = value > valueWindow[1];\r\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\r\n return true;\r\n }\r\n thisHasValue && (hasValue = true);\r\n thisLeftOut && (leftOut = true);\r\n thisRightOut && (rightOut = true);\r\n }\r\n return hasValue && leftOut && rightOut;\r\n });\r\n }\r\n else {\r\n each$8(dataDims, function (dim) {\r\n if (filterMode === 'empty') {\r\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\r\n return !isInWindow(value) ? NaN : value;\r\n }));\r\n }\r\n else {\r\n var range = {};\r\n range[dim] = valueWindow;\r\n seriesData.selectRange(range);\r\n }\r\n });\r\n }\r\n each$8(dataDims, function (dim) {\r\n seriesData.setApproximateExtent(valueWindow, dim);\r\n });\r\n });\r\n function isInWindow(value) {\r\n return value >= valueWindow[0] && value <= valueWindow[1];\r\n }\r\n };\r\n AxisProxy.prototype._updateMinMaxSpan = function () {\r\n var minMaxSpan = this._minMaxSpan = {};\r\n var dataZoomModel = this._dataZoomModel;\r\n var dataExtent = this._dataExtent;\r\n each$8(['min', 'max'], function (minMax) {\r\n var percentSpan = dataZoomModel.get(minMax + 'Span');\r\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\r\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\r\n if (valueSpan != null) {\r\n percentSpan = linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\r\n }\r\n else if (percentSpan != null) {\r\n valueSpan = linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\r\n }\r\n minMaxSpan[minMax + 'Span'] = percentSpan;\r\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\r\n }, this);\r\n };\r\n AxisProxy.prototype._setAxisModel = function () {\r\n var axisModel = this.getAxisModel();\r\n var percentWindow = this._percentWindow;\r\n var valueWindow = this._valueWindow;\r\n if (!percentWindow) {\r\n return;\r\n }\r\n var precision = getPixelPrecision(valueWindow, [0, 500]);\r\n precision = Math.min(precision, 20);\r\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\r\n if (percentWindow[0] !== 0) {\r\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\r\n }\r\n if (percentWindow[1] !== 100) {\r\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\r\n }\r\n rawExtentInfo.freeze();\r\n };\r\n return AxisProxy;\r\n }());\r\n function calculateDataExtent(axisProxy, axisDim, seriesModels) {\r\n var dataExtent = [Infinity, -Infinity];\r\n each$8(seriesModels, function (seriesModel) {\r\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\r\n });\r\n var axisModel = axisProxy.getAxisModel();\r\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\r\n return [rawExtentResult.min, rawExtentResult.max];\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER, {\r\n getTargetSeries: function (ecModel) {\r\n function eachAxisModel(cb) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\r\n });\r\n });\r\n }\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n axisModel.__dzAxisProxy = null;\r\n });\r\n var proxyList = [];\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n if (!axisModel.__dzAxisProxy) {\r\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\r\n proxyList.push(axisModel.__dzAxisProxy);\r\n }\r\n });\r\n var seriesModelMap = createHashMap();\r\n each(proxyList, function (axisProxy) {\r\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\r\n seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\r\n });\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\r\n });\r\n });\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var percentRange = axisProxy.getDataPercentWindow();\r\n var valueRange = axisProxy.getDataValueWindow();\r\n dataZoomModel.setCalculatedRange({\r\n start: percentRange[0],\r\n end: percentRange[1],\r\n startValue: valueRange[0],\r\n endValue: valueRange[1]\r\n });\r\n }\r\n });\r\n }\r\n });\n\n registerAction('dataZoom', function (payload, ecModel) {\r\n var effectedModels = findEffectedDataZooms(ecModel, payload);\r\n each(effectedModels, function (dataZoomModel) {\r\n dataZoomModel.setRawRange({\r\n start: payload.start,\r\n end: payload.end,\r\n startValue: payload.startValue,\r\n endValue: payload.endValue\r\n });\r\n });\r\n });\n\n var InsideZoomModel = (function (_super) {\r\n __extends(InsideZoomModel, _super);\r\n function InsideZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = InsideZoomModel.type;\r\n return _this;\r\n }\r\n InsideZoomModel.type = 'dataZoom.inside';\r\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n disabled: false,\r\n zoomLock: false,\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n return InsideZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(InsideZoomModel);\n\n var ATTR = '\\0_ec_interaction_mutex';\r\n function take(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n store[resourceKey] = userKey;\r\n }\r\n function release(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n var uKey = store[resourceKey];\r\n if (uKey === userKey) {\r\n store[resourceKey] = null;\r\n }\r\n }\r\n function isTaken(zr, resourceKey) {\r\n return !!getStore(zr)[resourceKey];\r\n }\r\n function getStore(zr) {\r\n return zr[ATTR] || (zr[ATTR] = {});\r\n }\r\n registerAction({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, function () { });\n\n var RoamController = (function (_super) {\r\n __extends(RoamController, _super);\r\n function RoamController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._zr = zr;\r\n var mousedownHandler = bind(_this._mousedownHandler, _this);\r\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\r\n var mouseupHandler = bind(_this._mouseupHandler, _this);\r\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\r\n var pinchHandler = bind(_this._pinchHandler, _this);\r\n _this.enable = function (controlType, opt) {\r\n this.disable();\r\n this._opt = defaults(clone(opt) || {}, {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n if (controlType == null) {\r\n controlType = true;\r\n }\r\n if (controlType === true || (controlType === 'move' || controlType === 'pan')) {\r\n zr.on('mousedown', mousedownHandler);\r\n zr.on('mousemove', mousemoveHandler);\r\n zr.on('mouseup', mouseupHandler);\r\n }\r\n if (controlType === true || (controlType === 'scale' || controlType === 'zoom')) {\r\n zr.on('mousewheel', mousewheelHandler);\r\n zr.on('pinch', pinchHandler);\r\n }\r\n };\r\n _this.disable = function () {\r\n zr.off('mousedown', mousedownHandler);\r\n zr.off('mousemove', mousemoveHandler);\r\n zr.off('mouseup', mouseupHandler);\r\n zr.off('mousewheel', mousewheelHandler);\r\n zr.off('pinch', pinchHandler);\r\n };\r\n return _this;\r\n }\r\n RoamController.prototype.isDragging = function () {\r\n return this._dragging;\r\n };\r\n RoamController.prototype.isPinching = function () {\r\n return this._pinching;\r\n };\r\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\r\n this.pointerChecker = pointerChecker;\r\n };\r\n RoamController.prototype.dispose = function () {\r\n this.disable();\r\n };\r\n RoamController.prototype._mousedownHandler = function (e) {\r\n if (isMiddleOrRightButtonOnMouseUpDown(e)\r\n || (e.target && e.target.draggable)) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\r\n this._x = x;\r\n this._y = y;\r\n this._dragging = true;\r\n }\r\n };\r\n RoamController.prototype._mousemoveHandler = function (e) {\r\n if (!this._dragging\r\n || !isAvailableBehavior('moveOnMouseMove', e, this._opt)\r\n || e.gestureEvent === 'pinch'\r\n || isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var oldX = this._x;\r\n var oldY = this._y;\r\n var dx = x - oldX;\r\n var dy = y - oldY;\r\n this._x = x;\r\n this._y = y;\r\n this._opt.preventDefaultMouseMove && stop(e.event);\r\n trigger(this, 'pan', 'moveOnMouseMove', e, {\r\n dx: dx, dy: dy, oldX: oldX, oldY: oldY, newX: x, newY: y, isAvailableBehavior: null\r\n });\r\n };\r\n RoamController.prototype._mouseupHandler = function (e) {\r\n if (!isMiddleOrRightButtonOnMouseUpDown(e)) {\r\n this._dragging = false;\r\n }\r\n };\r\n RoamController.prototype._mousewheelHandler = function (e) {\r\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\r\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\r\n var wheelDelta = e.wheelDelta;\r\n var absWheelDeltaDelta = Math.abs(wheelDelta);\r\n var originX = e.offsetX;\r\n var originY = e.offsetY;\r\n if (wheelDelta === 0 || (!shouldZoom && !shouldMove)) {\r\n return;\r\n }\r\n if (shouldZoom) {\r\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\r\n var scale = wheelDelta > 0 ? factor : 1 / factor;\r\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\r\n scale: scale, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n if (shouldMove) {\r\n var absDelta = Math.abs(wheelDelta);\r\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\r\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\r\n scrollDelta: scrollDelta, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n };\r\n RoamController.prototype._pinchHandler = function (e) {\r\n if (isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\r\n checkPointerAndTrigger(this, 'zoom', null, e, {\r\n scale: scale, originX: e.pinchX, originY: e.pinchY, isAvailableBehavior: null\r\n });\r\n };\r\n return RoamController;\r\n }(Eventful));\r\n function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n if (controller.pointerChecker\r\n && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\r\n stop(e.event);\r\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\r\n }\r\n }\r\n function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\r\n controller.trigger(eventName, contollerEvent);\r\n }\r\n function isAvailableBehavior(behaviorToCheck, e, settings) {\r\n var setting = settings[behaviorToCheck];\r\n return !behaviorToCheck || (setting && (!isString(setting) || e.event[setting + 'Key']));\r\n }\n\n var inner$e = makeInner();\r\n registerProcessor(PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\r\n var apiInner = inner$e(api);\r\n var coordSysRecordMap = apiInner.coordSysRecordMap\r\n || (apiInner.coordSysRecordMap = createHashMap());\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n coordSysRecord.dataZoomInfoMap = null;\r\n });\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'inside' }, function (dataZoomModel) {\r\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\r\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\r\n var coordSysUid = dzCoordSysInfo.model.uid;\r\n var coordSysRecord = coordSysRecordMap.get(coordSysUid)\r\n || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap\r\n || (coordSysRecord.dataZoomInfoMap = createHashMap());\r\n dataZoomInfoMap.set(dataZoomModel.uid, {\r\n dzReferCoordSysInfo: dzCoordSysInfo,\r\n model: dataZoomModel,\r\n getRange: null\r\n });\r\n });\r\n });\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n var controller = coordSysRecord.controller;\r\n var firstDzInfo;\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var firstDzKey = dataZoomInfoMap.keys()[0];\r\n if (firstDzKey != null) {\r\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\r\n }\r\n }\r\n if (!firstDzInfo) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n return;\r\n }\r\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\r\n controller.enable(controllerParams.controlType, controllerParams.opt);\r\n controller.setPointerChecker(coordSysRecord.containsPoint);\r\n createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\r\n });\r\n });\r\n function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\r\n inner$e(api).coordSysRecordMap.each(function (coordSysRecord) {\r\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\r\n if (dzInfo) {\r\n dzInfo.getRange = getRange;\r\n }\r\n });\r\n }\r\n function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\r\n var coordSysRecordMap = inner$e(api).coordSysRecordMap;\r\n var coordSysKeyArr = coordSysRecordMap.keys();\r\n for (var i = 0; i < coordSysKeyArr.length; i++) {\r\n var coordSysKey = coordSysKeyArr[i];\r\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var dzUid = dataZoomModel.uid;\r\n var dzInfo = dataZoomInfoMap.get(dzUid);\r\n if (dzInfo) {\r\n dataZoomInfoMap.removeKey(dzUid);\r\n if (!dataZoomInfoMap.keys().length) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\r\n if (coordSysRecord) {\r\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\r\n var controller = coordSysRecord.controller;\r\n controller && controller.dispose();\r\n }\r\n }\r\n function createCoordSysRecord(api, coordSysModel) {\r\n var coordSysRecord = {\r\n model: coordSysModel,\r\n containsPoint: curry(containsPoint, coordSysModel),\r\n dispatchAction: curry(dispatchAction, api),\r\n dataZoomInfoMap: null,\r\n controller: null\r\n };\r\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\r\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\r\n controller.on(eventName, function (event) {\r\n var batch = [];\r\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\r\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\r\n return;\r\n }\r\n var method = (dzInfo.getRange || {})[eventName];\r\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\r\n !dzInfo.model.get('disabled', true) && range && batch.push({\r\n dataZoomId: dzInfo.model.id,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n });\r\n batch.length && coordSysRecord.dispatchAction(batch);\r\n });\r\n });\r\n return coordSysRecord;\r\n }\r\n function dispatchAction(api, batch) {\r\n api.dispatchAction({\r\n type: 'dataZoom',\r\n animation: {\r\n easing: 'cubicOut',\r\n duration: 100\r\n },\r\n batch: batch\r\n });\r\n }\r\n function containsPoint(coordSysModel, e, x, y) {\r\n return coordSysModel.coordinateSystem.containPoint([x, y]);\r\n }\r\n function mergeControllerParams(dataZoomInfoMap) {\r\n var controlType;\r\n var prefix = 'type_';\r\n var typePriority = {\r\n 'type_true': 2,\r\n 'type_move': 1,\r\n 'type_false': 0,\r\n 'type_undefined': -1\r\n };\r\n var preventDefaultMouseMove = true;\r\n dataZoomInfoMap.each(function (dataZoomInfo) {\r\n var dataZoomModel = dataZoomInfo.model;\r\n var oneType = dataZoomModel.get('disabled', true)\r\n ? false\r\n : dataZoomModel.get('zoomLock', true)\r\n ? 'move'\r\n : true;\r\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\r\n controlType = oneType;\r\n }\r\n preventDefaultMouseMove = preventDefaultMouseMove\r\n && dataZoomModel.get('preventDefaultMouseMove', true);\r\n });\r\n return {\r\n controlType: controlType,\r\n opt: {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: true,\r\n preventDefaultMouseMove: !!preventDefaultMouseMove\r\n }\r\n };\r\n }\n\n var InsideZoomView = (function (_super) {\r\n __extends(InsideZoomView, _super);\r\n function InsideZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataZoom.inside';\r\n return _this;\r\n }\r\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\r\n _super.prototype.render.apply(this, arguments);\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n return;\r\n }\r\n this.range = dataZoomModel.getPercentRange();\r\n setViewInfoToCoordSysRecord(api, dataZoomModel, {\r\n pan: bind(getRangeHandlers.pan, this),\r\n zoom: bind(getRangeHandlers.zoom, this),\r\n scrollMove: bind(getRangeHandlers.scrollMove, this)\r\n });\r\n };\r\n InsideZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n InsideZoomView.prototype._clear = function () {\r\n disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\r\n this.range = null;\r\n };\r\n InsideZoomView.type = 'dataZoom.inside';\r\n return InsideZoomView;\r\n }(DataZoomView));\r\n var getRangeHandlers = {\r\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\r\n var percentPoint = (directionInfo.signal > 0\r\n ? (directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel)\r\n : (directionInfo.pixel - directionInfo.pixelStart)) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\r\n var scale = Math.max(1 / e.scale, 0);\r\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\r\n range[1] = (range[1] - percentPoint) * scale + percentPoint;\r\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n },\r\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal\r\n * (range[1] - range[0])\r\n * directionInfo.pixel / directionInfo.pixelLength;\r\n }),\r\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\r\n })\r\n };\r\n function makeMover(getPercentDelta) {\r\n return function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\r\n sliderMove(percentDelta, range, [0, 100], 'all');\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n };\r\n }\r\n var getDirectionInfo = {\r\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.dim === 'x') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var polar = coordSysInfo.model.coordinateSystem;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var angleExtent = polar.getAngleAxis().getExtent();\r\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\r\n newPoint = polar.pointToCoord(newPoint);\r\n if (axisModel.mainType === 'radiusAxis') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\r\n ret.pixelStart = radiusExtent[0];\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = angleExtent[1] - angleExtent[0];\r\n ret.pixelStart = angleExtent[0];\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n var ret = {};\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.orient === 'horizontal') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n }\r\n };\r\n ComponentView.registerClass(InsideZoomView);\n\n var ToolboxFeature = (function () {\r\n function ToolboxFeature() {\r\n }\r\n return ToolboxFeature;\r\n }());\r\n var features = {};\r\n function registerFeature(name, ctor) {\r\n features[name] = ctor;\r\n }\r\n function getFeature(name) {\r\n return features[name];\r\n }\n\n var ToolboxModel = (function (_super) {\r\n __extends(ToolboxModel, _super);\r\n function ToolboxModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ToolboxModel.type;\r\n return _this;\r\n }\r\n ToolboxModel.prototype.optionUpdated = function () {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n var ecModel = this.ecModel;\r\n each(this.option.feature, function (featureOpt, featureName) {\r\n var Feature = getFeature(featureName);\r\n if (Feature) {\r\n if (Feature.getDefaultOption) {\r\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\r\n }\r\n merge(featureOpt, Feature.defaultOption);\r\n }\r\n });\r\n };\r\n ToolboxModel.type = 'toolbox';\r\n ToolboxModel.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n ToolboxModel.defaultOption = {\r\n show: true,\r\n z: 6,\r\n zlevel: 0,\r\n orient: 'horizontal',\r\n left: 'right',\r\n top: 'top',\r\n backgroundColor: 'transparent',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemSize: 15,\r\n itemGap: 8,\r\n showTitle: true,\r\n iconStyle: {\r\n borderColor: '#666',\r\n color: 'none'\r\n },\r\n emphasis: {\r\n iconStyle: {\r\n borderColor: '#3E98C5'\r\n }\r\n },\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return ToolboxModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ToolboxModel);\n\n var ToolboxView = (function (_super) {\r\n __extends(ToolboxView, _super);\r\n function ToolboxView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n if (!toolboxModel.get('show')) {\r\n return;\r\n }\r\n var itemSize = +toolboxModel.get('itemSize');\r\n var featureOpts = toolboxModel.get('feature') || {};\r\n var features = this._features || (this._features = {});\r\n var featureNames = [];\r\n each(featureOpts, function (opt, name) {\r\n featureNames.push(name);\r\n });\r\n (new DataDiffer(this._featureNames || [], featureNames))\r\n .add(processFeature)\r\n .update(processFeature)\r\n .remove(curry(processFeature, null))\r\n .execute();\r\n this._featureNames = featureNames;\r\n function processFeature(newIndex, oldIndex) {\r\n var featureName = featureNames[newIndex];\r\n var oldName = featureNames[oldIndex];\r\n var featureOpt = featureOpts[featureName];\r\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\r\n var feature;\r\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\r\n featureOpt.title = payload.newTitle;\r\n }\r\n if (featureName && !oldName) {\r\n if (isUserFeatureName(featureName)) {\r\n feature = {\r\n onclick: featureModel.option.onclick,\r\n featureName: featureName\r\n };\r\n }\r\n else {\r\n var Feature = getFeature(featureName);\r\n if (!Feature) {\r\n return;\r\n }\r\n feature = new Feature();\r\n }\r\n features[featureName] = feature;\r\n }\r\n else {\r\n feature = features[oldName];\r\n if (!feature) {\r\n return;\r\n }\r\n }\r\n feature.uid = getUID('toolbox-feature');\r\n feature.model = featureModel;\r\n feature.ecModel = ecModel;\r\n feature.api = api;\r\n if (feature instanceof ToolboxFeature) {\r\n if (!featureName && oldName) {\r\n feature.dispose && feature.dispose(ecModel, api);\r\n return;\r\n }\r\n if (!featureModel.get('show') || feature.unusable) {\r\n feature.remove && feature.remove(ecModel, api);\r\n return;\r\n }\r\n }\r\n createIconPaths(featureModel, feature, featureName);\r\n featureModel.setIconStatus = function (iconName, status) {\r\n var option = this.option;\r\n var iconPaths = this.iconPaths;\r\n option.iconStatus = option.iconStatus || {};\r\n option.iconStatus[iconName] = status;\r\n if (iconPaths[iconName]) {\r\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\r\n }\r\n };\r\n if (feature instanceof ToolboxFeature) {\r\n if (feature.render) {\r\n feature.render(featureModel, ecModel, api, payload);\r\n }\r\n }\r\n }\r\n function createIconPaths(featureModel, feature, featureName) {\r\n var iconStyleModel = featureModel.getModel('iconStyle');\r\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\r\n var icons = (feature instanceof ToolboxFeature && feature.getIcons)\r\n ? feature.getIcons() : featureModel.get('icon');\r\n var titles = featureModel.get('title') || {};\r\n var iconsMap;\r\n var titlesMap;\r\n if (typeof icons === 'string') {\r\n iconsMap = {};\r\n iconsMap[featureName] = icons;\r\n }\r\n else {\r\n iconsMap = icons;\r\n }\r\n if (typeof titles === 'string') {\r\n titlesMap = {};\r\n titlesMap[featureName] = titles;\r\n }\r\n else {\r\n titlesMap = titles;\r\n }\r\n var iconPaths = featureModel.iconPaths = {};\r\n each(iconsMap, function (iconStr, iconName) {\r\n var path = createIcon(iconStr, {}, {\r\n x: -itemSize / 2,\r\n y: -itemSize / 2,\r\n width: itemSize,\r\n height: itemSize\r\n });\r\n path.setStyle(iconStyleModel.getItemStyle());\r\n var pathEmphasisState = path.ensureState('emphasis');\r\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\r\n var textContent = new ZRText({\r\n style: {\r\n text: titlesMap[iconName],\r\n align: iconStyleEmphasisModel.get('textAlign'),\r\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\r\n padding: iconStyleEmphasisModel.get('textPadding'),\r\n fill: null\r\n },\r\n ignore: true\r\n });\r\n path.setTextContent(textContent);\r\n var tooltipModel = toolboxModel.getModel('tooltip');\r\n if (tooltipModel && tooltipModel.get('show')) {\r\n path.tooltip = extend({\r\n content: titlesMap[iconName],\r\n formatter: tooltipModel.get('formatter', true)\r\n || function () {\r\n return titlesMap[iconName];\r\n },\r\n formatterParams: {\r\n componentType: 'toolbox',\r\n name: iconName,\r\n title: titlesMap[iconName],\r\n $vars: ['name', 'title']\r\n },\r\n position: tooltipModel.get('position', true) || 'bottom'\r\n }, tooltipModel.option);\r\n }\r\n path.__title = titlesMap[iconName];\r\n path.on('mouseover', function () {\r\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\r\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical'\r\n ? (toolboxModel.get('right') == null ? 'right' : 'left')\r\n : (toolboxModel.get('bottom') == null ? 'bottom' : 'top');\r\n textContent.setStyle({\r\n fill: (iconStyleEmphasisModel.get('textFill')\r\n || hoverStyle.fill || hoverStyle.stroke || '#000'),\r\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\r\n });\r\n path.setTextConfig({\r\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\r\n });\r\n textContent.ignore = !toolboxModel.get('showTitle');\r\n enterEmphasis(this);\r\n })\r\n .on('mouseout', function () {\r\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\r\n leaveEmphasis(this);\r\n }\r\n textContent.hide();\r\n });\r\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\r\n group.add(path);\r\n path.on('click', bind(feature.onclick, feature, ecModel, api, iconName));\r\n iconPaths[iconName] = path;\r\n });\r\n }\r\n layout$2(group, toolboxModel, api);\r\n group.add(makeBackground(group.getBoundingRect(), toolboxModel));\r\n group.eachChild(function (icon) {\r\n var titleText = icon.__title;\r\n var emphasisState = icon.ensureState('emphasis');\r\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\r\n var textContent = icon.getTextContent();\r\n var emphasisTextState = textContent && textContent.states.emphasis;\r\n if (emphasisTextState && !isFunction(emphasisTextState) && titleText) {\r\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\r\n var rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\r\n var offsetX = icon.x + group.x;\r\n var offsetY = icon.y + group.y + itemSize;\r\n var needPutOnTop = false;\r\n if (offsetY + rect.height > api.getHeight()) {\r\n emphasisTextConfig.position = 'top';\r\n needPutOnTop = true;\r\n }\r\n var topOffset = needPutOnTop ? (-5 - rect.height) : (itemSize + 8);\r\n if (offsetX + rect.width / 2 > api.getWidth()) {\r\n emphasisTextConfig.position = ['100%', topOffset];\r\n emphasisTextStyle.align = 'right';\r\n }\r\n else if (offsetX - rect.width / 2 < 0) {\r\n emphasisTextConfig.position = [0, topOffset];\r\n emphasisTextStyle.align = 'left';\r\n }\r\n }\r\n });\r\n };\r\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\r\n });\r\n };\r\n ToolboxView.prototype.remove = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.remove && feature.remove(ecModel, api);\r\n });\r\n this.group.removeAll();\r\n };\r\n ToolboxView.prototype.dispose = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.dispose && feature.dispose(ecModel, api);\r\n });\r\n };\r\n ToolboxView.type = 'toolbox';\r\n return ToolboxView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ToolboxView);\r\n function isUserFeatureName(featureName) {\r\n return featureName.indexOf('my') === 0;\r\n }\n\n var SaveAsImage = (function (_super) {\r\n __extends(SaveAsImage, _super);\r\n function SaveAsImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SaveAsImage.prototype.onclick = function (ecModel, api) {\r\n var model = this.model;\r\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\r\n var isSvg = api.getZr().painter.getType() === 'svg';\r\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\r\n var url = api.getConnectedDataURL({\r\n type: type,\r\n backgroundColor: model.get('backgroundColor', true)\r\n || ecModel.get('backgroundColor') || '#fff',\r\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\r\n excludeComponents: model.get('excludeComponents'),\r\n pixelRatio: model.get('pixelRatio')\r\n });\r\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\r\n var $a = document.createElement('a');\r\n $a.download = title + '.' + type;\r\n $a.target = '_blank';\r\n $a.href = url;\r\n var evt = new MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n $a.dispatchEvent(evt);\r\n }\r\n else {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n var bstr = atob(url.split(',')[1]);\r\n var n = bstr.length;\r\n var u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var blob = new Blob([u8arr]);\r\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\r\n }\r\n else {\r\n var lang = model.get('lang');\r\n var html = ''\r\n + ''\r\n + ''\r\n + '';\r\n var tab = window.open();\r\n tab.document.write(html);\r\n }\r\n }\r\n };\r\n SaveAsImage.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\r\n title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\r\n type: 'png',\r\n connectedBackgroundColor: '#fff',\r\n name: '',\r\n excludeComponents: ['toolbox'],\r\n pixelRatio: 1,\r\n lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\r\n };\r\n return defaultOption;\r\n };\r\n return SaveAsImage;\r\n }(ToolboxFeature));\r\n SaveAsImage.prototype.unusable = !env.canvasSupported;\r\n registerFeature('saveAsImage', SaveAsImage);\n\n var INNER_STACK_KEYWORD = '__ec_magicType_stack__';\r\n var radioTypes = [\r\n ['line', 'bar'],\r\n ['stack']\r\n ];\r\n var MagicType = (function (_super) {\r\n __extends(MagicType, _super);\r\n function MagicType() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MagicType.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon');\r\n var icons = {};\r\n each(model.get('type'), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n MagicType.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: [],\r\n icon: {\r\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\r\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\r\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\r\n option: {},\r\n seriesIndex: {}\r\n };\r\n return defaultOption;\r\n };\r\n MagicType.prototype.onclick = function (ecModel, api, type) {\r\n var model = this.model;\r\n var seriesIndex = model.get(['seriesIndex', type]);\r\n if (!seriesOptGenreator[type]) {\r\n return;\r\n }\r\n var newOption = {\r\n series: []\r\n };\r\n var generateNewSeriesTypes = function (seriesModel) {\r\n var seriesType = seriesModel.subType;\r\n var seriesId = seriesModel.id;\r\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\r\n if (newSeriesOpt) {\r\n defaults(newSeriesOpt, seriesModel.option);\r\n newOption.series.push(newSeriesOpt);\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (categoryAxis) {\r\n var axisDim = categoryAxis.dim;\r\n var axisType = axisDim + 'Axis';\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n var axisIndex = axisModel.componentIndex;\r\n newOption[axisType] = newOption[axisType] || [];\r\n for (var i = 0; i <= axisIndex; i++) {\r\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\r\n }\r\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\r\n }\r\n }\r\n };\r\n each(radioTypes, function (radio) {\r\n if (indexOf(radio, type) >= 0) {\r\n each(radio, function (item) {\r\n model.setIconStatus(item, 'normal');\r\n });\r\n }\r\n });\r\n model.setIconStatus(type, 'emphasis');\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n query: seriesIndex == null ? null : {\r\n seriesIndex: seriesIndex\r\n }\r\n }, generateNewSeriesTypes);\r\n var newTitle;\r\n if (type === 'stack') {\r\n var seriesOptions = newOption.series;\r\n var tiledLang = ecModel.getLocale(['toolbox', 'magicType', 'title', 'tiled']);\r\n var titleLang = ecModel.getLocale(['toolbox', 'magicType', 'title']);\r\n var isStack = seriesOptions && seriesOptions[0]\r\n && seriesOptions[0].stack === INNER_STACK_KEYWORD;\r\n newTitle = isStack\r\n ? merge({ stack: tiledLang }, titleLang)\r\n : clone(titleLang);\r\n }\r\n api.dispatchAction({\r\n type: 'changeMagicType',\r\n currentType: type,\r\n newOption: newOption,\r\n newTitle: newTitle,\r\n featureName: 'magicType'\r\n });\r\n };\r\n return MagicType;\r\n }(ToolboxFeature));\r\n var seriesOptGenreator = {\r\n 'line': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'bar') {\r\n return merge({\r\n id: seriesId,\r\n type: 'line',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'line']) || {}, true);\r\n }\r\n },\r\n 'bar': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'line') {\r\n return merge({\r\n id: seriesId,\r\n type: 'bar',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'bar']) || {}, true);\r\n }\r\n },\r\n 'stack': function (seriesType, seriesId, seriesModel, model) {\r\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\r\n if (seriesType === 'line' || seriesType === 'bar') {\r\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\r\n return merge({\r\n id: seriesId,\r\n stack: isStack ? '' : INNER_STACK_KEYWORD\r\n }, model.get(['option', 'stack']) || {}, true);\r\n }\r\n }\r\n };\r\n registerAction({\r\n type: 'changeMagicType',\r\n event: 'magicTypeChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n ecModel.mergeOption(payload.newOption);\r\n });\r\n registerFeature('magicType', MagicType);\n\n var BLOCK_SPLITER = new Array(60).join('-');\r\n var ITEM_SPLITER = '\\t';\r\n function groupSeries(ecModel) {\r\n var seriesGroupByCategoryAxis = {};\r\n var otherSeries = [];\r\n var meta = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n if (baseAxis.type === 'category') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n if (!seriesGroupByCategoryAxis[key]) {\r\n seriesGroupByCategoryAxis[key] = {\r\n categoryAxis: baseAxis,\r\n valueAxis: coordSys.getOtherAxis(baseAxis),\r\n series: []\r\n };\r\n meta.push({\r\n axisDim: baseAxis.dim,\r\n axisIndex: baseAxis.index\r\n });\r\n }\r\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n });\r\n return {\r\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\r\n other: otherSeries,\r\n meta: meta\r\n };\r\n }\r\n function assembleSeriesWithCategoryAxis(groups) {\r\n var tables = [];\r\n each(groups, function (group, key) {\r\n var categoryAxis = group.categoryAxis;\r\n var valueAxis = group.valueAxis;\r\n var valueAxisDim = valueAxis.dim;\r\n var headers = [' '].concat(map(group.series, function (series) {\r\n return series.name;\r\n }));\r\n var columns = [categoryAxis.model.getCategories()];\r\n each(group.series, function (series) {\r\n columns.push(series.getRawData().mapArray(valueAxisDim, function (val) {\r\n return val;\r\n }));\r\n });\r\n var lines = [headers.join(ITEM_SPLITER)];\r\n for (var i = 0; i < columns[0].length; i++) {\r\n var items = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n items.push(columns[j][i]);\r\n }\r\n lines.push(items.join(ITEM_SPLITER));\r\n }\r\n tables.push(lines.join('\\n'));\r\n });\r\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function assembleOtherSeries(series) {\r\n return map(series, function (series) {\r\n var data = series.getRawData();\r\n var lines = [series.name];\r\n var vals = [];\r\n data.each(data.dimensions, function () {\r\n var argLen = arguments.length;\r\n var dataIndex = arguments[argLen - 1];\r\n var name = data.getName(dataIndex);\r\n for (var i = 0; i < argLen - 1; i++) {\r\n vals[i] = arguments[i];\r\n }\r\n lines.push((name ? (name + ITEM_SPLITER) : '') + vals.join(ITEM_SPLITER));\r\n });\r\n return lines.join('\\n');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function getContentFromModel(ecModel) {\r\n var result = groupSeries(ecModel);\r\n return {\r\n value: filter([\r\n assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis),\r\n assembleOtherSeries(result.other)\r\n ], function (str) {\r\n return !!str.replace(/[\\n\\t\\s]/g, '');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\r\n meta: result.meta\r\n };\r\n }\r\n function trim$1(str) {\r\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n }\r\n function isTSVFormat(block) {\r\n var firstLine = block.slice(0, block.indexOf('\\n'));\r\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\r\n return true;\r\n }\r\n }\r\n var itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\r\n function parseTSVContents(tsv) {\r\n var tsvLines = tsv.split(/\\n+/g);\r\n var headers = trim$1(tsvLines.shift()).split(itemSplitRegex);\r\n var categories = [];\r\n var series = map(headers, function (header) {\r\n return {\r\n name: header,\r\n data: []\r\n };\r\n });\r\n for (var i = 0; i < tsvLines.length; i++) {\r\n var items = trim$1(tsvLines[i]).split(itemSplitRegex);\r\n categories.push(items.shift());\r\n for (var j = 0; j < items.length; j++) {\r\n series[j] && (series[j].data[i] = items[j]);\r\n }\r\n }\r\n return {\r\n series: series,\r\n categories: categories\r\n };\r\n }\r\n function parseListContents(str) {\r\n var lines = str.split(/\\n+/g);\r\n var seriesName = trim$1(lines.shift());\r\n var data = [];\r\n for (var i = 0; i < lines.length; i++) {\r\n var items = trim$1(lines[i]).split(itemSplitRegex);\r\n var name_1 = '';\r\n var value = void 0;\r\n var hasName = false;\r\n if (isNaN(items[0])) {\r\n hasName = true;\r\n name_1 = items[0];\r\n items = items.slice(1);\r\n data[i] = {\r\n name: name_1,\r\n value: []\r\n };\r\n value = data[i].value;\r\n }\r\n else {\r\n value = data[i] = [];\r\n }\r\n for (var j = 0; j < items.length; j++) {\r\n value.push(+items[j]);\r\n }\r\n if (value.length === 1) {\r\n hasName ? (data[i].value = value[0]) : (data[i] = value[0]);\r\n }\r\n }\r\n return {\r\n name: seriesName,\r\n data: data\r\n };\r\n }\r\n function parseContents(str, blockMetaList) {\r\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\r\n var newOption = {\r\n series: []\r\n };\r\n each(blocks, function (block, idx) {\r\n if (isTSVFormat(block)) {\r\n var result = parseTSVContents(block);\r\n var blockMeta = blockMetaList[idx];\r\n var axisKey = blockMeta.axisDim + 'Axis';\r\n if (blockMeta) {\r\n newOption[axisKey] = newOption[axisKey] || [];\r\n newOption[axisKey][blockMeta.axisIndex] = {\r\n data: result.categories\r\n };\r\n newOption.series = newOption.series.concat(result.series);\r\n }\r\n }\r\n else {\r\n var result = parseListContents(block);\r\n newOption.series.push(result);\r\n }\r\n });\r\n return newOption;\r\n }\r\n var DataView = (function (_super) {\r\n __extends(DataView, _super);\r\n function DataView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataView.prototype.onclick = function (ecModel, api) {\r\n var container = api.getDom();\r\n var model = this.model;\r\n if (this._dom) {\r\n container.removeChild(this._dom);\r\n }\r\n var root = document.createElement('div');\r\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\r\n root.style.backgroundColor = model.get('backgroundColor') || '#fff';\r\n var header = document.createElement('h4');\r\n var lang = model.get('lang') || [];\r\n header.innerHTML = lang[0] || model.get('title');\r\n header.style.cssText = 'margin: 10px 20px;';\r\n header.style.color = model.get('textColor');\r\n var viewMain = document.createElement('div');\r\n var textarea = document.createElement('textarea');\r\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\r\n var optionToContent = model.get('optionToContent');\r\n var contentToOption = model.get('contentToOption');\r\n var result = getContentFromModel(ecModel);\r\n if (typeof optionToContent === 'function') {\r\n var htmlOrDom = optionToContent(api.getOption());\r\n if (typeof htmlOrDom === 'string') {\r\n viewMain.innerHTML = htmlOrDom;\r\n }\r\n else if (isDom(htmlOrDom)) {\r\n viewMain.appendChild(htmlOrDom);\r\n }\r\n }\r\n else {\r\n viewMain.appendChild(textarea);\r\n textarea.readOnly = model.get('readOnly');\r\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\r\n textarea.style.color = model.get('textColor');\r\n textarea.style.borderColor = model.get('textareaBorderColor');\r\n textarea.style.backgroundColor = model.get('textareaColor');\r\n textarea.value = result.value;\r\n }\r\n var blockMetaList = result.meta;\r\n var buttonContainer = document.createElement('div');\r\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\r\n var buttonStyle = 'float:right;margin-right:20px;border:none;'\r\n + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\r\n var closeButton = document.createElement('div');\r\n var refreshButton = document.createElement('div');\r\n buttonStyle += ';background-color:' + model.get('buttonColor');\r\n buttonStyle += ';color:' + model.get('buttonTextColor');\r\n var self = this;\r\n function close() {\r\n container.removeChild(root);\r\n self._dom = null;\r\n }\r\n addEventListener(closeButton, 'click', close);\r\n addEventListener(refreshButton, 'click', function () {\r\n var newOption;\r\n try {\r\n if (typeof contentToOption === 'function') {\r\n newOption = contentToOption(viewMain, api.getOption());\r\n }\r\n else {\r\n newOption = parseContents(textarea.value, blockMetaList);\r\n }\r\n }\r\n catch (e) {\r\n close();\r\n throw new Error('Data view format error ' + e);\r\n }\r\n if (newOption) {\r\n api.dispatchAction({\r\n type: 'changeDataView',\r\n newOption: newOption\r\n });\r\n }\r\n close();\r\n });\r\n closeButton.innerHTML = lang[1];\r\n refreshButton.innerHTML = lang[2];\r\n refreshButton.style.cssText = buttonStyle;\r\n closeButton.style.cssText = buttonStyle;\r\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\r\n buttonContainer.appendChild(closeButton);\r\n root.appendChild(header);\r\n root.appendChild(viewMain);\r\n root.appendChild(buttonContainer);\r\n viewMain.style.height = (container.clientHeight - 80) + 'px';\r\n container.appendChild(root);\r\n this._dom = root;\r\n };\r\n DataView.prototype.remove = function (ecModel, api) {\r\n this._dom && api.getDom().removeChild(this._dom);\r\n };\r\n DataView.prototype.dispose = function (ecModel, api) {\r\n this.remove(ecModel, api);\r\n };\r\n DataView.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n readOnly: false,\r\n optionToContent: null,\r\n contentToOption: null,\r\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\r\n title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\r\n lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\r\n backgroundColor: '#fff',\r\n textColor: '#000',\r\n textareaColor: '#fff',\r\n textareaBorderColor: '#333',\r\n buttonColor: '#c23531',\r\n buttonTextColor: '#fff'\r\n };\r\n return defaultOption;\r\n };\r\n return DataView;\r\n }(ToolboxFeature));\r\n function tryMergeDataOption(newData, originalData) {\r\n return map(newData, function (newVal, idx) {\r\n var original = originalData && originalData[idx];\r\n if (isObject(original) && !isArray(original)) {\r\n if (isObject(newVal) && !isArray(newVal)) {\r\n newVal = newVal.value;\r\n }\r\n return defaults({\r\n value: newVal\r\n }, original);\r\n }\r\n else {\r\n return newVal;\r\n }\r\n });\r\n }\r\n registerFeature('dataView', DataView);\r\n registerAction({\r\n type: 'changeDataView',\r\n event: 'dataViewChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n var newSeriesOptList = [];\r\n each(payload.newOption.series, function (seriesOpt) {\r\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\r\n if (!seriesModel) {\r\n newSeriesOptList.push(extend({\r\n type: 'scatter'\r\n }, seriesOpt));\r\n }\r\n else {\r\n var originalData = seriesModel.get('data');\r\n newSeriesOptList.push({\r\n name: seriesOpt.name,\r\n data: tryMergeDataOption(seriesOpt.data, originalData)\r\n });\r\n }\r\n });\r\n ecModel.mergeOption(defaults({\r\n series: newSeriesOptList\r\n }, payload.newOption));\r\n });\n\n var BRUSH_PANEL_GLOBAL = true;\r\n var mathMin$5 = Math.min;\r\n var mathMax$5 = Math.max;\r\n var mathPow$2 = Math.pow;\r\n var COVER_Z = 10000;\r\n var UNSELECT_THRESHOLD = 6;\r\n var MIN_RESIZE_LINE_WIDTH = 6;\r\n var MUTEX_RESOURCE_KEY = 'globalPan';\r\n var DIRECTION_MAP = {\r\n w: [0, 0],\r\n e: [0, 1],\r\n n: [1, 0],\r\n s: [1, 1]\r\n };\r\n var CURSOR_MAP = {\r\n w: 'ew',\r\n e: 'ew',\r\n n: 'ns',\r\n s: 'ns',\r\n ne: 'nesw',\r\n sw: 'nesw',\r\n nw: 'nwse',\r\n se: 'nwse'\r\n };\r\n var DEFAULT_BRUSH_OPT = {\r\n brushStyle: {\r\n lineWidth: 2,\r\n stroke: 'rgba(210,219,238,0.3)',\r\n fill: '#D2DBEE'\r\n },\r\n transformable: true,\r\n brushMode: 'single',\r\n removeOnClick: false\r\n };\r\n var baseUID = 0;\r\n var BrushController = (function (_super) {\r\n __extends(BrushController, _super);\r\n function BrushController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._track = [];\r\n _this._covers = [];\r\n _this._handlers = {};\r\n if (__DEV__) {\r\n assert(zr);\r\n }\r\n _this._zr = zr;\r\n _this.group = new Group();\r\n _this._uid = 'brushController_' + baseUID++;\r\n each(pointerHandlers, function (handler, eventName) {\r\n this._handlers[eventName] = bind(handler, this);\r\n }, _this);\r\n return _this;\r\n }\r\n BrushController.prototype.enableBrush = function (brushOption) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n this._brushType && this._doDisableBrush();\r\n brushOption.brushType && this._doEnableBrush(brushOption);\r\n return this;\r\n };\r\n BrushController.prototype._doEnableBrush = function (brushOption) {\r\n var zr = this._zr;\r\n if (!this._enableGlobalPan) {\r\n take(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n }\r\n each(this._handlers, function (handler, eventName) {\r\n zr.on(eventName, handler);\r\n });\r\n this._brushType = brushOption.brushType;\r\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\r\n };\r\n BrushController.prototype._doDisableBrush = function () {\r\n var zr = this._zr;\r\n release(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n each(this._handlers, function (handler, eventName) {\r\n zr.off(eventName, handler);\r\n });\r\n this._brushType = this._brushOption = null;\r\n };\r\n BrushController.prototype.setPanels = function (panelOpts) {\r\n if (panelOpts && panelOpts.length) {\r\n var panels_1 = this._panels = {};\r\n each(panelOpts, function (panelOpts) {\r\n panels_1[panelOpts.panelId] = clone(panelOpts);\r\n });\r\n }\r\n else {\r\n this._panels = null;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.mount = function (opt) {\r\n opt = opt || {};\r\n if (__DEV__) {\r\n this._mounted = true;\r\n }\r\n this._enableGlobalPan = opt.enableGlobalPan;\r\n var thisGroup = this.group;\r\n this._zr.add(thisGroup);\r\n thisGroup.attr({\r\n x: opt.x || 0,\r\n y: opt.y || 0,\r\n rotation: opt.rotation || 0,\r\n scaleX: opt.scaleX || 1,\r\n scaleY: opt.scaleY || 1\r\n });\r\n this._transform = thisGroup.getLocalTransform();\r\n return this;\r\n };\r\n BrushController.prototype.updateCovers = function (coverConfigList) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n coverConfigList = map(coverConfigList, function (coverConfig) {\r\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\r\n });\r\n var tmpIdPrefix = '\\0-brush-index-';\r\n var oldCovers = this._covers;\r\n var newCovers = this._covers = [];\r\n var controller = this;\r\n var creatingCover = this._creatingCover;\r\n (new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey))\r\n .add(addOrUpdate)\r\n .update(addOrUpdate)\r\n .remove(remove)\r\n .execute();\r\n return this;\r\n function getKey(brushOption, index) {\r\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index)\r\n + '-' + brushOption.brushType;\r\n }\r\n function oldGetKey(cover, index) {\r\n return getKey(cover.__brushOption, index);\r\n }\r\n function addOrUpdate(newIndex, oldIndex) {\r\n var newBrushInternal = coverConfigList[newIndex];\r\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\r\n newCovers[newIndex] = oldCovers[oldIndex];\r\n }\r\n else {\r\n var cover = newCovers[newIndex] = oldIndex != null\r\n ? (oldCovers[oldIndex].__brushOption = newBrushInternal,\r\n oldCovers[oldIndex])\r\n : endCreating(controller, createCover(controller, newBrushInternal));\r\n updateCoverAfterCreation(controller, cover);\r\n }\r\n }\r\n function remove(oldIndex) {\r\n if (oldCovers[oldIndex] !== creatingCover) {\r\n controller.group.remove(oldCovers[oldIndex]);\r\n }\r\n }\r\n };\r\n BrushController.prototype.unmount = function () {\r\n if (__DEV__) {\r\n if (!this._mounted) {\r\n return;\r\n }\r\n }\r\n this.enableBrush(false);\r\n clearCovers(this);\r\n this._zr.remove(this.group);\r\n if (__DEV__) {\r\n this._mounted = false;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.dispose = function () {\r\n this.unmount();\r\n this.off();\r\n };\r\n return BrushController;\r\n }(Eventful));\r\n function createCover(controller, brushOption) {\r\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\r\n cover.__brushOption = brushOption;\r\n updateZ(cover, brushOption);\r\n controller.group.add(cover);\r\n return cover;\r\n }\r\n function endCreating(controller, creatingCover) {\r\n var coverRenderer = getCoverRenderer(creatingCover);\r\n if (coverRenderer.endCreating) {\r\n coverRenderer.endCreating(controller, creatingCover);\r\n updateZ(creatingCover, creatingCover.__brushOption);\r\n }\r\n return creatingCover;\r\n }\r\n function updateCoverShape(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\r\n }\r\n function updateZ(cover, brushOption) {\r\n var z = brushOption.z;\r\n z == null && (z = COVER_Z);\r\n cover.traverse(function (el) {\r\n el.z = z;\r\n el.z2 = z;\r\n });\r\n }\r\n function updateCoverAfterCreation(controller, cover) {\r\n getCoverRenderer(cover).updateCommon(controller, cover);\r\n updateCoverShape(controller, cover);\r\n }\r\n function getCoverRenderer(cover) {\r\n return coverRenderers[cover.__brushOption.brushType];\r\n }\r\n function getPanelByPoint(controller, e, localCursorPoint) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panel;\r\n var transform = controller._transform;\r\n each(panels, function (pn) {\r\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\r\n });\r\n return panel;\r\n }\r\n function getPanelByCover(controller, cover) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panelId = cover.__brushOption.panelId;\r\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\r\n }\r\n function clearCovers(controller) {\r\n var covers = controller._covers;\r\n var originalLength = covers.length;\r\n each(covers, function (cover) {\r\n controller.group.remove(cover);\r\n }, controller);\r\n covers.length = 0;\r\n return !!originalLength;\r\n }\r\n function trigger$1(controller, opt) {\r\n var areas = map(controller._covers, function (cover) {\r\n var brushOption = cover.__brushOption;\r\n var range = clone(brushOption.range);\r\n return {\r\n brushType: brushOption.brushType,\r\n panelId: brushOption.panelId,\r\n range: range\r\n };\r\n });\r\n controller.trigger('brush', {\r\n areas: areas,\r\n isEnd: !!opt.isEnd,\r\n removeOnClick: !!opt.removeOnClick\r\n });\r\n }\r\n function shouldShowCover(controller) {\r\n var track = controller._track;\r\n if (!track.length) {\r\n return false;\r\n }\r\n var p2 = track[track.length - 1];\r\n var p1 = track[0];\r\n var dx = p2[0] - p1[0];\r\n var dy = p2[1] - p1[1];\r\n var dist = mathPow$2(dx * dx + dy * dy, 0.5);\r\n return dist > UNSELECT_THRESHOLD;\r\n }\r\n function getTrackEnds(track) {\r\n var tail = track.length - 1;\r\n tail < 0 && (tail = 0);\r\n return [track[0], track[tail]];\r\n }\r\n function createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\r\n var cover = new Group();\r\n cover.add(new Rect({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true,\r\n draggable: true,\r\n cursor: 'move',\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n each(edgeNameSequences, function (nameSequence) {\r\n cover.add(new Rect({\r\n name: nameSequence.join(''),\r\n style: { opacity: 0 },\r\n draggable: true,\r\n silent: true,\r\n invisible: true,\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n });\r\n return cover;\r\n }\r\n function updateBaseRect(controller, cover, localRange, brushOption) {\r\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\r\n var handleSize = mathMax$5(lineWidth, MIN_RESIZE_LINE_WIDTH);\r\n var x = localRange[0][0];\r\n var y = localRange[1][0];\r\n var xa = x - lineWidth / 2;\r\n var ya = y - lineWidth / 2;\r\n var x2 = localRange[0][1];\r\n var y2 = localRange[1][1];\r\n var x2a = x2 - handleSize + lineWidth / 2;\r\n var y2a = y2 - handleSize + lineWidth / 2;\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var widtha = width + lineWidth;\r\n var heighta = height + lineWidth;\r\n updateRectShape(controller, cover, 'main', x, y, width, height);\r\n if (brushOption.transformable) {\r\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\r\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\r\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\r\n }\r\n }\r\n function updateCommon(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n var transformable = brushOption.transformable;\r\n var mainEl = cover.childAt(0);\r\n mainEl.useStyle(makeStyle(brushOption));\r\n mainEl.attr({\r\n silent: !transformable,\r\n cursor: transformable ? 'move' : 'default'\r\n });\r\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\r\n var el = cover.childOfName(nameSequence.join(''));\r\n var globalDir = nameSequence.length === 1\r\n ? getGlobalDirection1(controller, nameSequence[0])\r\n : getGlobalDirection2(controller, nameSequence);\r\n el && el.attr({\r\n silent: !transformable,\r\n invisible: !transformable,\r\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\r\n });\r\n });\r\n }\r\n function updateRectShape(controller, cover, name, x, y, w, h) {\r\n var el = cover.childOfName(name);\r\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\r\n }\r\n function makeStyle(brushOption) {\r\n return defaults({ strokeNoScale: true }, brushOption.brushStyle);\r\n }\r\n function formatRectRange(x, y, x2, y2) {\r\n var min = [mathMin$5(x, x2), mathMin$5(y, y2)];\r\n var max = [mathMax$5(x, x2), mathMax$5(y, y2)];\r\n return [\r\n [min[0], max[0]],\r\n [min[1], max[1]]\r\n ];\r\n }\r\n function getTransform$1(controller) {\r\n return getTransform(controller.group);\r\n }\r\n function getGlobalDirection1(controller, localDirName) {\r\n var map = { w: 'left', e: 'right', n: 'top', s: 'bottom' };\r\n var inverseMap = { left: 'w', right: 'e', top: 'n', bottom: 's' };\r\n var dir = transformDirection(map[localDirName], getTransform$1(controller));\r\n return inverseMap[dir];\r\n }\r\n function getGlobalDirection2(controller, localDirNameSeq) {\r\n var globalDir = [\r\n getGlobalDirection1(controller, localDirNameSeq[0]),\r\n getGlobalDirection1(controller, localDirNameSeq[1])\r\n ];\r\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\r\n return globalDir.join('');\r\n }\r\n function driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\r\n var brushOption = cover.__brushOption;\r\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(dirNameSequence, function (dirName) {\r\n var ind = DIRECTION_MAP[dirName];\r\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\r\n });\r\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function driftPolygon(controller, cover, dx, dy) {\r\n var range = cover.__brushOption.range;\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(range, function (point) {\r\n point[0] += localDelta[0];\r\n point[1] += localDelta[1];\r\n });\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function toLocalDelta(controller, dx, dy) {\r\n var thisGroup = controller.group;\r\n var localD = thisGroup.transformCoordToLocal(dx, dy);\r\n var localZero = thisGroup.transformCoordToLocal(0, 0);\r\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\r\n }\r\n function clipByPanel(controller, cover, data) {\r\n var panel = getPanelByCover(controller, cover);\r\n return (panel && panel !== BRUSH_PANEL_GLOBAL)\r\n ? panel.clipPath(data, controller._transform)\r\n : clone(data);\r\n }\r\n function pointsToRect(points) {\r\n var xmin = mathMin$5(points[0][0], points[1][0]);\r\n var ymin = mathMin$5(points[0][1], points[1][1]);\r\n var xmax = mathMax$5(points[0][0], points[1][0]);\r\n var ymax = mathMax$5(points[0][1], points[1][1]);\r\n return {\r\n x: xmin,\r\n y: ymin,\r\n width: xmax - xmin,\r\n height: ymax - ymin\r\n };\r\n }\r\n function resetCursor(controller, e, localCursorPoint) {\r\n if (!controller._brushType\r\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\r\n return;\r\n }\r\n var zr = controller._zr;\r\n var covers = controller._covers;\r\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\r\n if (!controller._dragging) {\r\n for (var i = 0; i < covers.length; i++) {\r\n var brushOption = covers[i].__brushOption;\r\n if (currPanel\r\n && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId)\r\n && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\r\n return;\r\n }\r\n }\r\n }\r\n currPanel && zr.setCursorStyle('crosshair');\r\n }\r\n function preventDefault(e) {\r\n var rawE = e.event;\r\n rawE.preventDefault && rawE.preventDefault();\r\n }\r\n function mainShapeContain(cover, x, y) {\r\n return cover.childOfName('main').contain(x, y);\r\n }\r\n function updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\r\n var creatingCover = controller._creatingCover;\r\n var panel = controller._creatingPanel;\r\n var thisBrushOption = controller._brushOption;\r\n var eventParams;\r\n controller._track.push(localCursorPoint.slice());\r\n if (shouldShowCover(controller) || creatingCover) {\r\n if (panel && !creatingCover) {\r\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\r\n var brushOption = clone(thisBrushOption);\r\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\r\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\r\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\r\n controller._covers.push(creatingCover);\r\n }\r\n if (creatingCover) {\r\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\r\n var coverBrushOption = creatingCover.__brushOption;\r\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\r\n if (isEnd) {\r\n endCreating(controller, creatingCover);\r\n coverRenderer.updateCommon(controller, creatingCover);\r\n }\r\n updateCoverShape(controller, creatingCover);\r\n eventParams = { isEnd: isEnd };\r\n }\r\n }\r\n else if (isEnd\r\n && thisBrushOption.brushMode === 'single'\r\n && thisBrushOption.removeOnClick) {\r\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\r\n eventParams = { isEnd: isEnd, removeOnClick: true };\r\n }\r\n }\r\n return eventParams;\r\n }\r\n function determineBrushType(brushType, panel) {\r\n if (brushType === 'auto') {\r\n if (__DEV__) {\r\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\r\n }\r\n return panel.defaultBrushType;\r\n }\r\n return brushType;\r\n }\r\n var pointerHandlers = {\r\n mousedown: function (e) {\r\n if (this._dragging) {\r\n handleDragEnd(this, e);\r\n }\r\n else if (!e.target || !e.target.draggable) {\r\n preventDefault(e);\r\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\r\n this._creatingCover = null;\r\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\r\n if (panel) {\r\n this._dragging = true;\r\n this._track = [localCursorPoint.slice()];\r\n }\r\n }\r\n },\r\n mousemove: function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\r\n resetCursor(this, e, localCursorPoint);\r\n if (this._dragging) {\r\n preventDefault(e);\r\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\r\n eventParams && trigger$1(this, eventParams);\r\n }\r\n },\r\n mouseup: function (e) {\r\n handleDragEnd(this, e);\r\n }\r\n };\r\n function handleDragEnd(controller, e) {\r\n if (controller._dragging) {\r\n preventDefault(e);\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\r\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\r\n controller._dragging = false;\r\n controller._track = [];\r\n controller._creatingCover = null;\r\n eventParams && trigger$1(controller, eventParams);\r\n }\r\n }\r\n function isOutsideZrArea(controller, x, y) {\r\n var zr = controller._zr;\r\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\r\n }\r\n var coverRenderers = {\r\n lineX: getLineRenderer(0),\r\n lineY: getLineRenderer(1),\r\n rect: {\r\n createCover: function (controller, brushOption) {\r\n function returnInput(range) {\r\n return range;\r\n }\r\n return createBaseRectCover({\r\n toRectRange: returnInput,\r\n fromRectRange: returnInput\r\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n updateBaseRect(controller, cover, localRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n },\r\n polygon: {\r\n createCover: function (controller, brushOption) {\r\n var cover = new Group();\r\n cover.add(new Polyline({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true\r\n }));\r\n return cover;\r\n },\r\n getCreatingRange: function (localTrack) {\r\n return localTrack;\r\n },\r\n endCreating: function (controller, cover) {\r\n cover.remove(cover.childAt(0));\r\n cover.add(new Polygon({\r\n name: 'main',\r\n draggable: true,\r\n drift: curry(driftPolygon, controller, cover),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n cover.childAt(0).setShape({\r\n points: clipByPanel(controller, cover, localRange)\r\n });\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n }\r\n };\r\n function getLineRenderer(xyIndex) {\r\n return {\r\n createCover: function (controller, brushOption) {\r\n return createBaseRectCover({\r\n toRectRange: function (range) {\r\n var rectRange = [range, [0, 100]];\r\n xyIndex && rectRange.reverse();\r\n return rectRange;\r\n },\r\n fromRectRange: function (rectRange) {\r\n return rectRange[xyIndex];\r\n }\r\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n var min = mathMin$5(ends[0][xyIndex], ends[1][xyIndex]);\r\n var max = mathMax$5(ends[0][xyIndex], ends[1][xyIndex]);\r\n return [min, max];\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n var otherExtent;\r\n var panel = getPanelByCover(controller, cover);\r\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\r\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\r\n }\r\n else {\r\n var zr = controller._zr;\r\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\r\n }\r\n var rectRange = [localRange, otherExtent];\r\n xyIndex && rectRange.reverse();\r\n updateBaseRect(controller, cover, rectRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n };\r\n }\n\n var IRRELEVANT_EXCLUDES = { 'axisPointer': 1, 'tooltip': 1, 'brush': 1 };\r\n function onIrrelevantElement(e, api, targetCoordSysModel) {\r\n var model = api.getComponentByElement(e.topTarget);\r\n var coordSys = model && model.coordinateSystem;\r\n return model\r\n && model !== targetCoordSysModel\r\n && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType)\r\n && (coordSys && coordSys.model !== targetCoordSysModel);\r\n }\n\n function makeRectPanelClipPath(rect) {\r\n rect = normalizeRect(rect);\r\n return function (localPoints) {\r\n return clipPointsByRect(localPoints, rect);\r\n };\r\n }\r\n function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\r\n rect = normalizeRect(rect);\r\n return function (xyIndex) {\r\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\r\n var brushWidth = idx ? rect.width : rect.height;\r\n var base = idx ? rect.x : rect.y;\r\n return [base, base + (brushWidth || 0)];\r\n };\r\n }\r\n function makeRectIsTargetByCursor(rect, api, targetModel) {\r\n var boundingRect = normalizeRect(rect);\r\n return function (e, localCursorPoint) {\r\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1])\r\n && !onIrrelevantElement(e, api, targetModel);\r\n };\r\n }\r\n function normalizeRect(rect) {\r\n return BoundingRect.create(rect);\r\n }\n\n var COORD_CONVERTS = ['dataToPoint', 'pointToData'];\r\n var INCLUDE_FINDER_MAIN_TYPES = [\r\n 'grid', 'xAxis', 'yAxis', 'geo', 'graph',\r\n 'polar', 'radiusAxis', 'angleAxis', 'bmap'\r\n ];\r\n var BrushTargetManager = (function () {\r\n function BrushTargetManager(finder, ecModel, opt) {\r\n var _this = this;\r\n this._targetInfoList = [];\r\n var foundCpts = parseFinder$1(ecModel, finder);\r\n each(targetInfoBuilders, function (builder, type) {\r\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\r\n builder(foundCpts, _this._targetInfoList);\r\n }\r\n });\r\n }\r\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\r\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n (area.coordRanges || (area.coordRanges = [])).push(coordRange);\r\n if (!area.coordRange) {\r\n area.coordRange = coordRange;\r\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\r\n area.__rangeOffset = {\r\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\r\n xyMinMax: result.xyMinMax\r\n };\r\n }\r\n });\r\n return areas;\r\n };\r\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (targetInfo && targetInfo !== true) {\r\n each(targetInfo.coordSyses, function (coordSys) {\r\n var result = coordConvert[area.brushType](1, coordSys, area.range);\r\n cb(area, result.values, coordSys, ecModel);\r\n });\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (__DEV__) {\r\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\r\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\r\n }\r\n area.range = area.range || [];\r\n if (targetInfo && targetInfo !== true) {\r\n area.panelId = targetInfo.panelId;\r\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\r\n var rangeOffset = area.__rangeOffset;\r\n area.range = rangeOffset\r\n ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax))\r\n : result.values;\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\r\n return map(this._targetInfoList, function (targetInfo) {\r\n var rect = targetInfo.getPanelRect();\r\n return {\r\n panelId: targetInfo.panelId,\r\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect)\r\n };\r\n });\r\n };\r\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n return targetInfo === true || (targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0);\r\n };\r\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\r\n var targetInfoList = this._targetInfoList;\r\n var foundCpts = parseFinder$1(ecModel, area);\r\n for (var i = 0; i < targetInfoList.length; i++) {\r\n var targetInfo = targetInfoList[i];\r\n var areaPanelId = area.panelId;\r\n if (areaPanelId) {\r\n if (targetInfo.panelId === areaPanelId) {\r\n return targetInfo;\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < targetInfoMatchers.length; j++) {\r\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\r\n return targetInfo;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return BrushTargetManager;\r\n }());\r\n function formatMinMax(minMax) {\r\n minMax[0] > minMax[1] && minMax.reverse();\r\n return minMax;\r\n }\r\n function parseFinder$1(ecModel, finder) {\r\n return parseFinder(ecModel, finder, { includeMainTypes: INCLUDE_FINDER_MAIN_TYPES });\r\n }\r\n var targetInfoBuilders = {\r\n grid: function (foundCpts, targetInfoList) {\r\n var xAxisModels = foundCpts.xAxisModels;\r\n var yAxisModels = foundCpts.yAxisModels;\r\n var gridModels = foundCpts.gridModels;\r\n var gridModelMap = createHashMap();\r\n var xAxesHas = {};\r\n var yAxesHas = {};\r\n if (!xAxisModels && !yAxisModels && !gridModels) {\r\n return;\r\n }\r\n each(xAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n });\r\n each(yAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n each(gridModels, function (gridModel) {\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n gridModelMap.each(function (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n var cartesians = [];\r\n each(grid.getCartesians(), function (cartesian, index) {\r\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0\r\n || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\r\n cartesians.push(cartesian);\r\n }\r\n });\r\n targetInfoList.push({\r\n panelId: 'grid--' + gridModel.id,\r\n gridModel: gridModel,\r\n coordSysModel: gridModel,\r\n coordSys: cartesians[0],\r\n coordSyses: cartesians,\r\n getPanelRect: panelRectBuilders.grid,\r\n xAxisDeclared: xAxesHas[gridModel.id],\r\n yAxisDeclared: yAxesHas[gridModel.id]\r\n });\r\n });\r\n },\r\n geo: function (foundCpts, targetInfoList) {\r\n each(foundCpts.geoModels, function (geoModel) {\r\n var coordSys = geoModel.coordinateSystem;\r\n targetInfoList.push({\r\n panelId: 'geo--' + geoModel.id,\r\n geoModel: geoModel,\r\n coordSysModel: geoModel,\r\n coordSys: coordSys,\r\n coordSyses: [coordSys],\r\n getPanelRect: panelRectBuilders.geo\r\n });\r\n });\r\n }\r\n };\r\n var targetInfoMatchers = [\r\n function (foundCpts, targetInfo) {\r\n var xAxisModel = foundCpts.xAxisModel;\r\n var yAxisModel = foundCpts.yAxisModel;\r\n var gridModel = foundCpts.gridModel;\r\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\r\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\r\n return gridModel && gridModel === targetInfo.gridModel;\r\n },\r\n function (foundCpts, targetInfo) {\r\n var geoModel = foundCpts.geoModel;\r\n return geoModel && geoModel === targetInfo.geoModel;\r\n }\r\n ];\r\n var panelRectBuilders = {\r\n grid: function () {\r\n return this.coordSys.master.getRect().clone();\r\n },\r\n geo: function () {\r\n var coordSys = this.coordSys;\r\n var rect = coordSys.getBoundingRect().clone();\r\n rect.applyTransform(getTransform(coordSys));\r\n return rect;\r\n }\r\n };\r\n var coordConvert = {\r\n lineX: curry(axisConvert, 0),\r\n lineY: curry(axisConvert, 1),\r\n rect: function (to, coordSys, rangeOrCoordRange) {\r\n var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\r\n var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\r\n var values = [\r\n formatMinMax([xminymin[0], xmaxymax[0]]),\r\n formatMinMax([xminymin[1], xmaxymax[1]])\r\n ];\r\n return { values: values, xyMinMax: values };\r\n },\r\n polygon: function (to, coordSys, rangeOrCoordRange) {\r\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var values = map(rangeOrCoordRange, function (item) {\r\n var p = coordSys[COORD_CONVERTS[to]](item);\r\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\r\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\r\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\r\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\r\n return p;\r\n });\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n };\r\n function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\r\n if (__DEV__) {\r\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\r\n }\r\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\r\n var values = formatMinMax(map([0, 1], function (i) {\r\n return to\r\n ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]))\r\n : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\r\n }));\r\n var xyMinMax = [];\r\n xyMinMax[axisNameIndex] = values;\r\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n var diffProcessor = {\r\n lineX: curry(axisDiffProcessor, 0),\r\n lineY: curry(axisDiffProcessor, 1),\r\n rect: function (values, refer, scales) {\r\n return [\r\n [values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]],\r\n [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]\r\n ];\r\n },\r\n polygon: function (values, refer, scales) {\r\n return map(values, function (item, idx) {\r\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\r\n });\r\n }\r\n };\r\n function axisDiffProcessor(axisNameIndex, values, refer, scales) {\r\n return [\r\n values[0] - scales[axisNameIndex] * refer[0],\r\n values[1] - scales[axisNameIndex] * refer[1]\r\n ];\r\n }\r\n function getScales(xyMinMaxCurr, xyMinMaxOrigin) {\r\n var sizeCurr = getSize(xyMinMaxCurr);\r\n var sizeOrigin = getSize(xyMinMaxOrigin);\r\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\r\n isNaN(scales[0]) && (scales[0] = 1);\r\n isNaN(scales[1]) && (scales[1] = 1);\r\n return scales;\r\n }\r\n function getSize(xyMinMax) {\r\n return xyMinMax\r\n ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]]\r\n : [NaN, NaN];\r\n }\n\n var each$9 = each;\r\n var inner$f = makeInner();\r\n function push(ecModel, newSnapshot) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n each$9(newSnapshot, function (batchItem, dataZoomId) {\r\n var i = storedSnapshots.length - 1;\r\n for (; i >= 0; i--) {\r\n var snapshot = storedSnapshots[i];\r\n if (snapshot[dataZoomId]) {\r\n break;\r\n }\r\n }\r\n if (i < 0) {\r\n var dataZoomModel = ecModel.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId })[0];\r\n if (dataZoomModel) {\r\n var percentRange = dataZoomModel.getPercentRange();\r\n storedSnapshots[0][dataZoomId] = {\r\n dataZoomId: dataZoomId,\r\n start: percentRange[0],\r\n end: percentRange[1]\r\n };\r\n }\r\n }\r\n });\r\n storedSnapshots.push(newSnapshot);\r\n }\r\n function pop(ecModel) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n var head = storedSnapshots[storedSnapshots.length - 1];\r\n storedSnapshots.length > 1 && storedSnapshots.pop();\r\n var snapshot = {};\r\n each$9(head, function (batchItem, dataZoomId) {\r\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\r\n batchItem = storedSnapshots[i][dataZoomId];\r\n if (batchItem) {\r\n snapshot[dataZoomId] = batchItem;\r\n break;\r\n }\r\n }\r\n });\r\n return snapshot;\r\n }\r\n function clear$1(ecModel) {\r\n inner$f(ecModel).snapshots = null;\r\n }\r\n function count(ecModel) {\r\n return getStoreSnapshots(ecModel).length;\r\n }\r\n function getStoreSnapshots(ecModel) {\r\n var store = inner$f(ecModel);\r\n if (!store.snapshots) {\r\n store.snapshots = [{}];\r\n }\r\n return store.snapshots;\r\n }\n\n var SelectDataZoomModel = (function (_super) {\r\n __extends(SelectDataZoomModel, _super);\r\n function SelectDataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomModel.type;\r\n return _this;\r\n }\r\n SelectDataZoomModel.type = 'dataZoom.select';\r\n return SelectDataZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SelectDataZoomModel);\n\n var SelectDataZoomView = (function (_super) {\r\n __extends(SelectDataZoomView, _super);\r\n function SelectDataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomView.type;\r\n return _this;\r\n }\r\n SelectDataZoomView.type = 'dataZoom.select';\r\n return SelectDataZoomView;\r\n }(DataZoomView));\r\n ComponentView.registerClass(SelectDataZoomView);\n\n var each$a = each;\r\n var DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\r\n var DataZoomFeature = (function (_super) {\r\n __extends(DataZoomFeature, _super);\r\n function DataZoomFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\r\n if (!this.brushController) {\r\n this.brushController = new BrushController(api.getZr());\r\n this.brushController.on('brush', bind(this._onBrush, this))\r\n .mount();\r\n }\r\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\r\n updateBackBtnStatus(featureModel, ecModel);\r\n };\r\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\r\n handlers[type].call(this);\r\n };\r\n DataZoomFeature.prototype.remove = function (ecModel, api) {\r\n this.brushController.unmount();\r\n };\r\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\r\n this.brushController.dispose();\r\n };\r\n DataZoomFeature.prototype._onBrush = function (eventParam) {\r\n var areas = eventParam.areas;\r\n if (!eventParam.isEnd || !areas.length) {\r\n return;\r\n }\r\n var snapshot = {};\r\n var ecModel = this.ecModel;\r\n this.brushController.updateCovers([]);\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, { include: ['grid'] });\r\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n if (coordSys.type !== 'cartesian2d') {\r\n return;\r\n }\r\n var brushType = area.brushType;\r\n if (brushType === 'rect') {\r\n setBatch('x', coordSys, coordRange[0]);\r\n setBatch('y', coordSys, coordRange[1]);\r\n }\r\n else {\r\n setBatch({ lineX: 'x', lineY: 'y' }[brushType], coordSys, coordRange);\r\n }\r\n });\r\n push(ecModel, snapshot);\r\n this._dispatchZoomAction(snapshot);\r\n function setBatch(dimName, coordSys, minMax) {\r\n var axis = coordSys.getAxis(dimName);\r\n var axisModel = axis.model;\r\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\r\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\r\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\r\n }\r\n dataZoomModel && (snapshot[dataZoomModel.id] = {\r\n dataZoomId: dataZoomModel.id,\r\n startValue: minMax[0],\r\n endValue: minMax[1]\r\n });\r\n }\r\n function findDataZoom(dimName, axisModel, ecModel) {\r\n var found;\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (dzModel) {\r\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\r\n has && (found = dzModel);\r\n });\r\n return found;\r\n }\r\n };\r\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\r\n var batch = [];\r\n each$a(snapshot, function (batchItem, dataZoomId) {\r\n batch.push(clone(batchItem));\r\n });\r\n batch.length && this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n batch: batch\r\n });\r\n };\r\n DataZoomFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n filterMode: 'filter',\r\n icon: {\r\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\r\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'dataZoom', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return DataZoomFeature;\r\n }(ToolboxFeature));\r\n var handlers = {\r\n zoom: function () {\r\n var nextActive = !this.isZoomActive;\r\n this.api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'dataZoomSelect',\r\n dataZoomSelectActive: nextActive\r\n });\r\n },\r\n back: function () {\r\n this._dispatchZoomAction(pop(this.ecModel));\r\n }\r\n };\r\n function makeAxisFinder(dzFeatureModel) {\r\n var setting = {\r\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\r\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\r\n xAxisId: dzFeatureModel.get('xAxisId', true),\r\n yAxisId: dzFeatureModel.get('yAxisId', true)\r\n };\r\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\r\n setting.xAxisIndex = 'all';\r\n }\r\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\r\n setting.yAxisIndex = 'all';\r\n }\r\n return setting;\r\n }\r\n function updateBackBtnStatus(featureModel, ecModel) {\r\n featureModel.setIconStatus('back', count(ecModel) > 1 ? 'emphasis' : 'normal');\r\n }\r\n function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\r\n var zoomActive = view.isZoomActive;\r\n if (payload && payload.type === 'takeGlobalCursor') {\r\n zoomActive = payload.key === 'dataZoomSelect'\r\n ? payload.dataZoomSelectActive : false;\r\n }\r\n view.isZoomActive = zoomActive;\r\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, { include: ['grid'] });\r\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\r\n return (targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared)\r\n ? 'lineX'\r\n : (!targetInfo.xAxisDeclared && targetInfo.yAxisDeclared)\r\n ? 'lineY'\r\n : 'rect';\r\n });\r\n view.brushController\r\n .setPanels(panels)\r\n .enableBrush((zoomActive && panels.length)\r\n ? {\r\n brushType: 'auto',\r\n brushStyle: {\r\n lineWidth: 0,\r\n fill: 'rgba(210,219,238,0.2)'\r\n }\r\n }\r\n : false);\r\n }\r\n registerFeature('dataZoom', DataZoomFeature);\r\n registerInternalOptionCreator('dataZoom', function (ecModel) {\r\n var toolboxModel = ecModel.getComponent('toolbox', 0);\r\n if (!toolboxModel) {\r\n return;\r\n }\r\n var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\r\n var dzOptions = [];\r\n var finder = makeAxisFinder(dzFeatureModel);\r\n var finderResult = parseFinder(ecModel, finder);\r\n each$a(finderResult.xAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex'); });\r\n each$a(finderResult.yAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex'); });\r\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\r\n var axisIndex = axisModel.componentIndex;\r\n var newOpt = {\r\n type: 'select',\r\n $fromToolbox: true,\r\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\r\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\r\n };\r\n newOpt[axisIndexPropName] = axisIndex;\r\n dzOptions.push(newOpt);\r\n }\r\n return dzOptions;\r\n });\n\n var RestoreOption = (function (_super) {\r\n __extends(RestoreOption, _super);\r\n function RestoreOption() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RestoreOption.prototype.onclick = function (ecModel, api) {\r\n clear$1(ecModel);\r\n api.dispatchAction({\r\n type: 'restore',\r\n from: this.uid\r\n });\r\n };\r\n RestoreOption.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\r\n title: ecModel.getLocale(['toolbox', 'restore', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return RestoreOption;\r\n }(ToolboxFeature));\r\n registerFeature('restore', RestoreOption);\r\n registerAction({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n ecModel.resetOption('recreate');\r\n });\n\n function createElement(name) {\r\n return document.createElementNS('http://www.w3.org/2000/svg', name);\r\n }\n\n var CMD$4 = PathProxy.CMD;\r\n var NONE = 'none';\r\n var mathRound = Math.round;\r\n var mathSin$3 = Math.sin;\r\n var mathCos$3 = Math.cos;\r\n var PI$6 = Math.PI;\r\n var PI2$7 = Math.PI * 2;\r\n var degree = 180 / PI$6;\r\n var EPSILON$4 = 1e-4;\r\n function round4(val) {\r\n return mathRound(val * 1e4) / 1e4;\r\n }\r\n function isAroundZero$1(val) {\r\n return val < EPSILON$4 && val > -EPSILON$4;\r\n }\r\n function pathHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== NONE;\r\n }\r\n function pathHasStroke(style) {\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== NONE;\r\n }\r\n function reduceNumberString(n, precision) {\r\n return n > 1 ? +n.toFixed(precision) : +n.toPrecision(precision);\r\n }\r\n function setTransform(svgEl, m) {\r\n if (m) {\r\n attr(svgEl, 'transform', 'matrix('\r\n + reduceNumberString(m[0], 3) + ','\r\n + reduceNumberString(m[1], 3) + ','\r\n + reduceNumberString(m[2], 3) + ','\r\n + reduceNumberString(m[3], 3) + ','\r\n + reduceNumberString(m[4], 4) + ','\r\n + reduceNumberString(m[5], 4)\r\n + ')');\r\n }\r\n }\r\n function attr(el, key, val) {\r\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\r\n el.setAttribute(key, val);\r\n }\r\n }\r\n function attrXLink(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\r\n }\r\n function bindStyle(svgEl, style, el) {\r\n var opacity = style.opacity == null ? 1 : style.opacity;\r\n if (pathHasFill(style)) {\r\n var fill = style.fill;\r\n fill = fill === 'transparent' ? NONE : fill;\r\n attr(svgEl, 'fill', fill);\r\n attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\r\n }\r\n else {\r\n attr(svgEl, 'fill', NONE);\r\n }\r\n if (pathHasStroke(style)) {\r\n var stroke = style.stroke;\r\n stroke = stroke === 'transparent' ? NONE : stroke;\r\n attr(svgEl, 'stroke', stroke);\r\n var strokeWidth = style.lineWidth;\r\n var strokeScale_1 = style.strokeNoScale\r\n ? el.getLineScale()\r\n : 1;\r\n attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\r\n attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\r\n attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\r\n var lineDash = style.lineDash;\r\n if (lineDash) {\r\n var lineDashOffset = style.lineDashOffset;\r\n if (strokeScale_1 && strokeScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / strokeScale_1;\r\n });\r\n if (lineDashOffset) {\r\n lineDashOffset /= strokeScale_1;\r\n lineDashOffset = mathRound(lineDashOffset);\r\n }\r\n }\r\n attr(svgEl, 'stroke-dasharray', lineDash.join(','));\r\n attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke-dasharray', '');\r\n }\r\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\r\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\r\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke', NONE);\r\n }\r\n }\r\n function pathDataToString(path) {\r\n if (!path) {\r\n return '';\r\n }\r\n var str = [];\r\n var data = path.data;\r\n var dataLength = path.len();\r\n var x;\r\n var y;\r\n for (var i = 0; i < dataLength;) {\r\n var cmd = data[i++];\r\n var cmdStr = '';\r\n var nData = 0;\r\n switch (cmd) {\r\n case CMD$4.M:\r\n cmdStr = 'M';\r\n nData = 2;\r\n break;\r\n case CMD$4.L:\r\n cmdStr = 'L';\r\n nData = 2;\r\n break;\r\n case CMD$4.Q:\r\n cmdStr = 'Q';\r\n nData = 4;\r\n break;\r\n case CMD$4.C:\r\n cmdStr = 'C';\r\n nData = 6;\r\n break;\r\n case CMD$4.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n var psi = data[i++];\r\n var clockwise = data[i++];\r\n var dThetaPositive = Math.abs(dTheta);\r\n var isCircle = isAroundZero$1(dThetaPositive - PI2$7)\r\n || (clockwise ? dTheta >= PI2$7 : -dTheta >= PI2$7);\r\n var unifiedTheta = dTheta > 0 ? dTheta % PI2$7 : (dTheta % PI2$7 + PI2$7);\r\n var large = false;\r\n if (isCircle) {\r\n large = true;\r\n }\r\n else if (isAroundZero$1(dThetaPositive)) {\r\n large = false;\r\n }\r\n else {\r\n large = (unifiedTheta >= PI$6) === !!clockwise;\r\n }\r\n var x0 = round4(cx + rx * mathCos$3(theta));\r\n var y0 = round4(cy + ry * mathSin$3(theta));\r\n if (isCircle) {\r\n if (clockwise) {\r\n dTheta = PI2$7 - 1e-4;\r\n }\r\n else {\r\n dTheta = -PI2$7 + 1e-4;\r\n }\r\n large = true;\r\n if (i === 9) {\r\n str.push('M', x0, y0);\r\n }\r\n }\r\n x = round4(cx + rx * mathCos$3(theta + dTheta));\r\n y = round4(cy + ry * mathSin$3(theta + dTheta));\r\n if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\r\n return '';\r\n }\r\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\r\n break;\r\n case CMD$4.Z:\r\n cmdStr = 'Z';\r\n break;\r\n case CMD$4.R:\r\n x = round4(data[i++]);\r\n y = round4(data[i++]);\r\n var w = round4(data[i++]);\r\n var h = round4(data[i++]);\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n return '';\r\n }\r\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\r\n break;\r\n }\r\n cmdStr && str.push(cmdStr);\r\n for (var j = 0; j < nData; j++) {\r\n var val = round4(data[i++]);\r\n if (isNaN(val)) {\r\n return '';\r\n }\r\n str.push(val);\r\n }\r\n }\r\n return str.join(' ');\r\n }\r\n function wrapSVGBuildPath(el) {\r\n if (!el.__svgBuildPath) {\r\n var oldBuildPath_1 = el.buildPath;\r\n el.__svgBuildPath = el.buildPath = function (path, shape, inBundle) {\r\n oldBuildPath_1.call(this, el.path, shape, inBundle);\r\n el.__svgPathStr = pathDataToString(el.path);\r\n };\r\n if (!el.shapeChanged()) {\r\n el.__svgPathStr = pathDataToString(el.path);\r\n }\r\n }\r\n }\r\n var svgPath = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('path');\r\n el.__svgEl = svgEl;\r\n }\r\n if (!el.path) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path;\r\n wrapSVGBuildPath(el);\r\n if (el.shapeChanged()) {\r\n path.beginPath();\r\n el.buildPath(path, el.shape);\r\n el.pathUpdated();\r\n }\r\n attr(svgEl, 'd', el.__svgPathStr);\r\n bindStyle(svgEl, style, el);\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var svgImage = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var image = style.image;\r\n if (image instanceof HTMLImageElement) {\r\n var src = image.src;\r\n image = src;\r\n }\r\n if (!image) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var dw = style.width;\r\n var dh = style.height;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('image');\r\n el.__svgEl = svgEl;\r\n }\r\n if (image !== el.__imageSrc) {\r\n attrXLink(svgEl, 'href', image);\r\n el.__imageSrc = image;\r\n }\r\n attr(svgEl, 'width', dw + '');\r\n attr(svgEl, 'height', dh + '');\r\n attr(svgEl, 'x', x + '');\r\n attr(svgEl, 'y', y + '');\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var TEXT_ALIGN_TO_ANCHOR = {\r\n left: 'start',\r\n right: 'end',\r\n center: 'middle',\r\n middle: 'middle'\r\n };\r\n function adjustTextY$1(y, lineHeight, textBaseline) {\r\n if (textBaseline === 'top') {\r\n y += lineHeight / 2;\r\n }\r\n else if (textBaseline === 'bottom') {\r\n y -= lineHeight / 2;\r\n }\r\n return y;\r\n }\r\n var svgText = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (!text) {\r\n return;\r\n }\r\n var textSvgEl = el.__svgEl;\r\n if (!textSvgEl) {\r\n textSvgEl = createElement('text');\r\n el.__svgEl = textSvgEl;\r\n }\r\n var font = style.font || DEFAULT_FONT;\r\n var textSvgElStyle = textSvgEl.style;\r\n textSvgElStyle.font = font;\r\n textSvgEl.textContent = text;\r\n bindStyle(textSvgEl, style, el);\r\n setTransform(textSvgEl, el.transform);\r\n var x = style.x || 0;\r\n var y = adjustTextY$1(style.y || 0, getLineHeight(font), style.textBaseline);\r\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\r\n || style.textAlign;\r\n attr(textSvgEl, 'dominant-baseline', 'middle');\r\n attr(textSvgEl, 'text-anchor', textAlign);\r\n attr(textSvgEl, 'x', x + '');\r\n attr(textSvgEl, 'y', y + '');\r\n }\r\n };\n\n function diff(oldArr, newArr, equals) {\r\n if (!equals) {\r\n equals = function (a, b) {\r\n return a === b;\r\n };\r\n }\r\n oldArr = oldArr.slice();\r\n newArr = newArr.slice();\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n var indices = [];\r\n for (var i = 0; i < newArr.length; i++) {\r\n indices.push(i);\r\n }\r\n return [{\r\n indices: indices,\r\n count: newArr.length,\r\n added: false,\r\n removed: false\r\n }];\r\n }\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath;\r\n var addPath = bestPath[diagonalPath - 1];\r\n var removePath = bestPath[diagonalPath + 1];\r\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n var canAdd = addPath && addPath.newPos + 1 < newLen;\r\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\r\n basePath = clonePath(removePath);\r\n pushComponent(basePath.components, false, true);\r\n }\r\n else {\r\n basePath = addPath;\r\n basePath.newPos++;\r\n pushComponent(basePath.components, true, false);\r\n }\r\n oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\r\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n return buildValues(basePath.components);\r\n }\r\n else {\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n editLength++;\r\n }\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n function extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var newPos = basePath.newPos;\r\n var oldPos = newPos - diagonalPath;\r\n var commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n if (commonCount) {\r\n basePath.components.push({\r\n count: commonCount,\r\n added: false,\r\n removed: false,\r\n indices: []\r\n });\r\n }\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n }\r\n function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n components[components.length - 1] = {\r\n count: last.count + 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n };\r\n }\r\n else {\r\n components.push({\r\n count: 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n });\r\n }\r\n }\r\n function buildValues(components) {\r\n var componentPos = 0;\r\n var componentLen = components.length;\r\n var newPos = 0;\r\n var oldPos = 0;\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n var indices = [];\r\n for (var i = newPos; i < newPos + component.count; i++) {\r\n indices.push(i);\r\n }\r\n component.indices = indices;\r\n newPos += component.count;\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n }\r\n else {\r\n for (var i = oldPos; i < oldPos + component.count; i++) {\r\n component.indices.push(i);\r\n }\r\n oldPos += component.count;\r\n }\r\n }\r\n return components;\r\n }\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n function arrayDiff (oldArr, newArr, equal) {\r\n return diff(oldArr, newArr, equal);\r\n }\n\n var MARK_UNUSED = '0';\r\n var MARK_USED = '1';\r\n var Definable = (function () {\r\n function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\r\n this.nextId = 0;\r\n this._domName = '_dom';\r\n this.createElement = createElement;\r\n this._zrId = zrId;\r\n this._svgRoot = svgRoot;\r\n this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\r\n this._markLabel = markLabel;\r\n if (domName) {\r\n this._domName = domName;\r\n }\r\n }\r\n Definable.prototype.getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgRoot;\r\n var defs = this._svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n Definable.prototype.doUpdate = function (target, onUpdate) {\r\n if (!target) {\r\n return;\r\n }\r\n var defs = this.getDefs(false);\r\n if (target[this._domName] && defs.contains(target[this._domName])) {\r\n if (typeof onUpdate === 'function') {\r\n onUpdate(target);\r\n }\r\n }\r\n else {\r\n var dom = this.add(target);\r\n if (dom) {\r\n target[this._domName] = dom;\r\n }\r\n }\r\n };\r\n Definable.prototype.add = function (target) {\r\n return null;\r\n };\r\n Definable.prototype.addDom = function (dom) {\r\n var defs = this.getDefs(true);\r\n defs.appendChild(dom);\r\n };\r\n Definable.prototype.removeDom = function (target) {\r\n var defs = this.getDefs(false);\r\n if (defs && target[this._domName]) {\r\n defs.removeChild(target[this._domName]);\r\n target[this._domName] = null;\r\n }\r\n };\r\n Definable.prototype.getDoms = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return [];\r\n }\r\n var doms = [];\r\n each(this._tagNames, function (tagName) {\r\n var tags = defs.getElementsByTagName(tagName);\r\n doms = doms.concat([].slice.call(tags));\r\n });\r\n return doms;\r\n };\r\n Definable.prototype.markAllUnused = function () {\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n dom[that._markLabel] = MARK_UNUSED;\r\n });\r\n };\r\n Definable.prototype.markDomUsed = function (dom) {\r\n if (dom) {\r\n dom[this._markLabel] = MARK_USED;\r\n }\r\n };\r\n Definable.prototype.removeUnused = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n if (dom[that._markLabel] !== MARK_USED) {\r\n defs.removeChild(dom);\r\n }\r\n });\r\n };\r\n Definable.prototype.getSvgProxy = function (displayable) {\r\n if (displayable instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (displayable instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (displayable instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n };\r\n Definable.prototype.getSvgElement = function (displayable) {\r\n return displayable.__svgEl;\r\n };\r\n return Definable;\r\n }());\n\n function isLinearGradient(value) {\r\n return value.type === 'linear';\r\n }\r\n function isRadialGradient(value) {\r\n return value.type === 'radial';\r\n }\r\n var GradientManager = (function (_super) {\r\n __extends(GradientManager, _super);\r\n function GradientManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\r\n }\r\n GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var value = displayable.style[fillOrStroke];\r\n if (value\r\n && (value.type === 'linear'\r\n || value.type === 'radial')) {\r\n var gradient = value;\r\n var defs = that_1.getDefs(true);\r\n var dom = void 0;\r\n if (gradient.__dom) {\r\n dom = gradient.__dom;\r\n if (!defs.contains(gradient.__dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(gradient);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n GradientManager.prototype.add = function (gradient) {\r\n var dom;\r\n if (isLinearGradient(gradient)) {\r\n dom = this.createElement('linearGradient');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom = this.createElement('radialGradient');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return null;\r\n }\r\n gradient.id = gradient.id || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-gradient-' + gradient.id);\r\n this.updateDom(gradient, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n GradientManager.prototype.update = function (gradient) {\r\n var that = this;\r\n this.doUpdate(gradient, function () {\r\n var type = gradient.type;\r\n var tagName = gradient.__dom.tagName;\r\n if (type === 'linear' && tagName === 'linearGradient'\r\n || type === 'radial' && tagName === 'radialGradient') {\r\n that.updateDom(gradient, gradient.__dom);\r\n }\r\n else {\r\n that.removeDom(gradient);\r\n that.add(gradient);\r\n }\r\n });\r\n };\r\n GradientManager.prototype.updateDom = function (gradient, dom) {\r\n if (isLinearGradient(gradient)) {\r\n dom.setAttribute('x1', gradient.x + '');\r\n dom.setAttribute('y1', gradient.y + '');\r\n dom.setAttribute('x2', gradient.x2 + '');\r\n dom.setAttribute('y2', gradient.y2 + '');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom.setAttribute('cx', gradient.x + '');\r\n dom.setAttribute('cy', gradient.y + '');\r\n dom.setAttribute('r', gradient.r + '');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return;\r\n }\r\n if (gradient.global) {\r\n dom.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n }\r\n else {\r\n dom.setAttribute('gradientUnits', 'objectBoundingBox');\r\n }\r\n dom.innerHTML = '';\r\n var colors = gradient.colorStops;\r\n for (var i = 0, len = colors.length; i < len; ++i) {\r\n var stop_1 = this.createElement('stop');\r\n stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\r\n var color$1 = colors[i].color;\r\n if (color$1.indexOf('rgba') > -1) {\r\n var opacity = parse(color$1)[3];\r\n var hex = toHex(color$1);\r\n stop_1.setAttribute('stop-color', '#' + hex);\r\n stop_1.setAttribute('stop-opacity', opacity + '');\r\n }\r\n else {\r\n stop_1.setAttribute('stop-color', colors[i].color);\r\n }\r\n dom.appendChild(stop_1);\r\n }\r\n gradient.__dom = dom;\r\n };\r\n GradientManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n var gradient = displayable.style.fill;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n gradient = displayable.style.stroke;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n }\r\n };\r\n return GradientManager;\r\n }(Definable));\n\n var ClippathManager = (function (_super) {\r\n __extends(ClippathManager, _super);\r\n function ClippathManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\r\n }\r\n ClippathManager.prototype.update = function (displayable) {\r\n var svgEl = this.getSvgElement(displayable);\r\n if (svgEl) {\r\n this.updateDom(svgEl, displayable.__clipPaths, false);\r\n }\r\n this.markUsed(displayable);\r\n };\r\n ClippathManager.prototype.updateDom = function (parentEl, clipPaths, isText) {\r\n if (clipPaths && clipPaths.length > 0) {\r\n var defs = this.getDefs(true);\r\n var clipPath = clipPaths[0];\r\n var clipPathEl = void 0;\r\n var id = void 0;\r\n var domKey = isText ? '_textDom' : '_dom';\r\n if (clipPath[domKey]) {\r\n id = clipPath[domKey].getAttribute('id');\r\n clipPathEl = clipPath[domKey];\r\n if (!defs.contains(clipPathEl)) {\r\n defs.appendChild(clipPathEl);\r\n }\r\n }\r\n else {\r\n id = 'zr' + this._zrId + '-clip-' + this.nextId;\r\n ++this.nextId;\r\n clipPathEl = this.createElement('clipPath');\r\n clipPathEl.setAttribute('id', id);\r\n defs.appendChild(clipPathEl);\r\n clipPath[domKey] = clipPathEl;\r\n }\r\n var svgProxy = this.getSvgProxy(clipPath);\r\n if (clipPath.transform\r\n && clipPath.parent.invTransform\r\n && !isText) {\r\n var transform = Array.prototype.slice.call(clipPath.transform);\r\n mul$1(clipPath.transform, clipPath.parent.invTransform, clipPath.transform);\r\n svgProxy.brush(clipPath);\r\n clipPath.transform = transform;\r\n }\r\n else {\r\n svgProxy.brush(clipPath);\r\n }\r\n var pathEl = this.getSvgElement(clipPath);\r\n clipPathEl.innerHTML = '';\r\n clipPathEl.appendChild(pathEl.cloneNode());\r\n parentEl.setAttribute('clip-path', 'url(#' + id + ')');\r\n if (clipPaths.length > 1) {\r\n this.updateDom(clipPathEl, clipPaths.slice(1), isText);\r\n }\r\n }\r\n else {\r\n if (parentEl) {\r\n parentEl.setAttribute('clip-path', 'none');\r\n }\r\n }\r\n };\r\n ClippathManager.prototype.markUsed = function (displayable) {\r\n var _this = this;\r\n if (displayable.__clipPaths) {\r\n each(displayable.__clipPaths, function (clipPath) {\r\n if (clipPath._dom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._dom);\r\n }\r\n if (clipPath._textDom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._textDom);\r\n }\r\n });\r\n }\r\n };\r\n return ClippathManager;\r\n }(Definable));\n\n var ShadowManager = (function (_super) {\r\n __extends(ShadowManager, _super);\r\n function ShadowManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\r\n }\r\n ShadowManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && hasShadow(displayable.style)) {\r\n var dom = void 0;\r\n if (displayable._shadowDom) {\r\n dom = displayable._shadowDom;\r\n var defs = this.getDefs(true);\r\n if (!defs.contains(displayable._shadowDom)) {\r\n this.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = this.add(displayable);\r\n }\r\n this.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.style.filter = 'url(#' + id + ')';\r\n }\r\n };\r\n ShadowManager.prototype.add = function (displayable) {\r\n var dom = this.createElement('filter');\r\n displayable._shadowDomId = displayable._shadowDomId || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-shadow-' + displayable._shadowDomId);\r\n this.updateDom(displayable, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n ShadowManager.prototype.update = function (svgElement, displayable) {\r\n var style = displayable.style;\r\n if (hasShadow(style)) {\r\n var that_1 = this;\r\n _super.prototype.doUpdate.call(this, displayable, function () {\r\n that_1.updateDom(displayable, displayable._shadowDom);\r\n });\r\n }\r\n else {\r\n this.remove(svgElement, displayable);\r\n }\r\n };\r\n ShadowManager.prototype.remove = function (svgElement, displayable) {\r\n if (displayable._shadowDomId != null) {\r\n this.removeDom(svgElement);\r\n svgElement.style.filter = '';\r\n }\r\n };\r\n ShadowManager.prototype.updateDom = function (displayable, dom) {\r\n var domChildArr = dom.getElementsByTagName('feDropShadow');\r\n var domChild = domChildArr.length\r\n ? domChildArr[0]\r\n : this.createElement('feDropShadow');\r\n var style = displayable.style;\r\n var scaleX = displayable.scaleX || 1;\r\n var scaleY = displayable.scaleY || 1;\r\n var offsetX;\r\n var offsetY;\r\n var blur;\r\n var color;\r\n if (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY) {\r\n offsetX = style.shadowOffsetX || 0;\r\n offsetY = style.shadowOffsetY || 0;\r\n blur = style.shadowBlur;\r\n color = style.shadowColor;\r\n }\r\n else if (style.textShadowBlur) {\r\n offsetX = style.textShadowOffsetX || 0;\r\n offsetY = style.textShadowOffsetY || 0;\r\n blur = style.textShadowBlur;\r\n color = style.textShadowColor;\r\n }\r\n else {\r\n this.removeDom(dom);\r\n return;\r\n }\r\n domChild.setAttribute('dx', offsetX / scaleX + '');\r\n domChild.setAttribute('dy', offsetY / scaleY + '');\r\n domChild.setAttribute('flood-color', color);\r\n var stdDx = blur / 2 / scaleX;\r\n var stdDy = blur / 2 / scaleY;\r\n var stdDeviation = stdDx + ' ' + stdDy;\r\n domChild.setAttribute('stdDeviation', stdDeviation);\r\n dom.setAttribute('x', '-100%');\r\n dom.setAttribute('y', '-100%');\r\n dom.setAttribute('width', Math.ceil(blur / 2 * 200) + '%');\r\n dom.setAttribute('height', Math.ceil(blur / 2 * 200) + '%');\r\n dom.appendChild(domChild);\r\n displayable._shadowDom = dom;\r\n };\r\n ShadowManager.prototype.markUsed = function (displayable) {\r\n if (displayable._shadowDom) {\r\n _super.prototype.markDomUsed.call(this, displayable._shadowDom);\r\n }\r\n };\r\n return ShadowManager;\r\n }(Definable));\r\n function hasShadow(style) {\r\n return style\r\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\r\n }\n\n function parseInt10$1(val) {\r\n return parseInt(val, 10);\r\n }\r\n function getSvgProxy(el) {\r\n if (el instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (el instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (el instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n }\r\n function checkParentAvailable(parent, child) {\r\n return child && parent && child.parentNode !== parent;\r\n }\r\n function insertAfter(parent, child, prevSibling) {\r\n if (checkParentAvailable(parent, child) && prevSibling) {\r\n var nextSibling = prevSibling.nextSibling;\r\n nextSibling ? parent.insertBefore(child, nextSibling)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function prepend(parent, child) {\r\n if (checkParentAvailable(parent, child)) {\r\n var firstChild = parent.firstChild;\r\n firstChild ? parent.insertBefore(child, firstChild)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function remove(parent, child) {\r\n if (child && parent && child.parentNode === parent) {\r\n parent.removeChild(child);\r\n }\r\n }\r\n function getSvgElement(displayable) {\r\n return displayable.__svgEl;\r\n }\r\n var SVGPainter = (function () {\r\n function SVGPainter(root, storage, opts, zrId) {\r\n this.type = 'svg';\r\n this.refreshHover = createMethodNotSupport('refreshHover');\r\n this.pathToImage = createMethodNotSupport('pathToImage');\r\n this.configLayer = createMethodNotSupport('configLayer');\r\n this.root = root;\r\n this.storage = storage;\r\n this._opts = opts = extend({}, opts || {});\r\n var svgDom = createElement('svg');\r\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svgDom.setAttribute('version', '1.1');\r\n svgDom.setAttribute('baseProfile', 'full');\r\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\r\n var bgRoot = createElement('g');\r\n svgDom.appendChild(bgRoot);\r\n var svgRoot = createElement('g');\r\n svgDom.appendChild(svgRoot);\r\n this._gradientManager = new GradientManager(zrId, svgRoot);\r\n this._clipPathManager = new ClippathManager(zrId, svgRoot);\r\n this._shadowManager = new ShadowManager(zrId, svgRoot);\r\n var viewport = document.createElement('div');\r\n viewport.style.cssText = 'overflow:hidden;position:relative';\r\n this._svgDom = svgDom;\r\n this._svgRoot = svgRoot;\r\n this._backgroundRoot = bgRoot;\r\n this._viewport = viewport;\r\n root.appendChild(viewport);\r\n viewport.appendChild(svgDom);\r\n this.resize(opts.width, opts.height);\r\n this._visibleList = [];\r\n }\r\n SVGPainter.prototype.getType = function () {\r\n return 'svg';\r\n };\r\n SVGPainter.prototype.getViewportRoot = function () {\r\n return this._viewport;\r\n };\r\n SVGPainter.prototype.getSvgDom = function () {\r\n return this._svgDom;\r\n };\r\n SVGPainter.prototype.getSvgRoot = function () {\r\n return this._svgRoot;\r\n };\r\n SVGPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n SVGPainter.prototype.refresh = function () {\r\n var list = this.storage.getDisplayList(true);\r\n this._paintList(list);\r\n };\r\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this._backgroundRoot && this._backgroundNode) {\r\n this._backgroundRoot.removeChild(this._backgroundNode);\r\n }\r\n var bgNode = createElement('rect');\r\n bgNode.setAttribute('width', this.getWidth());\r\n bgNode.setAttribute('height', this.getHeight());\r\n bgNode.setAttribute('x', 0);\r\n bgNode.setAttribute('y', 0);\r\n bgNode.setAttribute('id', 0);\r\n bgNode.style.fill = backgroundColor;\r\n this._backgroundRoot.appendChild(bgNode);\r\n this._backgroundNode = bgNode;\r\n };\r\n SVGPainter.prototype._paintList = function (list) {\r\n this._gradientManager.markAllUnused();\r\n this._clipPathManager.markAllUnused();\r\n this._shadowManager.markAllUnused();\r\n var svgRoot = this._svgRoot;\r\n var visibleList = this._visibleList;\r\n var listLen = list.length;\r\n var newVisibleList = [];\r\n for (var i = 0; i < listLen; i++) {\r\n var displayable = list[i];\r\n var svgProxy = getSvgProxy(displayable);\r\n var svgElement = getSvgElement(displayable);\r\n if (!displayable.invisible) {\r\n if (displayable.__dirty || !svgElement) {\r\n svgProxy && svgProxy.brush(displayable);\r\n this._clipPathManager.update(displayable);\r\n if (displayable.style) {\r\n this._gradientManager\r\n .update(displayable.style.fill);\r\n this._gradientManager\r\n .update(displayable.style.stroke);\r\n this._shadowManager\r\n .update(svgElement, displayable);\r\n }\r\n displayable.__dirty = 0;\r\n }\r\n if (getSvgElement(displayable)) {\r\n newVisibleList.push(displayable);\r\n }\r\n }\r\n }\r\n var diff = arrayDiff(visibleList, newVisibleList);\r\n var prevSvgElement;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = visibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n remove(svgRoot, svgElement);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.added) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n prevSvgElement\r\n ? insertAfter(svgRoot, svgElement, prevSvgElement)\r\n : prepend(svgRoot, svgElement);\r\n prevSvgElement = svgElement || prevSvgElement;\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n }\r\n }\r\n else if (!item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n this._gradientManager.markUsed(displayable);\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager.markUsed(displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n prevSvgElement = svgElement\r\n || prevSvgElement;\r\n }\r\n }\r\n }\r\n this._gradientManager.removeUnused();\r\n this._clipPathManager.removeUnused();\r\n this._shadowManager.removeUnused();\r\n this._visibleList = newVisibleList;\r\n };\r\n SVGPainter.prototype._getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgDom;\r\n var defs = svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n SVGPainter.prototype.resize = function (width, height) {\r\n var viewport = this._viewport;\r\n viewport.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n viewport.style.display = '';\r\n if (this._width !== width || this._height !== height) {\r\n this._width = width;\r\n this._height = height;\r\n var viewportStyle = viewport.style;\r\n viewportStyle.width = width + 'px';\r\n viewportStyle.height = height + 'px';\r\n var svgRoot = this._svgDom;\r\n svgRoot.setAttribute('width', width + '');\r\n svgRoot.setAttribute('height', height + '');\r\n }\r\n if (this._backgroundNode) {\r\n this._backgroundNode.setAttribute('width', width);\r\n this._backgroundNode.setAttribute('height', height);\r\n }\r\n };\r\n SVGPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n SVGPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n SVGPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10$1(stl[wh]) || parseInt10$1(root.style[wh]))\r\n - (parseInt10$1(stl[plt]) || 0)\r\n - (parseInt10$1(stl[prb]) || 0)) | 0;\r\n };\r\n SVGPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this._svgRoot\r\n = this._backgroundRoot\r\n = this._svgDom\r\n = this._backgroundNode\r\n = this._viewport\r\n = this.storage\r\n = null;\r\n };\r\n SVGPainter.prototype.clear = function () {\r\n if (this._viewport) {\r\n this.root.removeChild(this._viewport);\r\n }\r\n };\r\n SVGPainter.prototype.toDataURL = function () {\r\n this.refresh();\r\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/>\\n\\r<'));\r\n return 'data:image/svg+xml;charset=UTF-8,' + html;\r\n };\r\n return SVGPainter;\r\n }());\r\n function createMethodNotSupport(method) {\r\n return function () {\r\n logError('In SVG mode painter not support method \"' + method + '\"');\r\n };\r\n }\n\n registerPainter('svg', SVGPainter);\n\n exports.Axis = Axis;\n exports.List = List;\n exports.Model = Model;\n exports.PRIORITY = PRIORITY;\n exports.color = color;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose$1;\n exports.env = env;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.format = format$1;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.graphic = graphic$1;\n exports.helper = helper;\n exports.init = init$1;\n exports.matrix = matrix;\n exports.number = number;\n exports.parseGeoJSON = parseGeoJSON;\n exports.parseGeoJson = parseGeoJson;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.throttle = throttle;\n exports.time = time;\n exports.util = ecUtil;\n exports.vector = vector;\n exports.version = version$1;\n exports.zrender = zrender;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file diff --git a/dist/echarts.common.min.js b/dist/echarts.common.min.js index dac59478132991fea88637b5e831b2509f7209c1..d522c550597cbd84fa3daf480f0249b69b8f1927 100644 --- a/dist/echarts.common.min.js +++ b/dist/echarts.common.min.js @@ -19,4 +19,4 @@ */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).echarts={})}(this,function(t){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function u(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var e=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.weChat=!1},v=new function(){this.browser=new e,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(v.wxa=!0,v.canvasSupported=!0,v.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(v.worker=!0,v.canvasSupported=!0):"undefined"==typeof navigator?(v.node=!0,v.canvasSupported=!0,v.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1]);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&11<=+n.version),e.domSupported="undefined"!=typeof document}(navigator.userAgent,v);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},h=Object.prototype.toString,n=Array.prototype,a=n.forEach,c=n.filter,r=n.slice,p=n.map,o=function(){}.constructor,d=o?o.prototype:null,f={};function g(t,e){f[t]=e}var y=2311;function m(){return y++}function _(){for(var t=[],e=0;e>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",r[u]+":0",i[1-l]+":auto",r[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(a)return a(t,n,i),!0}return!1}function Ut(t){return"CANVAS"===t.nodeName.toUpperCase()}var Zt="undefined"!=typeof window&&!!window.addEventListener,Yt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xt=[];function jt(t,e,n,i){return n=n||{},i||!v.canvasSupported?qt(t,e,n):v.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):qt(t,e,n),n}function qt(t,e,n){if(v.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ut(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Wt(Xt,t,i,r))return n.zrX=Xt[0],void(n.zrY=Xt[1])}n.zrX=n.zrY=0}function Kt(t){return t||window.event}function $t(t,e,n){if(null!=(e=Kt(e)).zrX)return e;var i,r,o=e.type;o&&0<=o.indexOf("touch")?(i="touchend"!==o?e.targetTouches[0]:e.changedTouches[0])&&jt(t,i,e,n):(jt(t,e,e,n),r=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;return null!=n&&null!=i?3*(0!==i?Math.abs(i):Math.abs(n))*(0i.getWidth()||n<0||n>i.getHeight()}W(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(a){de.prototype[a]=function(t){var e,n,i=t.zrX,r=t.zrY,o=ge(this,i,r);if("mouseup"===a&&o||(n=(e=this.findHover(i,r)).target),"mousedown"===a)this._downEl=n,this._downPoint=[t.zrX,t.zrY],this._upEl=n;else if("mouseup"===a)this._upEl=n;else if("click"===a){if(this._downEl!==this._upEl||!this._downPoint||4>>1])<0?l=o:s=1+o;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function we(f,g){var a,s,y=me,l=0,m=(f.length,[]);function e(t){var e=a[t],n=s[t],i=a[t+1],r=s[t+1];s[t]=n+r,t===l-3&&(a[t+1]=a[t+2],s[t+1]=s[t+2]),l--;var o=be(f[i],f,e,n,0,g);e+=o,0!=(n-=o)&&0!==(r=xe(f[e+n-1],f,i,r,r-1,g))&&(n<=r?function(t,e,n,i){var r=0;for(r=0;rs[t+1])break;e(t)}},forceMergeRuns:function(){for(;1>=1;return t+e}(r);do{(o=ve(t,n,i,e))=this._maxSize&&0>4|(3840&i)>>8,240&i|(240&i)>>4,15&i|(15&i)<<4,1),qe(t,e),e):void Ze(e,0,0,0,1):7===r.length?0<=(i=parseInt(r.substr(1),16))&&i<=16777215?(Ze(e,(16711680&i)>>16,(65280&i)>>8,255&i,1),qe(t,e),e):void Ze(e,0,0,0,1):void 0;var o=r.indexOf("("),a=r.indexOf(")");if(-1!==o&&a+1===r.length){var s=r.substr(0,o),l=r.substr(o+1,a-(o+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Ze(e,0,0,0,1);u=Ge(l.pop());case"rgb":return 3!==l.length?void Ze(e,0,0,0,1):(Ze(e,He(l[0]),He(l[1]),He(l[2]),u),qe(t,e),e);case"hsla":return 4!==l.length?void Ze(e,0,0,0,1):(l[3]=Ge(l[3]),$e(l,e),qe(t,e),e);case"hsl":return 3!==l.length?void Ze(e,0,0,0,1):($e(l,e),qe(t,e),e);default:return}}Ze(e,0,0,0,1)}}function $e(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Ge(t[1]),r=Ge(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Ze(e=e||[],Ve(255*We(a,o,n+1/3)),Ve(255*We(a,o,n)),Ve(255*We(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Qe(t,e){var n=Ke(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,255=this.maxTime?this.maxTime=t:this._needsSort=!0;var n,i=this.keyframes,r=i.length;if(this.interpolable)if(k(e)){var o,a=k((n=e)&&n[0])?2:1;if(0e);u++);u=Math.min(u-1,o-2)}var h,c,p,d,f,g,y,m,v,_,x=r[u+1],b=r[u];b&&x&&(this._lastFrame=u,this._lastFramePercent=e,0!=(h=x.percent-b.percent)&&(c=(e-b.percent)/h,p=n?this._additiveValue:l?mn:t[a],(0=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},bi.prototype.clone=function(){return new bi(this.x,this.y,this.width,this.height)},bi.prototype.copy=function(t){bi.copy(this,t)},bi.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},bi.create=function(t){return new bi(t.x,t.y,t.width,t.height)},bi.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},bi.applyTransform=function(t,e,n){if(n){if(n[1]<1e-5&&-1e-5this._ux||qr(e-this._yi)>this._uy||this._len<5;return this.addData(zr.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},Jr.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(zr.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},Jr.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(zr.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},Jr.prototype.arc=function(t,e,n,i,r,o){var a=r-i;return r=i+a,this.addData(zr.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=Yr(r)*n+t,this._yi=Xr(r)*n+e,this},Jr.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},Jr.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(zr.R,t,e,n,i),this},Jr.prototype.closePath=function(){this.addData(zr.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},Jr.prototype.fill=function(t){t&&t.fill(),this.toStatic()},Jr.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},Jr.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;hn||qr(g)>i||c===e-1)&&(d=Math.sqrt(D*D+g*g),r=f,o=v);break;case zr.C:var y=t[c++],m=t[c++],f=t[c++],v=t[c++],_=t[c++],x=t[c++],d=function(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=fr(t,n,r,a,f),y=fr(e,i,o,s,f),m=g-u,v=y-h;c+=Math.sqrt(m*m+v*v),u=g,h=y}return c}(r,o,y,m,f,v,_,x,10),r=_,o=x;break;case zr.Q:d=function(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=_r(t,n,r,p),f=_r(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}(r,o,y=t[c++],m=t[c++],f=t[c++],v=t[c++],10),r=f,o=v;break;case zr.A:var b=t[c++],w=t[c++],S=t[c++],M=t[c++],T=t[c++],C=t[c++],I=C+T;c+=1,t[c++],1===c&&(a=Yr(T)*S+b,s=Xr(T)*M+w),d=Zr(S,M)*Ur(Kr,Math.abs(C)),r=Yr(I)*S+b,o=Xr(I)*M+w;break;case zr.R:a=r=t[c++],s=o=t[c++],d=2*t[c++]+2*t[c++];break;case zr.Z:var D=a-r,g=s-o;d=Math.sqrt(D*D+g*g),r=a,o=s}0<=d&&(u+=l[h++]=d)}return this._pathLen=u},Jr.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var m=0;mc||qr(s-o)>p||m===d-1){if(f){if(u=lo[i=0]+t&&a<=lo[1]+t?c:0}(r=o?(u=i,i=no(r),no(u)):(i=no(i),no(r)))Math.PI/2&&f<1.5*Math.PI&&(c=-c),p+=c))}return p}(f,g,m,v,v+_,x,S,r);l=Math.cos(v+_)*y+f,u=Math.sin(v+_)*m+g;break;case oo.R:h=l=t[p++],c=u=t[p++];if(b=h+t[p++],w=c+t[p++],n){if(to(h,c,b,c,e,i,r)||to(b,c,b,w,e,i,r)||to(b,w,h,w,e,i,r)||to(h,w,h,c,e,i,r))return!0}else s+=ro(b,c,b,w,i,r),s+=ro(h,w,h,c,i,r);break;case oo.Z:if(n){if(to(l,u,h,c,e,i,r))return!0}else s+=ro(l,u,h,c,i,r);l=h,u=c}}return n||(o=u,a=c,Math.abs(o-a)=e.maxIterations){t+=e.ellipsis;break}var a=0===o?function(t,e,n,i){for(var r=0,o=0,a=t.length;oo){0i.width&&(o=e.split("\n"),g=!0),i.accumWidth=u):(h=es(e,f,i.width,i.breakAll,i.accumWidth),i.accumWidth=h.accumWidth+l,a=h.linesWidths,o=h.lines)):o=e.split("\n");for(var y=0;yi.len()&&(u=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Cl(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?t.replace(/^\s+|\s+$/g,"").match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Il(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Dl(t){return t.sort(function(t,e){return t-e}),t}function Al(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function kl(t){var e=t.toString(),n=e.indexOf("e");if(0h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function Ol(t){var e=2*Math.PI;return(t%e+e)%e}function Nl(t){return-MlMath.abs(o[1])?0"'])/g,gp={"&":"&","<":"<",">":">",'"':""","'":"'"};function yp(t){return null==t?"":(t+"").replace(fp,function(t,e){return gp[e]})}function mp(t,e,n){return(n?t:''+yp(t)+"")+(e?'':"")+yp(e)+(e?"":"")}function vp(t,e){return"{"+t+(null==e?"":e)+"}"}var _p=["a","b","c","d","e","f","g"];function xp(t,e,n){E(e)||(e=[e]);var i=e.length;if(!i)return"";if(e[0].axisType&&0<=e[0].axisType.indexOf("time"))return fc(El(e[0].data[e[0].axisIndex]),t);for(var r=e[0].$vars||[],o=0;o':'':{renderMode:r,content:"{marker"+o+"|} ",style:{color:i}}:""}function wp(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=El(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",hc(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",hc(s,2)).replace("d",s).replace("hh",hc(l,2)).replace("h",l).replace("mm",hc(u,2)).replace("m",u).replace("ss",hc(h,2)).replace("s",h).replace("SSS",hc(c,3))}function Sp(t,e){var n;"_blank"===e||"blank"===e?((n=window.open()).opener=null,n.location.href=t):window.open(t,e)}var Mp=Object.freeze({__proto__:null,addCommas:cp,toCamelCase:pp,normalizeCssArray:dp,encodeHTML:yp,concatTooltipHtml:mp,formatTpl:xp,formatTplSimple:function(n,t,i){return W(t,function(t,e){n=n.replace("{"+e+"}",i?yp(t):t)}),n},getTooltipMarker:bp,formatTime:wp,capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},windowOpen:Sp,truncateText:Ya,getTextRect:function(t,e,n,i,r,o,a,s){return mh(),new os({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),Tp=W,Cp=["left","right","top","bottom","width","height"],Ip=[["width","left","right"],["height","top","bottom"]];function Dp(u,h,c,p,d){var f=0,g=0;null==p&&(p=1/0),null==d&&(d=1/0);var y=0;h.eachChild(function(t,e){var n,i,r,o,a=t.getBoundingRect(),s=h.childAt(e+1),l=s&&s.getBoundingRect();y="horizontal"===u?(n=a.width+(l?-l.x+a.x:0),p<(i=f+n)||t.newline?(f=0,i=n,g+=y+c,a.height):Math.max(y,a.height)):(r=a.height+(l?-l.y+a.y:0),d<(o=g+r)||t.newline?(f+=y+c,g=0,o=r,a.width):Math.max(y,a.width)),t.newline||(t.x=f,t.y=g,t.markRedraw(),"horizontal"===u?f=i+c:g=o+c)})}var Ap=Dp;R(Dp,"vertical"),R(Dp,"horizontal");function kp(t,e,n){n=dp(n||0);var i=e.width,r=e.height,o=Cl(t.left,i),a=Cl(t.top,r),s=Cl(t.right,i),l=Cl(t.bottom,r),u=Cl(t.width,i),h=Cl(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(i/re)return t[i];return t[n-1]}(s,n):a;if((l=l||a)&&l.length){var u=l[r];return t&&(o[t]=u),i.colorIdx=(r+1)%l.length,u}},qp);function qp(){}var Kp=ut(["tooltip","label","itemName","itemId","seriesName"]),$p="original",Qp="arrayRows",Jp="objectRows",td="keyedColumns",ed="typedArray",nd="unknown",id="column",rd="row",od=(ad.seriesDataToSource=function(t){return new ad({data:t,sourceFormat:Z(t)?ed:$p})},ad);function ad(t){this.data=t.data||(t.sourceFormat===td?{}:[]),this.sourceFormat=t.sourceFormat||nd,this.seriesLayoutBy=t.seriesLayoutBy||id,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectCount=t.dimensionsDetectCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption}var sd={Must:1,Might:2,Not:3},ld=nu();function ud(t,e,n,i){var r=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:pd(r),startIndex:a,dimensionsDetectCount:o};{var s,l;e===Qp?(s=t,"auto"===i||null==i?dd(function(t){null!=t&&"-"!==t&&(B(t)?null==a&&(a=1):a=0)},n,s,10):a=F(i)?i:i?1:0,r||1!==a||(r=[],dd(function(t,e){r[e]=null!=t?t+"":""},n,s,1/0)),o=r?r.length:n===rd?s.length:s[0]?s[0].length:null):e===Jp?r=r||function(t){var e,n=0;for(;n'+o+yp(s.displayName||"-")+"":"")+''+yp("ordinal"===n?t+"":"time"===n?h?"":wp("yyyy/MM/dd hh:mm:ss",t):cp(t))+"")&&u.push('
'+a+"
"),d&&(f[i]=y,++g))}o.length?W(o,function(t){e(wf(m,r,t),t)}):W(t,e);var n=l&&d?"\n":"",i=n+u.join(n||"");return{renderMode:c,content:i,style:f}}(a):n(i?wf(m,r,o[0]):s?a[0]:a),v=d?u.content:1"+u.content+"":''+u.content+"",_=p.seriesIndex+"at"+g,x=bp({color:y,type:"item",renderMode:c,markerId:_});f[_]=y,++g;var b=m.getName(r),w=this.name;return Ql(this)||(w=""),w=w?yp(w)+(h?" ":e):"",y=B(x)?x:x.content,{html:d?h?""+y+w+": "+v:w+(w?"\n":"")+y+(b?yp(b)+": "+v:v):(w=w?h?''+w+"":'
'+w+"
":"",h?'
'+y+w+v+"
":w+'
'+y+(b?''+yp(b)+""+v:v)+"
"),markers:f}},tg.prototype.isAnimationEnabled=function(){if(v.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},tg.prototype.restoreData=function(){this.dataTask.dirty()},tg.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return jp.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},tg.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},tg.prototype.getProgressive=function(){return this.get("progressive")},tg.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},tg.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},tg.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;re.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function og(e,n){W(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,R(ag,n))})}function ag(t){var e=sg(t);e&&e.setOutputEnd(this.count())}function sg(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i,r=n.currentTask;return!r||(i=r.agentStubMap)&&(r=i.get(t.uid)),r}}M(Jf,Mf),M(Jf,jp),fu(Jf,Gp);var lg=(ug.prototype.init=function(t,e){},ug.prototype.render=function(t,e,n,i){},ug.prototype.dispose=function(t,e){},ug.prototype.updateView=function(t,e,n,i){},ug.prototype.updateLayout=function(t,e,n,i){},ug.prototype.updateVisual=function(t,e,n,i){},ug.prototype.blurSeries=function(t,e){},ug);function ug(){this.group=new Fo,this.uid=Zh("viewComponent")}function hg(){var s=nu();return function(t){var e=s(t),n=t.pipelineContext,i=e.large,r=e.progressiveRender,o=e.large=n&&n.large,a=e.progressiveRender=n&&n.progressiveRender;return!!(i^o||r^a)&&"reset"}}du(lg),vu(lg,{registerWhenExtend:!0});var cg=nu(),pg=hg(),dg=(fg.prototype.init=function(t,e){},fg.prototype.render=function(t,e,n,i){},fg.prototype.highlight=function(t,e,n,i){yg(t.getData(),i,"emphasis")},fg.prototype.downplay=function(t,e,n,i){yg(t.getData(),i,"normal")},fg.prototype.remove=function(t,e){this.group.removeAll()},fg.prototype.dispose=function(t,e){},fg.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},fg.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},fg.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},fg.markUpdateMethod=function(t,e){cg(t).updateMethod=e},fg.protoInitialize=void(fg.prototype.type="chart"),fg);function fg(){this.group=new Fo,this.uid=Zh("viewChart"),this.renderTask=Cf({plan:mg,reset:vg}),this.renderTask.context={view:this}}function gg(t,e,n){t&&("emphasis"===e?eh:nh)(t,n)}function yg(e,t,n){var i,r,o=eu(e,t),a=t&&null!=t.highlightKey?(i=t.highlightKey,null==(r=Tu[i])&&Mu<=32&&(r=Tu[i]=Mu++),r):null;null!=o?W(Ul(o),function(t){gg(e.getItemGraphicEl(t),n,a)}):e.eachItemGraphicEl(function(t){gg(t,n,a)})}function mg(t){return pg(t.model)}function vg(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&cg(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),_g[l]}du(dg),vu(dg,{registerWhenExtend:!0});var _g={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},xg="\0__throttleOriginMethod",bg="\0__throttleRate",wg="\0__throttleType";function Sg(t,r,o){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}r=r||0;function e(){for(var t=[],e=0;ed?n+=y(m("data.partialData"),{displayCnt:d}):n+=m("data.allData");for(var a,s,l=[],u=0;un.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},zg.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},zg.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},zg.prototype.restorePipelines=function(t){var i=this,r=i._pipelineMap=ut();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;r.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},zg.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.ecInstance.getModel(),r=this.api;W(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});t.reset&&this._createSeriesStageTask(t,e,i,r),t.overallReset&&this._createOverallStageTask(t,e,i,r)},this)},zg.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},zg.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},zg.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},zg.prototype._performStageTasks=function(t,l,u,h){h=h||{};var c=!1,p=this;function d(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}W(t,function(i,t){var e,n,r,o,a,s;h.visualType&&h.visualType!==i.visualType||(n=(e=p._stageTaskMap.get(i.uid)).seriesTaskMap,(r=e.overallTask)?((a=r.agentStubMap).each(function(t){d(h,t)&&(t.dirty(),o=!0)}),o&&r.dirty(),p.updatePayload(r,u),s=p.getPerformArgs(r,h.block),a.each(function(t){t.perform(s)}),r.perform(s)&&(c=!0)):n&&n.each(function(t,e){d(h,t)&&t.dirty();var n=p.getPerformArgs(t,h.block);n.skip=!i.performRawSeries&&l.isSeriesFiltered(t.context.model),p.updatePayload(t,u),t.perform(n)&&(c=!0)}))}),this.unfinished=c||this.unfinished},zg.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},zg.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})},zg.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},zg.prototype._createSeriesStageTask=function(i,t,r,o){var a=this,s=t.seriesTaskMap||(t.seriesTaskMap=ut()),e=i.seriesType,n=i.getTargetSeries;function l(t){var e=t.uid,n=s.get(e)||s.set(e,Cf({plan:Gg,reset:Wg,count:Yg}));n.context={model:t,ecModel:r,api:o,useClearVisual:i.isVisual&&!i.isLayout,plan:i.plan,reset:i.reset,scheduler:a},a._pipe(t,n)}i.createOnAllSeries?r.eachRawSeries(l):e?r.eachRawSeriesByType(e,l):n&&n(r,o).each(l);var u=a._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})},zg.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||Cf({reset:Bg});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap=o.agentStubMap||ut(),s=t.seriesType,l=t.getTargetSeries,u=!0;function h(t){var e=t.uid,n=a.get(e);n||(n=a.set(e,Cf({reset:Vg,onDirty:Hg})),o.dirty()),n.context={model:t,overallProgress:u},n.agent=o,n.__block=u,r._pipe(t,n)}s?n.eachRawSeriesByType(s,h):l?l(n,i).each(h):(u=!1,W(n.getSeries(),h));var c=r._pipelineMap;a.each(function(t,e){c.get(e)||(t.dispose(),o.dirty(),a.removeKey(e))})},zg.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);i.head||(i.head=e),i.tail&&i.tail.pipe(e),(i.tail=e).__idxInPipeline=i.count++,e.__pipeline=i},zg.wrapStageHandler=function(t,e){return z(t)&&(t={overallReset:t,seriesType:function(t){Xg=null;try{t(jg,qg)}catch(t){}return Xg}(t)}),t.uid=Zh("stageHandler"),e&&(t.visualType=e),t},zg);function zg(t,e,n,i){this._stageTaskMap=ut(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function Bg(t){t.overallReset(t.ecModel,t.api,t.payload)}function Vg(t){return t.overallProgress&&Fg}function Fg(){this.agent.dirty(),this.getDownstream().dirty()}function Hg(){this.agent&&this.agent.dirty()}function Gg(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Wg(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Ul(t.reset(t.model,t.ecModel,t.api,t.payload));return 1r[0]){for(l=0;lt);l++);s=i[r[l]]}r.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.__painter=this}else _("Layer of zlevel "+t+" is not valid")},Mm.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,r.connectedBackgroundColor&&f.painter.setBackgroundColor(r.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()}return r.connectedBackgroundColor&&f.add(new ra({shape:{x:0,y:0,width:t,height:e},style:{fill:r.connectedBackgroundColor}})),Cm(d,function(t){var e=new Zo({style:{x:t.left*n-u,y:t.top*n-h,image:t.dom}});f.add(e)}),f.refreshImmediately(),i.toDataURL("image/"+(r&&r.type||"png"))}return this.getDataURL(r)}},hv.prototype.convertToPixel=function(t,e){return Zm(this,"convertToPixel",t,e)},hv.prototype.convertFromPixel=function(t,e){return Zm(this,"convertFromPixel",t,e)},hv.prototype.containPixel=function(t,r){var o;if(!this._disposed)return W(ru(this._model,t),function(t,i){0<=i.indexOf("Models")&&W(t,function(t){var e,n=t.coordinateSystem;n&&n.containPoint?o=o||!!n.containPoint(r):"seriesModels"===i&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(o=o||e.containPoint(r,t))},this)},this),!!o;mv(this.id)},hv.prototype.getVisual=function(t,e){var n=ru(this._model,t,{defaultMainType:"series"}),i=n.seriesModel,r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,o,e):my(r,e)},hv.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},hv.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},hv.prototype._initEvents=function(){var t,e,p=this;Cm(yv,function(c){function t(t){var e,n,i,r,o,a,s=p.getModel(),l=t.target,u="globalout"===c,h=l&&Su(l);u?n={}:h&&null!=h.dataIndex?n=(e=h.dataModel||s.getSeriesByIndex(h.seriesIndex))&&e.getDataParams(h.dataIndex,h.dataType)||{}:l&&h.eventData&&(n=L({},h.eventData)),n&&(i=n.componentType,r=n.componentIndex,"markLine"!==i&&"markPoint"!==i&&"markArea"!==i||(i="series",r=n.seriesIndex),a=(o=i&&null!=r&&s.getComponent(i,r))&&p["series"===o.mainType?"_chartsMap":"_componentsMap"][o.__viewId],n.event=t,n.type=c,p._$eventProcessor.eventInfo={targetEl:l,packedEvent:n,model:o,view:a},p.trigger(c,n))}t.zrEventfulCallAtLast=!0,p._zr.on(c,t,p)}),Cm(_v,function(t,e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),Cm(["selectchanged"],function(e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),t=this._messageCenter,e=this,t.on("selectchanged",function(t){t.isFromClick?(qy("map","selectchanged",e,t),qy("pie","selectchanged",e,t)):"select"===t.fromAction?(qy("map","selected",e,t),qy("pie","selected",e,t)):"unselect"===t.fromAction&&(qy("map","unselected",e,t),qy("pie","unselected",e,t))})},hv.prototype.isDisposed=function(){return this._disposed},hv.prototype.clear=function(){this._disposed?mv(this.id):this.setOption({series:[]},!0)},hv.prototype.dispose=function(){var e,n;this._disposed?mv(this.id):(this._disposed=!0,lu(this.getDom(),kv,""),e=this._api,n=this._model,Cm(this._componentsViews,function(t){t.dispose(n,e)}),Cm(this._chartsViews,function(t){t.dispose(n,e)}),this._zr.dispose(),delete Cv[this.id])},hv.prototype.resize=function(t){var e,n,i;this._disposed?mv(this.id):(this._zr.resize(t),e=this._model,this._loadingFX&&this._loadingFX.resize(),e&&(n=e.resetOption("media"),i=t&&t.silent,this[km]=!0,n&&Hm(this),Um.update.call(this,{type:"resize",animation:{duration:0}}),this[km]=!1,jm.call(this,i),qm.call(this,i)))},hv.prototype.showLoading=function(t,e){var n,i;this._disposed?mv(this.id):(Dm(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Tv[t]&&(n=Tv[t](this._api,e),i=this._zr,this._loadingFX=n,i.add(n)))},hv.prototype.hideLoading=function(){this._disposed?mv(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},hv.prototype.makeActionFromEvent=function(t){var e=L({},t);return e.type=_v[t.type],e},hv.prototype.dispatchAction=function(t,e){var n,i;this._disposed?mv(this.id):(Dm(e)||(e={silent:!!e}),vv[t.type]&&this._model&&(this[km]?this._pendingActions.push(t):(n=e.silent,Xm.call(this,t,n),(i=e.flush)?this._zr.flush():!1!==i&&v.browser.weChat&&this._throttledZrFlush(),jm.call(this,n),qm.call(this,n))))},hv.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},hv.prototype.appendData=function(t){var e;this._disposed?mv(this.id):(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},hv.internalField=(Hm=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Gm(t,!0),Gm(t,!1),e.plan()},Gm=function(t,o){for(var a=t._model,s=t._scheduler,l=o?t._componentsViews:t._chartsViews,u=o?t._componentsMap:t._chartsMap,h=t._zr,c=t._api,e=0;el.get("hoverLayerThreshold")&&!v.node&&l.eachSeries(function(t){var e;t.preventUsingHoverLayer||(e=n._chartsMap[t.__viewId]).__alive&&e.group.traverse(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),Ng(i._zr.dom,t)},nv=function(e,n){Cm(wv,function(t){t(e,n)})},ov=function(t){t[Pm]=!0,t.getZr().wakeUp()},av=function(t){t[Pm]&&(t.getZr().storage.traverse(function(t){Qc(t)||cv(t)}),t[Pm]=!1)},iv=function(n){return u(t,e=Ad),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){eh(t,e),ov(n)},t.prototype.leaveEmphasis=function(t,e){nh(t,e),ov(n)},t.prototype.enterBlur=function(t){ih(t),ov(n)},t.prototype.leaveBlur=function(t){rh(t),ov(n)},t.prototype.enterSelect=function(t){oh(t),ov(n)},t.prototype.leaveSelect=function(t){ah(t),ov(n)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(rv=function(i){function r(t,e){for(var n=0;n_[1]&&(_[1]=v)}e&&(this._nameList[p]=e[d])}this._rawCount=this._count=l,this._extent={},$v(this)},x_.prototype._initDataFromProvider=function(t,e){if(!(e<=t)){for(var n,i=this._chunkSize,r=this._rawData,o=this._storage,a=this.dimensions,s=a.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,p=this._nameRepeatCount={},d=this._chunkCount,f=0;fA[1]&&(A[1]=D)}r.pure||(v=u[m],y&&null==v&&(null!=y.name?u[m]=v=y.name:null==n||(x=o[_=a[n]][S])&&(v=x[M],(b=l[_].ordinalMeta)&&b.categories.length&&(v=b.categories[v]))),null==(w=null==y?null:y.id)&&null!=v&&(p[v]=p[v]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},x_.prototype.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var r=1/0,o=-1,a=0,s=0,l=this.count();st[T][1])&&(M=!1)}M&&(o[a++]=this.getRawIndex(y))}return aS[1]&&(S[1]=w)}}}return a},x_.prototype.downSample=function(t,e,n,i){for(var r=o_(this,[t]),o=r._storage,a=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=this._chunkSize,c=r._rawExtent[t],p=new(Jv(this))(u),d=0,f=0;fc[1]&&(c[1]=_),p[d++]=x}return r._count=d,r._indices=p,r.getRawIndex=n_,r},x_.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Gh(n,e,e&&e.ecModel)},x_.prototype.diff=function(e){var n=this;return new Yv(e?e.getIndices():[],this.getIndices(),function(t){return i_(e,t)},function(t){return i_(n,t)})},x_.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},x_.prototype.setVisual=function(t,e){this._visual=this._visual||{},c_(t)?L(this._visual,t):this._visual[t]=e},x_.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},x_.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t],r=(i=i||(n[t]={}))[e];return r||(E(r=this.getVisual(e))?r=r.slice():c_(r)&&(r=L({},r)),i[e]=r),r},x_.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,c_(e)?L(i,e):i[e]=n},x_.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},x_.prototype.setLayout=function(t,e){if(c_(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},x_.prototype.getLayout=function(t){return this._layout[t]},x_.prototype.getItemLayout=function(t){return this._itemLayouts[t]},x_.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?L(this._itemLayouts[t]||{},e):e},x_.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},x_.prototype.setItemGraphicEl=function(t,e){var n,i=this.hostModel;e&&((n=Su(e)).dataIndex=t,n.dataType=this.dataType,n.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(l_,e)),this._graphicEls[t]=e},x_.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},x_.prototype.eachItemGraphicEl=function(n,i){W(this._graphicEls,function(t,e){t&&n&&n.call(i,t,e)})},x_.prototype.cloneShallow=function(t){if((t=t||new x_(U(this.dimensions,this.getDimensionInfo,this),this.hostModel))._storage=this._storage,u_(t,this),this._indices){var e=this._indices.constructor;if(e===Array){var n=this._indices.length;t._indices=new e(n);for(var i=0;ie[1]&&(e[1]=t[1])},O_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},O_.prototype.getExtent=function(){return this._extent.slice()},O_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},O_.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},O_.prototype.isBlank=function(){return this._isBlank},O_.prototype.setBlank=function(t){this._isBlank=t},O_);function O_(t){this._setting=t||{},this._extent=[1/0,-1/0]}vu(P_,{registerWhenExtend:!0});var N_=(R_.createByAxisModel=function(t){var e=t.option,n=e.data,i=n&&U(n,E_);return new R_({categories:i,needCollect:!i,deduplication:!1!==e.dedplication})},R_.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},R_.prototype.parseAndCollect=function(t){var e=this._needCollect;if("string"!=typeof t&&!e)return t;if(e&&!this._deduplication)return n=this.categories.length,this.categories[n]=t,n;var n,i=this._getOrCreateMap();return null==(n=i.get(t))&&(e?(n=this.categories.length,this.categories[n]=t,i.set(t,n)):n=NaN),n},R_.prototype._getOrCreateMap=function(){return this._map||(this._map=ut(this.categories))},R_);function R_(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}function E_(t){return H(t)&&null!=t.value?t.value:t+""}var z_=Il;function B_(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=Vl(o/e,!0);null!=n&&as[1]&&(s[0]=s[1]),r}function V_(t){return kl(t)+2}function F_(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function H_(t,e){return t>=e[0]&&t<=e[1]}function G_(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function W_(t,e){return t*(e[1]-e[0])+e[0]}var U_,Z_=(u(Y_,U_=P_),Y_.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},Y_.prototype.contain=function(t){return H_(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},Y_.prototype.normalize=function(t){return G_(t=this.getCategoryIndex(this.parse(t)),this._extent)},Y_.prototype.scale=function(t){return t=this.getCategoryIndex(t),Math.round(W_(t,this._extent))},Y_.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:this.getCategoryIndex(n)}),n++;return t},Y_.prototype.getMinorTicks=function(t){},Y_.prototype.setCategorySortInfo=function(t){this._categorySortInfo=t},Y_.prototype.getCategorySortInfo=function(){return this._categorySortInfo},Y_.prototype.getCategoryIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].beforeSortIndex:t},Y_.prototype.getRawIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].ordinalNumber:t},Y_.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawIndex(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},Y_.prototype.count=function(){return this._extent[1]-this._extent[0]+1},Y_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Y_.prototype.isInExtentRange=function(t){return t=this.getCategoryIndex(t),this._extent[0]<=t&&this._extent[1]>=t},Y_.prototype.getOrdinalMeta=function(){return this._ordinalMeta},Y_.prototype.niceTicks=function(){},Y_.prototype.niceExtent=function(){},Y_.type="ordinal",Y_);function Y_(t){var e=U_.call(this,t)||this;e.type="ordinal";var n=e.getSetting("ordinalMeta");return n&&!E(n)||(n=new N_({categories:n})),e._ordinalMeta=n,e._categorySortInfo=[],e._extent=e.getSetting("extent")||[0,n.categories.length-1],e}P_.registerClass(Z_);var X_,j_=Il,q_=(u(K_,X_=P_),K_.prototype.parse=function(t){return t},K_.prototype.contain=function(t){return H_(t,this._extent)},K_.prototype.normalize=function(t){return G_(t,this._extent)},K_.prototype.scale=function(t){return W_(t,this._extent)},K_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},K_.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},K_.prototype.getInterval=function(){return this._interval},K_.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=V_(t)},K_.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]s&&(t?o.push({value:j_(s+e,r)}):o.push({value:n[1]})),o},K_.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h=y[0]&&d<=y[1]&&a++)}var m=(y[1]-y[0])/f;if(1.5*m=y[0]&&t.value<=y[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n);var o=cx.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]n[1]&&(n[1]=e[1])})}var Wx=(Ux.prototype.getNeedCrossZero=function(){return!this.option.scale},Ux.prototype.getCoordSysModel=function(){},Ux);function Ux(){}var Zx=vo.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),Yx=vo.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),Xx=vo.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),jx=vo.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),qx={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},Kx={};W({line:ra,rect:ra,roundRect:ra,square:ra,circle:qo,diamond:Yx,pin:Xx,arrow:jx,triangle:Zx},function(t,e){Kx[e]=new t});var $x=vo.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Ni(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i,r=e.symbolType;"none"!==r&&(i=(i=Kx[r])||Kx[r="rect"],qx[r](e.x,e.y,e.width,e.height,i.shape),i.buildPath(t,i.shape,n))}});function Qx(t,e){var n;"image"!==this.type&&(n=this.style,this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw())}function Jx(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?Hc(t.slice(8),new xi(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?Fc(t.slice(7),{},new xi(e,n,i,r),a?"center":"cover"):new $x({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=Qx,o&&s.setColor(o),s}var tb={isDimensionStacked:A_,enableDataStack:D_,getStackedDimension:k_};var eb=Object.freeze({__proto__:null,createList:function(t){return L_(t.getSource(),t)},getLayoutRect:kp,dataStack:tb,createScale:function(t,e){var n=e;e instanceof Gh||(n=new Gh(e));var i=Rx(n);return i.setExtent(t[0],t[1]),Nx(i,n),i},mixinAxisModelCommonMethods:function(t){M(t,Wx)},createDimensions:M_,createSymbol:Jx}),nb=1e-8;function ib(t,e){return Math.abs(t-e)>1^-(1&s),l=(l=t.charCodeAt(a+1)-64)>>1^-(1&l),r=s+=r,o=l+=o;i.push([s/n,l/n])}return i}function lb(t,a){return U(C((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;ra[1],p(e[0].coord,a[0])&&(i?e[0].coord=a[0]:e.shift()),i&&p(a[0],e[0].coord)&&e.unshift({coord:a[0]}),p(a[1],r.coord)&&(i?r.coord=a[1]:e.pop()),i&&p(r.coord,a[1])&&e.push({coord:a[1]}))}(this,n,e.get("alignWithLabel"),t.clamp),n},xb.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return 0i[0]&&(i[0]=o[0]),o[1]>i[1]&&(i[1]=o[1])}return{min:e?n:i,max:e?i:n}}var $b,Qb=function(){this.smooth=0,this.smoothConstraint=!0,this.connectNulls=!1},Jb=(u(tw,$b=vo),tw.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},tw.prototype.getDefaultShape=function(){return new Qb},tw.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length,o=Kb(n,e.smoothConstraint);if(e.connectNulls){for(;0i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return W(o.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function fw(t,e,n){if("cartesian2d"!==t.type)return lw(t,e,n);var i,r,o=t.getBaseAxis().isHorizontal(),a=sw(t,e,n);return n.get("clip",!0)||(i=a.shape,r=Math.max(i.width,i.height),o?(i.y-=r,i.height+=2*r):(i.x-=r,i.width+=2*r)),a}var gw,yw=(u(mw,gw=dg),mw.prototype.init=function(){var t=new Fo,e=new Eb;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},mw.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.mapArray(a.getItemLayout),h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),m=!l.isEmpty(),v=l.get("origin"),_=function(t,e,n){if(!n.valueDim)return[];for(var i=[],r=0,o=e.count();rh[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";W(h,function(t){t.offset=(t.coord-d)/g}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Da(0,0,0,0,h,!0);return y[o]=d,y[o+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],C=t.get(["emphasis","focus"]),I=t.get(["emphasis","blurScope"]);d.useStyle(P(s.getLineStyle(),{fill:"none",stroke:T,lineJoin:"bevel"})),dh(d,t,"lineStyle"),"bolder"===t.get(["emphasis","lineStyle","width"])&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1),Su(d).seriesIndex=t.seriesIndex,hh(d,C,I);var D,A,k=cw(t.get("smooth"));function L(t){i._changePolyState(t)}d.setShape({smooth:k,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f&&(D=a.getCalculationInfo("stackedOnSeries"),A=0,f.useStyle(P(l.getAreaStyle(),{fill:T,opacity:.7,lineJoin:"bevel"})),D&&(A=cw(D.get("smooth"))),f.setShape({smooth:k,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),dh(f,t,"areaStyle"),Su(f).seriesIndex=t.seriesIndex,hh(f,C,I)),a.eachItemGraphicEl(function(t){t&&(t.onHoverStateChange=L)}),this._data=a,this._coordSys=r,this._stackedOnPoints=_,this._points=u,this._step=M,this._valueOrigin=v},mw.prototype.dispose=function(){},mw.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=eu(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&0<=o){var a=r.getItemGraphicEl(o);if(!a){var s=r.getItemLayout(o);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(a=new kb(r,o)).setPosition(s),a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,r.setItemGraphicEl(o,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else dg.prototype.highlight.call(this,t,e,n,i)},mw.prototype.downplay=function(t,e,n,i){var r,o=t.getData(),a=eu(o,i);this._changePolyState("normal"),null!=a&&0<=a?(r=o.getItemGraphicEl(a))&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay()):dg.prototype.downplay.call(this,t,e,n,i)},mw.prototype._changePolyState=function(t){var e=this._polygon;$u(this._polyline,t),e&&$u(e,t)},mw.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Jb({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e},mw.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new ow({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n},mw.prototype._updateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=Fb(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=pw(u.current,n,r),c=pw(u.stackedOnCurrent,n,r),p=pw(u.next,n,r),d=pw(u.stackedOnNext,n,r)),3e3e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;nl[1]?-1:1,h=["start"===r?l[0]-u*s:"end"===r?l[1]+u*s:(l[0]+l[1])/2,Bw(r)?t.labelOffset+o*s:0],null!=(p=e.get("nameRotate"))&&(p=p*Pw/180),Bw(r)?c=Ow.innerTextLayout(t.rotation,null!=p?p:t.rotation,o):(c=function(t,e,n,i){var r,o,a=Ol(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;r=Nl(a-Pw/2)?(o=l?"bottom":"top","center"):Nl(a-1.5*Pw)?(o=l?"top":"bottom","center"):(o="middle",a<1.5*Pw&&Pw/2h[1]&&h.reverse(),(null==l||l>h[1])&&(l=h[1]),lt[1]&&(t[1]=e)}lg.registerClass(aS),lg.registerClass(uS),Ev(Am.PROCESSOR.FILTER+10,{getTargetSeries:function(t){var e=ut();return t.eachSeries(function(t){Kw(t)&&e.set(t.uid,t)}),e},overallReset:function(t,e){var u,h,C,n=[],i=ut();u=i,h=n,t.eachSeries(function(t){var e,n,i,r,o,a,s,l;Kw(t)&&(n=(e=$w(t)).xAxisModel,i=e.yAxisModel,r=n.axis,o=i.axis,a=r.scale.rawExtentInfo,s=o.scale.rawExtentInfo,l=t.getData(),a&&a.frozen||s&&s.frozen||(h.push({seriesModel:t,xAxisModel:n,yAxisModel:i}),Gx(cS(u,n).condExtent,l,r.dim),Gx(cS(u,i).condExtent,l,o.dim)))}),C=i,W(n,function(t){var e=t.xAxisModel,n=t.yAxisModel,i=e.axis,r=n.axis,o=cS(C,e),a=cS(C,n);o.rawExtentInfo=Lx(i.scale,e,o.condExtent),a.rawExtentInfo=Lx(r.scale,n,a.condExtent),o.rawExtentResult=o.rawExtentInfo.calculate(),a.rawExtentResult=a.rawExtentInfo.calculate();var s,l,u=t.seriesModel.getData(),h={},c={};function p(e,t){var n=t.condExtent,i=t.rawExtentResult;"category"===e.type&&(n[0]e.min&&n.modifyDataMinMax("min",i[0]),!e.maxFixed&&i[1]e[1]&&e.reverse(),e},DS.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},DS.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setCategorySortInfo(t)},DS);function DS(t,e,n,i,r){var o=CS.call(this,t,e,n)||this;return o.index=0,o.type=i||"value",o.position=r||"bottom",o}var AS=(kS.prototype.getRect=function(){return this._rect},kS.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),W(n.x,function(t){Nx(t.scale,t.model)}),W(n.y,function(t){Nx(t.scale,t.model)});var i={};W(n.x,function(t){PS(n,"y",t,i)}),W(n.y,function(t){PS(n,"x",t,i)}),this.resize(this.model,e)},kS.prototype.resize=function(t,e,n){var l=kp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=l;var i=this._axesList;function r(){W(i,function(t){var e,n,i,r,o=t.isHorizontal(),a=o?[0,l.width]:[0,l.height],s=t.inverse?1:0;t.setExtent(a[s],a[1-s]),e=t,n=o?l.x:l.y,i=e.getExtent(),r=i[0]+i[1],e.toGlobalCoord="x"===e.dim?function(t){return t+n}:function(t){return r-t+n},e.toLocalCoord="x"===e.dim?function(t){return t-n}:function(t){return r-t+n}})}r(),!n&&t.get("containLabel")&&(W(i,function(t){var e,n,i;t.model.get(["axisLabel","inside"])||(e=Bx(t))&&(n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]),l[n]-=e[n]+i,"top"===t.position?l.y+=e.height+i:"left"===t.position&&(l.x+=e.width+i))}),r())},kS.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},kS.prototype.getAxes=function(){return this._axesList.slice()},kS.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}H(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;ic?l:s,(i=Math.abs(e.label.y-c))>n.maxY&&(a=(r=e.label.x-h-e.len2*d)<(o=p+e.len)?Math.sqrt(i*i/(1-r*r/o/o)):o,n.rB=a,n.maxY=i),n.list.push(e))}f(s),f(l)}(t)}function f(t){for(var e=t.rB,n=e*e,i=0;i=n.r0}},CM.type="pie",CM);function CM(){var t=null!==MM&&MM.apply(this,arguments)||this;return t.ignoreLabelLineUpdate=!0,t}dg.registerClass(TM);var IM,DM,AM=2*Math.PI,kM=Math.PI/180;DM=zv,W([[(IM="pie")+"ToggleSelect","toggleSelect"],[IM+"Select","select"],[IM+"UnSelect","unselect"]],function(o){DM(o[0],function(t,e,n){var i,r;t=L({},t),n.dispatchAction(L(t,{type:o[1],seriesIndex:(i=t,r=[],e.eachComponent({mainType:"series",subType:IM,query:i},function(t){r.push(t.seriesIndex)}),r)}))})}),Bv(R(function(t,e,D){e.eachSeriesByType(t,function(t){var e,r=t.getData(),n=r.mapDimension("value"),i=(e=D,kp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})),o=t.get("center"),a=t.get("radius");E(a)||(a=[0,a]),E(o)||(o=[o,o]);var s=Cl(i.width,D.getWidth()),l=Cl(i.height,D.getHeight()),u=Math.min(s,l),h=Cl(o[0],s)+i.x,c=Cl(o[1],l)+i.y,p=Cl(a[0],u/2),d=Cl(a[1],u/2),f=-t.get("startAngle")*kM,g=t.get("minAngle")*kM,y=0;r.each(n,function(t){isNaN(t)||y++});var m=r.getSum(n),v=Math.PI/(m||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=r.getDataExtent(n);w[0]=0;var S,M=AM,T=0,C=f,I=_?1:-1;r.setLayout({viewRect:i,r:d}),r.each(n,function(t,e){var n,i;isNaN(t)?r.setItemLayout(e,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d}):((n="area"!==x?0===m&&b?v:t*v:AM/y)a)return!0;if(o){var s=Gw(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1},fT.prototype.makeElOption=function(t,e,n,i,r){},fT.prototype.createPointerEl=function(t,e,n,i){var r,o=e.pointer;o&&(r=hT(t).pointerEl=new hp[o.type](cT(e.pointer)),t.add(r))},fT.prototype.createLabelEl=function(t,e,n,i){var r;e.label&&(r=hT(t).labelEl=new os(cT(e.label)),t.add(r),yT(r,i))},fT.prototype.updatePointerEl=function(t,e,n){var i=hT(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},fT.prototype.updateLabelEl=function(t,e,n,i){var r=hT(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),yT(r,i))},fT.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=lp(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Jt(t.event)},onmousedown:pT(this._onHandleDragMove,this,0,0),drift:pT(this._onHandleDragMove,this),ondragend:pT(this._onHandleDragEnd,this)}),i.add(r)),vT(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");E(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Mg(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},fT.prototype._moveHandleToValue=function(t,e){gT(this._axisPointerModel,!e&&this._moveAnimation,this._handle,mT(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},fT.prototype._onHandleDragMove=function(t,e){var n,i=this._handle;i&&(this._dragging=!0,n=this.updateHandleTransform(mT(i),[t,e],this._axisModel,this._axisPointerModel),this._payloadInfo=n,i.stopAnimation(),i.attr(mT(n)),hT(i).lastProp=null,this._doDispatchAxisPointer())},fT.prototype._doDispatchAxisPointer=function(){var t,e;this._handle&&(t=this._payloadInfo,e=this._axisModel,this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]}))},fT.prototype._onHandleDragEnd=function(){var t;this._dragging=!1,this._handle&&(t=this._axisPointerModel.get("value"),this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"}))},fT.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},fT.prototype.doClear=function(){},fT.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},fT);function fT(){this._dragging=!1,this.animationThreshold=15}function gT(t,e,n,i){!function n(i,t){{if(H(i)&&H(t)){var r=!0;return W(t,function(t,e){r=r&&n(i[e],t)}),!!r}return i===t}}(hT(n).lastProp,i)&&(hT(n).lastProp=i,e?Xc(n,i,t):(n.stopAnimation(),n.attr(i)))}function yT(t,e){t[e.get(["label","show"])?"show":"hide"]()}function mT(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function vT(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)})}function _T(t,e,n,i,r){var o=xT(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=dp(a.get("padding")||0),l=a.getFont(),u=Ai(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f,g,y,m,v,_,x=r.verticalAlign;"bottom"===x&&(h[1]-=p),"middle"===x&&(h[1]-=p/2),f=h,g=c,y=p,v=(m=i).getWidth(),_=m.getHeight(),f[0]=Math.min(f[0]+g,v)-g,f[1]=Math.min(f[1]+y,_)-y,f[0]=Math.max(f[0],0),f[1]=Math.max(f[1],0);var b=a.get("backgroundColor");b&&"auto"!==b||(b=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:{text:o,textFont:l,fill:a.getTextColor(),padding:s,backgroundColor:b,borderColor:a.get("borderColor")||"transparent",borderRadius:a.get("borderRadius"),borderWidth:a.get("borderWidth")||0,shadowBlur:a.get("shadowBlur"),shadowColor:a.get("shadowColor"),shadowOffsetX:a.get("shadowOffsetX"),shadowOffsetY:a.get("shadowOffsetY")},z2:10}}function xT(t,e,r,n,i){t=e.scale.parse(t);var o,a=e.scale.getLabel({value:t},{precision:i.precision}),s=i.formatter;return s&&(o={value:zx(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]},W(n,function(t){var e=r.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,i=e&&e.getDataParams(n);i&&o.seriesData.push(i)}),B(s)?a=s.replace("{value}",a):z(s)&&(a=s(o))),a}function bT(t,e,n){var i=Yn();return $n(i,i,n.rotation),Kn(i,i,n.position),ip([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}var wT,ST=(u(MT,wT=dT),MT.prototype.makeElOption=function(t,e,n,i,r){var o,a,s,l,u,h,c=n.axis,p=c.grid,d=i.get("type"),f=TT(p,c).getOtherAxis(c).getGlobalExtent(),g=c.toGlobalCoord(c.dataToCoord(e,!0));d&&"none"!==d&&(u=(s=i).get("type"),h=s.getModel(u+"Style"),"line"===u?(l=h.getLineStyle()).fill=null:"shadow"===u&&((l=h.getAreaStyle()).stroke=null),o=l,(a=CT[d](c,g,f)).style=o,t.graphicKey=a.type,t.pointer=a);var y,m,v,_,x,b,w,S=qw(p.model,n);y=e,m=t,v=S,_=n,x=i,b=r,w=Ow.innerTextLayout(v.rotation,0,v.labelDirection),v.labelMargin=x.get(["label","margin"]),_T(m,_,x,b,{position:bT(_.axis,y,v),align:w.textAlign,verticalAlign:w.textVerticalAlign})},MT.prototype.getHandleTransform=function(t,e,n){var i=qw(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=bT(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},MT.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=TT(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];return c[l]=u[l],{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},MT);function MT(){return null!==wT&&wT.apply(this,arguments)||this}function TT(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var CT={line:function(t,e,n){var i,r,o;return{type:"Line",subPixelOptimize:!0,shape:(i=[e,n[0]],r=[e,n[1]],o=IT(t),{x1:i[o=o||0],y1:i[1-o],x2:r[o],y2:r[1-o]})}},shadow:function(t,e,n){var i,r,o,a=Math.max(1,t.getBandWidth()),s=n[1]-n[0];return{type:"Rect",shape:(i=[e-a/2,n[0]],r=[a,s],o=IT(t),{x:i[o=o||0],y:i[1-o],width:r[o],height:r[1-o]})}}};function IT(t){return"x"===t.dim?0:1}Xw.registerAxisPointerClass("CartesianAxisPointer",ST);var DT,AT=(u(kT,DT=Gp),kT.type="axisPointer",kT.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},kT);function kT(){var t=null!==DT&&DT.apply(this,arguments)||this;return t.type=kT.type,t}Gp.registerClass(AT),Rv(function(t){var e;t&&(t.axisPointer&&0!==t.axisPointer.length||(t.axisPointer={}),(e=t.axisPointer.link)&&!E(e)&&(t.axisPointer.link=[e]))}),Ev(Am.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Fw(t,e)}),zv({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,n){var i=t.currTrigger,a=[t.x,t.y],r=t,o=t.dispatchAction||N(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){tT(a)&&(a=jM({seriesIndex:r.seriesIndex,dataIndex:r.dataIndex},e).point);var l=tT(a),u=r.axesInfo,h=s.axesInfo,c="leave"===i||tT(a),p={},d={},f={list:[],map:{}},g={showPointer:R($M,d),showTooltip:R(QM,f)};W(s.coordSysMap,function(t,e){var o=l||t.containPoint(a);W(s.coordSysAxesInfo[e],function(t,e){var n,i=t.axis,r=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);c||!o||u&&!r||(null!=(n=r&&r.value)||l||(n=i.pointToData(a)),null!=n&&KM(t,n,g,!1,p))})});var y,m,v,_={};return W(h,function(r,t){var o=r.linkGroup;o&&!d[t]&&W(o.axesInfo,function(t,e){var n,i=d[e];t!==r&&i&&(n=i.value,o.mapper&&(n=r.axis.scale.parse(o.mapper(n,JM(t),JM(r)))),_[r.key]=n)})}),W(_,function(t,e){KM(h[e],t,g,!0,p)}),y=d,m=h,v=p.axesInfo=[],W(m,function(t,e){var n=t.axisPointerModel.option,i=y[e];i?(t.useHandle||(n.status="show"),n.value=i.value,n.seriesDataIndices=(i.payloadBatch||[]).slice()):t.useHandle||(n.status="hide"),"show"===n.status&&v.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:n.value})}),function(t,e,n,i){if(tT(e)||!t.list.length)return i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,a,t,o),function(t,e){var n=e.getZr(),i="axisPointerLastHighlights",r=qM(n)[i]||{},o=qM(n)[i]={};W(t,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&W(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;o[e]=t})});var a=[],s=[];W(r,function(t,e){o[e]||s.push(t)}),W(o,function(t,e){r[e]||a.push(t)}),s.length&&e.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:s}),a.length&&e.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:a})}(h,n),p}});var LT,PT=(u(OT,LT=Gp),OT.type="tooltip",OT.dependencies=["axisPointer"],OT.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderColor:"#333",borderRadius:4,borderWidth:1,padding:10,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},OT);function OT(){var t=null!==LT&<.apply(this,arguments)||this;return t.type=OT.type,t}Gp.registerClass(PT);var NT=W,RT=pp,ET=["","-webkit-","-moz-","-o-"];function zT(t){var e="#fff";return H(t)&&"pattern"!==t.type?e=t.colorStops[0].color:H(t)&&"pattern"===t.type?e="transparent":B(t)&&(e=t),e}function BT(r){var t,e,n,i,o,a,s,l=[],u=r.get("transitionDuration"),h=r.get("backgroundColor"),c=r.get("shadowBlur"),p=r.get("shadowColor"),d=r.get("shadowOffsetX"),f=r.get("shadowOffsetY"),g=r.getModel("textStyle"),y=r.get("padding"),m=d+"px "+f+"px "+c+"px "+p;return l.push("box-shadow:"+m),u&&!["top","left","bottom","right"].includes(r.get("position"))&&"item"!==r.get("trigger")&&l.push((n="left "+(t=u)+"s "+(e="cubic-bezier(0.23, 1, 0.32, 1)")+",top "+t+"s "+e,U(ET,function(t){return t+"transition:"+n}).join(";"))),h&&(v.canvasSupported?l.push("background-Color:"+h):(l.push("background-Color:#"+Je(h)),l.push("filter:alpha(opacity=70)"))),NT(["width","color","radius"],function(t){var e="border-"+t,n=RT(e),i=r.get(n);null!=i&&l.push(e+":"+i+("color"===t?"":"px"))}),l.push((o=[],a=(i=g).get("fontSize"),(s=i.getTextColor())&&o.push("color:"+s),o.push("font:"+i.getFont()),a&&o.push("line-height:"+Math.round(3*a/2)+"px"),NT(["decoration","align"],function(t){var e=i.get(t);e&&o.push("text-"+t+":"+e)}),o.join(";"))),null!=y&&l.push("padding:"+dp(y).join("px ")+"px"),l.join(";")+";"}function VT(t,e,n,i,r){var o,a,s,l,u,h=e&&e.painter;n?(o=h&&h.getViewportRoot())&&(s=t,l=o,u=document.body,Wt(Gt,l,i,r,!0)&&Wt(s,u,Gt[0],Gt[1])):(t[0]=i,t[1]=r,(a=h&&h.getViewportRootOffset())&&(t[0]+=a.offsetLeft,t[1]+=a.offsetTop))}var FT=(HT.prototype.update=function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),n=t.style;"absolute"!==n.position&&"absolute"!==e.position&&(n.position="relative")},HT.prototype.show=function(t,e){clearTimeout(this._hideTimeout);var n=this.el,i=this._styleCoord,r=n.offsetHeight/2;e=zT(e),n.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+BT(t)+";left:"+i[0]+"px;top:"+(i[1]-r)+"px;border-color: "+e+";"+(t.get("extraCssText")||""),n.style.display=n.innerHTML?"block":"none",n.style.pointerEvents=this._enterable?"auto":"none",this._show=!0},HT.prototype.setContent=function(t,e,n,i,r){null!=t&&(this.el.innerHTML=t,this.el.innerHTML+=B(r)&&"item"===n.get("trigger")&&!n.get("confine")?function(t,e,n){if(!B(n)||"inside"===n)return"";e=zT(e);var i,r=i="left"===(i=n)?"right":"right"===i?"left":"top"===i?"bottom":"top",o="",a=0,a=["left","right"].includes(r)?(o=r+":-6px;top:50%;transform:translateY(-50%)","left"==r?-225:-45):(o=r+":-6px;left:50%;transform:translateX(-50%)","top"==r?225:45);return"
"}(n.get("backgroundColor"),i,r):"")},HT.prototype.setEnterable=function(t){this._enterable=t},HT.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},HT.prototype.moveTo=function(t,e){var n=this._styleCoord;VT(n,this._zr,this._appendToBody,t,e);var i=this.el.style;i.left=n[0]+"px",i.top=n[1]+"px"},HT.prototype.hide=function(){this.el.style.display="none",this._show=!1},HT.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(N(this.hide,this),t)):this.hide())},HT.prototype.isShow=function(){return this._show},HT.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},HT.prototype.getOuterSize=function(){var t,e=this.el.clientWidth,n=this.el.clientHeight;return document.defaultView&&document.defaultView.getComputedStyle&&(t=document.defaultView.getComputedStyle(this.el))&&(e+=parseInt(t.borderLeftWidth,10)+parseInt(t.borderRightWidth,10),n+=parseInt(t.borderTopWidth,10)+parseInt(t.borderBottomWidth,10)),{width:e,height:n}},HT);function HT(t,e,n){if(this._show=!1,this._styleCoord=[0,0],this._enterable=!0,v.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;VT(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var a=this;i.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},i.onmousemove=function(t){var e;t=t||window.event,a._enterable||(e=r.handler,$t(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t))},i.onmouseleave=function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}}var GT=(WT.prototype.update=function(){},WT.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},WT.prototype.setContent=function(t,e,n,i,r){this.el&&this._zr.remove(this.el);for(var o={},a=t,s="{marker",l=a.indexOf(s);0<=l;){var u=a.indexOf("|}"),h=a.substr(l+s.length,u-l-s.length);-1'+yp(t)+""+a:"")+e.reverse().join(a)),r.push("
")}})},this),r.pop();var s=r.join(this._newLine+this._newLine),l=e.position;this._showOrMove(o,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,l,i[0],i[1],this._tooltipContent,p):this._showTooltipContent(o,s,p,Math.random()+"",i[0],i[1],l,void 0,f)})},KT.prototype._showSeriesItemTooltip=function(t,e,n){var i,r,o,a,s,l,u=this._ecModel,h=Su(e),c=h.seriesIndex,p=u.getSeriesByIndex(c),d=h.dataModel||p,f=h.dataIndex,g=h.dataType,y=d.getData(g),m=$T([y.getItemModel(f),d,p&&(p.coordinateSystem||{}).model,this._tooltipModel]),v=m.get("trigger");null!=v&&"item"!==v||(i=m.get("order"),(r=d.getDataParams(f,g)).marker=bp({color:r.color,renderMode:this._renderMode}),o=d.formatTooltip(f,!1,g,this._renderMode,i),s=H(o)?(a=o.html,o.markers):(a=o,null),l="item_"+d.name+"_"+f,this._showOrMove(m,function(){this._showTooltipContent(m,a,r,l,t.offsetX,t.offsetY,t.position,t.target,s)}),n({type:"showTip",dataIndexInside:f,dataIndex:y.getRawIndex(f),seriesIndex:c,from:this.uid}))},KT.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;B(i)&&(i={content:i,formatter:i});var r=new Gh(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"";this._showOrMove(r,function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e)}),n({type:"showTip",from:this.uid})},KT.prototype._showTooltipContent=function(n,t,i,e,r,o,a,s,l){var u,h,c,p,d;this._ticket="",n.get("showContent")&&n.get("show")&&(u=this._tooltipContent,h=n.get("formatter"),a=a||n.get("position"),c=t,p=this._getNearestPoint([r,o],i,n.get("trigger")),h&&B(h)?c=xp(h,i,!0):z(h)&&(d=ZT(function(t,e){t===this._ticket&&(u.setContent(e,l,n,p.color,a),this._updatePosition(n,a,r,o,u,i,s))},this),this._ticket=e,c=h(i,e,d)),u.setContent(c,l,n,p.color,a),u.show(n,p.color),this._updatePosition(n,a,r,o,u,i,s))},KT.prototype._getNearestPoint=function(t,e,n){return"axis"===n||E(e)?{color:"html"===this._renderMode?"#fff":"none"}:E(e)?void 0:{color:e.color||e.borderColor}},KT.prototype._updatePosition=function(t,e,n,i,r,o,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u,h,c,p,d,f,g,y,m,v,_=r.getSize(),x=t.get("align"),b=t.get("verticalAlign"),w=a&&a.getBoundingRect().clone();a&&w.applyTransform(a.transform),z(e)&&(e=e([n,i],o,r.el,w,{viewSize:[s,l],contentSize:_.slice()})),E(e)?(n=XT(e[0],s),i=XT(e[1],l)):H(e)?((u=e).width=_[0],u.height=_[1],n=(h=kp(u,{width:s,height:l})).x,i=h.y,b=x=null):(n=B(e)&&a?(c=function(t,e,n){var i=n[0],r=n[1],o=0,a=0,s=e.width,l=e.height;switch(t){case"inside":o=e.x+s/2-i/2,a=e.y+l/2-r/2;break;case"top":o=e.x+s/2-i/2,a=e.y-r-10;break;case"bottom":o=e.x+s/2-i/2,a=e.y+l+10;break;case"left":o=e.x-i-10-5,a=e.y+l/2-r/2;break;case"right":o=e.x+s+10+5,a=e.y+l/2-r/2}return[o,a]}(e,w,_))[0]:(c=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;return null!=o&&(in[r],d=[-h.x,-h.y];e||(d[i]=s[a]);var f=[0,0],g=[-c.x,-c.y],y=Q(t.get("pageButtonGap",!0),t.get("itemGap",!0));p&&("end"===t.get("pageButtonPosition",!0)?g[i]+=n[r]-c[r]:f[i]+=c[r]+y),g[1-i]+=h[o]/2-c[o]/2,s.setPosition(d),l.setPosition(f),u.setPosition(g);var m,v={x:0,y:0};v[r]=p?n[r]:h[r],v[o]=Math.max(h[o],c[o]),v[a]=Math.min(0,c[a]+g[1-i]),l.__rectSize=n[r],p?((m={x:0,y:0})[r]=Math.max(n[r]-c[r]-y,0),m[o]=v[o],l.setClipPath(new ra({shape:m})),l.__rectSize=m[r]):u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var _=this._getPageInfo(t);return null!=_.pageIndex&&Xc(s,{x:_.contentPosition[0],y:_.contentPosition[1]},p?t:null),this._updatePageInfoView(t,_),v},TC.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},TC.prototype._updatePageInfoView=function(i,r){var o=this._controllerGroup;W(["pagePrev","pageNext"],function(t){var e=null!=r[t+"DataIndex"],n=o.childOfName(t);n&&(n.setStyle("fill",e?i.get("pageIconColor",!0):i.get("pageIconInactiveColor",!0)),n.cursor=e?"pointer":"default")});var t=o.childOfName("pageText"),e=i.get("pageFormatter"),n=r.pageIndex,a=null!=n?n+1:0,s=r.pageCount;t&&e&&t.setStyle("text",B(e)?e.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):e({current:a,total:s}))},TC.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=wC[r],a=SC[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=v(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,m=null;f<=h;++f)(!(m=v(l[f]))&&y.e>g.s+i||m&&!_(m,g.s))&&(g=y.i>g.i?y:m)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=m;for(f=s-1,y=g=d,m=null;-1<=f;--f)(m=v(l[f]))&&_(y,m.s)||!(g.i=e&&t.s<=e+i}},TC.prototype._findTargetItemIndex=function(i){return this._showController?(this.getContentGroup().eachChild(function(t,e){var n=t.__legendDataIndex;null==o&&null!=n&&(o=e),n===i&&(r=e)}),null!=r?r:o):0;var r,o},TC.type="legend.scroll",TC);function TC(){var t=null!==xC&&xC.apply(this,arguments)||this;return t.type=TC.type,t.newlineDisabled=!0,t._currentIndex=0,t}lg.registerClass(MC),zv("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})});var CC,IC=(u(DC,CC=Gp),DC.type="title",DC.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},DC);function DC(){var t=null!==CC&&CC.apply(this,arguments)||this;return t.type=DC.type,t.layoutMode={type:"box",ignoreSize:!0},t}Gp.registerClass(IC);var AC,kC=(u(LC,AC=lg),LC.prototype.render=function(t,e,n){var i,r,o,a,s,l,u,h,c,p,d,f,g,y,m,v,_,x,b;this.group.removeAll(),t.get("show")&&(i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=Q(t.get("textBaseline"),t.get("textVerticalAlign")),u=(l=new os({style:wh(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10})).getBoundingRect(),h=t.get("subtext"),c=new os({style:wh(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0),l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",function(){Sp(p,"_"+t.get("target"))}),d&&c.on("click",function(){Sp(p,"_"+t.get("subtarget"))}),Su(l).eventData=Su(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c),g=i.getBoundingRect(),(y=t.getBoxLayoutParams()).width=g.width,y.height=g.height,m=kp(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding")),a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?m.x+=m.width:"center"===a&&(m.x+=m.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?m.y+=m.height:"middle"===s&&(m.y+=m.height/2),s=s||"top"),i.x=m.x,i.y=m.y,i.markRedraw(),v={align:a,verticalAlign:s},l.setStyle(v),c.setStyle(v),g=i.getBoundingRect(),_=m.margin,(x=t.getItemStyle(["color","opacity"])).fill=t.get("backgroundColor"),b=new ra({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0}),i.add(b))},LC.type="title",LC);function LC(){var t=null!==AC&&AC.apply(this,arguments)||this;return t.type=LC.type,t}function PC(t){Zl(t,"label",["show"])}lg.registerClass(kC);var OC,NC=nu(),RC=(u(EC,OC=Gp),EC.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},EC.prototype.isAnimationEnabled=function(){if(v.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},EC.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},EC.prototype._mergeOption=function(t,i,e,r){var o=this.mainType;e||i.eachSeries(function(t){var e=t.get(this.mainType,!0),n=NC(t)[o];e&&e.data?(n?n._mergeOption(e,i,!0):(r&&PC(e),W(e.data,function(t){t instanceof Array?(PC(t[0]),PC(t[1])):PC(t)}),L(n=this.createMarkerModelFromSeries(e,this,i),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),n.__hostSeries=t),NC(t)[o]=n):NC(t)[o]=null},this)},EC.prototype.formatTooltip=function(t,e,n,i){var r=this.getData(),o=this.getRawValue(t),a=E(o)?U(o,cp).join(", "):cp(o),s=yp(r.getName(t)),l='
'+yp(this.name)+"
";return null==o&&!s||(l+="html"===i?"":"\n"),s&&(l+='
'+s+""),null!=o&&(l="html"===i?mp(l,a,!0)+(s?"
":""):l+a),l},EC.prototype.getData=function(){return this._data},EC.prototype.setData=function(t){this._data=t},EC.getMarkerModelFromSeries=function(t,e){return NC(t)[e]},EC.type="marker",EC.dependencies=["series","grid","polar","geo"],EC);function EC(){var t=null!==OC&&OC.apply(this,arguments)||this;return t.type=EC.type,t.createdBySelf=!1,t}M(RC,Mf.prototype);var zC,BC=(u(VC,zC=RC),VC.prototype.createMarkerModelFromSeries=function(t,e,n){return new VC(t,e,n)},VC.type="markPoint",VC.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},VC);function VC(){var t=null!==zC&&zC.apply(this,arguments)||this;return t.type=VC.type,t}function FC(t,e,n,i,r,o){var a=[],s=A_(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=YC(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Al(e.get(i,u));return 0<=(c=Math.min(c,20))&&(a[o]=+a[o].toFixed(c)),[a,h]}Gp.registerClass(BC);var HC={min:R(FC,"min"),max:R(FC,"max"),average:R(FC,"average"),median:R(FC,"median")};function GC(t,e){var n,i=t.getData(),r=t.coordinateSystem;if(e&&(n=e,isNaN(parseFloat(n.x))||isNaN(parseFloat(n.y)))&&!E(e.coord)&&r){var o=r.dimensions,a=WC(e,i,r,t);if((e=A(e)).type&&HC[e.type]&&a.baseAxis&&a.valueAxis){var s=D(o,a.baseAxis.dim),l=D(o,a.valueAxis.dim),u=HC[e.type](i,a.baseDataDim,a.valueDataDim,s,l);e.coord=u[0],e.value=u[1]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],c=0;c<2;c++)HC[h[c]]&&(h[c]=YC(i,i.mapDimension(o[c]),h[c]));e.coord=h}}return e}function WC(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;ro&&(e[1-i]=e[i]+u.sign*o),e}function cD(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:0r[0]||o[1]<0||o[1]>r[1]||(n=((e=this._handleEnds)[0]+e[1])/2,i=this._updateInterval("all",o[0]-n),this._updateView(),i&&this._dispatchZoomAction(!1))},xD.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new hi(e,n),this._brushing=!0,this._brushStartTime=+new Date},xD.prototype._onBrushEnd=function(t){var e,n,i,r;this._brushing&&(e=this._displayables.brushRect,this._brushing=!1,e&&(e.attr("ignore",!0),n=e.shape,new Date-this._brushStartTime<200&&Math.abs(n.width)<5||(i=this._getViewExtent(),r=[0,100],this._range=Dl([Tl(n.x,i,r,!0),Tl(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1))))},xD.prototype._onBrush=function(t){this._brushing&&(Jt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},xD.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new fD({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.ignore=!1;var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},xD.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?vD:null,start:e[0],end:e[1]})},xD.prototype._findCoordRect=function(){var t,e,n,i,r=$I(this.dataZoomModel).infoList;return!e&&r.length&&(e=(t=r[0].model.coordinateSystem).getRect&&t.getRect()),e=e||{x:.2*(n=this.api.getWidth()),y:.2*(i=this.api.getHeight()),width:.6*n,height:.6*i}},xD.type="dataZoom.slider",xD);function xD(){var t=null!==dD&&dD.apply(this,arguments)||this;return t.type=xD.type,t._displayables={},t}function bD(t){return"vertical"===t?"ns-resize":"ew-resize"}lg.registerClass(_D);var wD=W,SD=Dl,MD=(TD.prototype.hostedBy=function(t){return this._dataZoomModel===t},TD.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},TD.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},TD.prototype.getTargetSeriesModels=function(){var r=[];return this.ecModel.eachSeries(function(t){var e,n,i;i=t.get("coordinateSystem"),0<=D(jI,i)&&(e=qI(this._dimName),(n=t.getReferringComponents(e,ou).models[0])&&this._axisIndex===n.componentIndex&&r.push(t))},this),r},TD.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},TD.prototype.getMinMaxSpan=function(){return A(this._minMaxSpan)},TD.prototype.calculateDataWindow=function(r){var o,a=this._dataExtent,s=this.getAxisModel().axis.scale,l=this._dataZoomModel.getRangePropMode(),u=[0,100],h=[],c=[];wD(["start","end"],function(t,e){var n=r[t],i=r[t+"Value"];"percent"===l[e]?(null==n&&(n=u[e]),i=s.parse(Tl(n,u,a))):(o=!0,n=Tl(i=null==i?a[e]:s.parse(i),a,u)),c[e]=i,h[e]=n}),SD(c),SD(h);var p=this._minMaxSpan;function t(t,e,n,i,r){var o=r?"Span":"ValueSpan";hD(0,t,n,"all",p["min"+o],p["max"+o]);for(var a=0;a<2;a++)e[a]=Tl(t[a],n,i,!0),r&&(e[a]=s.parse(e[a]))}return o?t(c,h,a,u,!1):t(h,c,u,a,!0),{valueWindow:c,percentWindow:h}},TD.prototype.reset=function(t){var e,n;t===this._dataZoomModel&&(e=this.getTargetSeriesModels(),this._dataExtent=function(t,e,n){var i=[1/0,-1/0];wD(n,function(t){Gx(i,t.getData(),e)});var r=t.getAxisModel(),o=Lx(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan(),n=this.calculateDataWindow(t.settledOption),this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel())},TD.prototype.filterData=function(t,e){var i,n,r,c;t===this._dataZoomModel&&(i=this._dimName,n=this.getTargetSeriesModels(),r=t.get("filterMode"),c=this._valueWindow,"none"!==r&&wD(n,function(n){var u=n.getData(),h=u.mapDimensionsAll(i);h.length&&("weakFilter"===r?u.filterSelf(function(t){for(var e,n,i,r=0;rc[1];if(a&&!s&&!l)return!0;a&&(i=!0),s&&(e=!0),l&&(n=!0)}return i&&e&&n}):wD(h,function(t){var e;"empty"===r?n.setData(u=u.map(t,function(t){return(e=t)>=c[0]&&e<=c[1]?t:NaN;var e})):((e={})[t]=c,u.selectRange(e))}),wD(h,function(t){u.setApproximateExtent(c,t)}))}))},TD.prototype._updateMinMaxSpan=function(){var i=this._minMaxSpan={},r=this._dataZoomModel,o=this._dataExtent;wD(["min","max"],function(t){var e=r.get(t+"Span"),n=r.get(t+"ValueSpan");null!=n&&(n=this.getAxisModel().axis.scale.parse(n)),null!=n?e=Tl(o[0]+n,o,[0,100],!0):null!=e&&(n=Tl(e,[0,100],o,!0)-o[0]),i[t+"Span"]=e,i[t+"ValueSpan"]=n},this)},TD.prototype._setAxisModel=function(){var t,e,n=this.getAxisModel(),i=this._percentWindow,r=this._valueWindow;i&&(t=Ll(r,[0,500]),t=Math.min(t,20),e=n.axis.scale.rawExtentInfo,0!==i[0]&&e.setDeterminedMinMax("min",+r[0].toFixed(t)),100!==i[1]&&e.setDeterminedMinMax("max",+r[1].toFixed(t)),e.freeze())},TD);function TD(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}Ev(Am.PROCESSOR.FILTER,{getTargetSeries:function(o){function t(r){o.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(t,e){var n=o.getComponent(qI(t),e);r(t,e,n,i)})})}t(function(t,e,n,i){n.__dzAxisProxy=null});var r=[];t(function(t,e,n,i){n.__dzAxisProxy||(n.__dzAxisProxy=new MD(t,e,i,o),r.push(n.__dzAxisProxy))});var e=ut();return W(r,function(t){W(t.getTargetSeriesModels(),function(t){e.set(t.uid,t)})}),e},overallReset:function(t,i){t.eachComponent("dataZoom",function(n){n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).reset(n)}),n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).filterData(n,i)})}),t.eachComponent("dataZoom",function(t){var e,n,i=t.findRepresentativeAxisProxy();i&&(e=i.getDataPercentWindow(),n=i.getDataValueWindow(),t.setCalculatedRange({start:e[0],end:e[1],startValue:n[0],endValue:n[1]}))})}}),zv("dataZoom",function(e,t){W(KI(t,e),function(t){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})});var CD,ID=(u(DD,CD=eD),DD.type="dataZoom.inside",DD.defaultOption=Yh(eD.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),DD);function DD(){var t=null!==CD&&CD.apply(this,arguments)||this;return t.type=DD.type,t}Gp.registerClass(ID);var AD="\0_ec_interaction_mutex";function kD(t,e){return LD(t)[e]}function LD(t){return t[AD]||(t[AD]={})}zv({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){});var PD,OD=(u(ND,PD=Et),ND.prototype.isDragging=function(){return this._dragging},ND.prototype.isPinching=function(){return this._pinching},ND.prototype.setPointerChecker=function(t){this.pointerChecker=t},ND.prototype.dispose=function(){this.disable()},ND.prototype._mousedownHandler=function(t){var e,n;te(t)||t.target&&t.target.draggable||(e=t.offsetX,n=t.offsetY,this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0))},ND.prototype._mousemoveHandler=function(t){var e,n,i,r,o,a;this._dragging&&zD("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!kD(this._zr,"globalPan")&&(e=t.offsetX,n=t.offsetY,o=e-(i=this._x),a=n-(r=this._y),this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&Jt(t.event),ED(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null}))},ND.prototype._mouseupHandler=function(t){te(t)||(this._dragging=!1)},ND.prototype._mousewheelHandler=function(t){var e,n,i=zD("zoomOnMouseWheel",t,this._opt),r=zD("moveOnMouseWheel",t,this._opt),o=t.wheelDelta,a=Math.abs(o),s=t.offsetX,l=t.offsetY;0!==o&&(i||r)&&(i&&(e=3d.getHeight()&&(l.position="top",r=!0),o=r?-5-n.height:f+8,i+n.width/2>d.getWidth()?(l.position=["100%",o],e.align="right"):i-n.width/2<0&&(l.position=[0,o],e.align="left"))}))},iA.prototype.updateView=function(t,e,n,i){W(this._features,function(t){t instanceof jD&&t.updateView&&t.updateView(t.model,e,n,i)})},iA.prototype.remove=function(e,n){W(this._features,function(t){t instanceof jD&&t.remove&&t.remove(e,n)}),this.group.removeAll()},iA.prototype.dispose=function(e,n){W(this._features,function(t){t instanceof jD&&t.dispose&&t.dispose(e,n)})},iA.type="toolbox",iA);function iA(){return null!==eA&&eA.apply(this,arguments)||this}lg.registerClass(nA);var rA,oA=(u(aA,rA=jD),aA.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType()?"svg":n.get("type",!0)||"png",o=e.getConnectedDataURL({type:r,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||v.browser.ie||v.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var a=atob(o.split(",")[1]),s=a.length,l=new Uint8Array(s);s--;)l[s]=a.charCodeAt(s);var u=new Blob([l]);window.navigator.msSaveOrOpenBlob(u,i+"."+r)}else{var h=n.get("lang"),c='';window.open().document.write(c)}else{var p=document.createElement("a");p.download=i+"."+r,p.target="_blank",p.href=o;var d=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});p.dispatchEvent(d)}},aA.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},aA);function aA(){return null!==rA&&rA.apply(this,arguments)||this}oA.prototype.unusable=!v.canvasSupported,KD("saveAsImage",oA);var sA,lA="__ec_magicType_stack__",uA=[["line","bar"],["stack"]],hA=(u(cA,sA=jD),cA.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return W(t.get("type"),function(t){e[t]&&(n[t]=e[t])}),n},cA.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},cA.prototype.onclick=function(t,e,u){var h,n,i,r,o,c=this.model,a=c.get(["seriesIndex",u]);pA[u]&&(h={series:[]},W(uA,function(t){0<=D(t,u)&&W(t,function(t){c.setIconStatus(t,"normal")})}),c.setIconStatus(u,"emphasis"),t.eachComponent({mainType:"series",query:null==a?null:{seriesIndex:a}},function(t){var e=t.subType,n=t.id,i=pA[u](e,n,t,c);i&&(P(i,t.option),h.series.push(i));var r=t.coordinateSystem;if(r&&"cartesian2d"===r.type&&("line"===u||"bar"===u)){var o=r.getAxesByScale("ordinal")[0];if(o){var a=o.dim+"Axis",s=t.getReferringComponents(a,ou).models[0].componentIndex;h[a]=h[a]||[];for(var l=0;l<=s;l++)h[a][s]=h[a][s]||{};h[a][s].boundaryGap="bar"===u}}}),"stack"===u&&(n=h.series,i=t.getLocale(["toolbox","magicType","title","tiled"]),r=t.getLocale(["toolbox","magicType","title"]),o=n&&n[0]&&n[0].stack===lA?x({stack:i},r):A(r)),e.dispatchAction({type:"changeMagicType",currentType:u,newOption:h,newTitle:o,featureName:"magicType"}))},cA);function cA(){return null!==sA&&sA.apply(this,arguments)||this}var pA={line:function(t,e,n,i){if("bar"===t)return x({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return x({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===lA;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),x({id:e,stack:r?"":lA},i.get(["option","stack"])||{},!0)}};zv({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),KD("magicType",hA);var dA=new Array(60).join("-"),fA="\t";function gA(t){var r,o,a,h,e=(r={},o=[],a=[],t.eachRawSeries(function(t){var e,n,i=t.coordinateSystem;!i||"cartesian2d"!==i.type&&"polar"!==i.type||"category"!==(e=i.getBaseAxis()).type?o.push(t):(n=e.dim+"_"+e.index,r[n]||(r[n]={categoryAxis:e,valueAxis:i.getOtherAxis(e),series:[]},a.push({axisDim:e.dim,axisIndex:e.index})),r[n].series.push(t))}),{seriesGroupByCategoryAxis:r,other:o,meta:a});return{value:C([(h=[],W(e.seriesGroupByCategoryAxis,function(t,e){var n=t.categoryAxis,i=t.valueAxis.dim,r=[" "].concat(U(t.series,function(t){return t.name})),o=[n.model.getCategories()];W(t.series,function(t){o.push(t.getRawData().mapArray(i,function(t){return t}))});for(var a=[r.join(fA)],s=0;sa.getWidth()||o<0||o>a.getHeight()))){var i,r,o,a,s=t._zr,l=t._covers,u=GA(t,e,n);if(!t._dragging)for(var h=0;ht[1]&&t.reverse(),t}function xk(t,e){return ru(t,e,{includeMainTypes:yk})}var bk={grid:function(t,i){var r=t.xAxisModels,o=t.yAxisModels,e=t.gridModels,n=ut(),a={},s={};(r||o||e)&&(W(r,function(t){var e=t.axis.grid.model;n.set(e.id,e),a[e.id]=!0}),W(o,function(t){var e=t.axis.grid.model;n.set(e.id,e),s[e.id]=!0}),W(e,function(t){n.set(t.id,t),a[t.id]=!0,s[t.id]=!0}),n.each(function(t){var e=t.coordinateSystem,n=[];W(e.getCartesians(),function(t,e){(0<=D(r,t.getAxis("x").model)||0<=D(o,t.getAxis("y").model))&&n.push(t)}),i.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:n[0],coordSyses:n,getPanelRect:Sk.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,n){W(t.geoModels,function(t){var e=t.coordinateSystem;n.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:e,coordSyses:[e],getPanelRect:Sk.geo})})}},wk=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],Sk={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(np(t)),e}},Mk={lineX:R(Tk,0),lineY:R(Tk,1),rect:function(t,e,n){var i=e[gk[t]]([n[0][0],n[1][0]]),r=e[gk[t]]([n[0][1],n[1][1]]),o=[_k([i[0],r[0]]),_k([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(n,i,t){var r=[[1/0,-1/0],[1/0,-1/0]];return{values:U(t,function(t){var e=i[gk[n]](t);return r[0][0]=Math.min(r[0][0],e[0]),r[1][0]=Math.min(r[1][0],e[1]),r[0][1]=Math.max(r[0][1],e[0]),r[1][1]=Math.max(r[1][1],e[1]),e}),xyMinMax:r}}};function Tk(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=_k(U([0,1],function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))})),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var Ck={lineX:R(Ik,0),lineY:R(Ik,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,n,i){return U(t,function(t,e){return[t[0]-i[0]*n[e][0],t[1]-i[1]*n[e][1]]})}};function Ik(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function Dk(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var Ak=W,kk=nu();function Lk(t){var e=kk(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var Pk,Ok=(u(Nk,Pk=eD),Nk.type="dataZoom.select",Nk);function Nk(){var t=null!==Pk&&Pk.apply(this,arguments)||this;return t.type=Nk.type,t}Gp.registerClass(Ok);var Rk,Ek=(u(zk,Rk=oD),zk.type="dataZoom.select",zk);function zk(){var t=null!==Rk&&Rk.apply(this,arguments)||this;return t.type=zk.type,t}lg.registerClass(Ek);var Bk,Vk=W,Fk=Wl+"toolbox-dataZoom_",Hk=(u(Gk,Bk=jD),Gk.prototype.render=function(t,e,n,i){var r;this.brushController||(this.brushController=new NA(n.getZr()),this.brushController.on("brush",N(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new mk(Xk(t),e,{include:["grid"]}).makePanelOpts(r,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"});n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}(t,e,this,i,n),r=e,t.setIconStatus("back",1=c&&p<=e+1){for(var n=[],i=0;i=c&&p<=o+1)return function(t){for(var e=0,n=t.length,i=0,r=0;e\n\r<"))},EL)),t.Axis=_b,t.List=__,t.Model=Gh,t.PRIORITY=Am,t.color=an,t.connect=function(e){var t;return E(e)&&(t=e,e=null,Cm(t,function(t){null!=t.group&&(e=t.group)}),e=e||"g_"+Av++,Cm(t,function(t){t.group=e})),Iv[e]=!0,e},t.dataTool={},t.dependencies={zrender:"5.0.0-alpha.1"},t.disConnect=Lv,t.disconnect=Pv,t.dispose=function(t){"string"==typeof t?t=Cv[t]:t instanceof uv||(t=Ov(t)),t instanceof uv&&!t.isDisposed()&&t.dispose()},t.env=v,t.extendChartView=function(t){return dg.extend(t)},t.extendComponentModel=Gv,t.extendComponentView=Wv,t.extendSeriesModel=function(t){return Jf.extend(t)},t.format=Mp,t.getCoordinateSystemDimensions=function(t){var e=Pd.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=Ov,t.getInstanceById=function(t){return Cv[t]},t.getMap=function(t){var e=cy(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=Mb,t.helper=eb,t.init=function(t,e,n){var i=Ov(t);if(i)return i;var r=new uv(t,e,n);return r.id="ec_"+Dv++,Cv[r.id]=r,lu(t,kv,r.id),rv(r),r},t.matrix=ti,t.number=Hl,t.parseGeoJSON=lb,t.parseGeoJson=wb,t.registerAction=zv,t.registerCoordinateSystem=function(t,e){Pd.register(t,e)},t.registerLayout=Bv,t.registerLoading=Hv,t.registerLocale=Jh,t.registerMap=function(t,e,n){hy(t,e,n)},t.registerPostUpdate=function(t){wv.push(t)},t.registerPreprocessor=Rv,t.registerProcessor=Ev,t.registerTheme=Nv,t.registerTransform=Uv,t.registerVisual=Vv,t.setCanvasCreator=function(t){g("createCanvas",t)},t.throttle=Sg,t.time=Pc,t.util=Sb,t.vector=Pt,t.version="5.0.0-alpha.1",t.zrender=Sl,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).echarts={})}(this,function(t){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function u(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var e=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.weChat=!1},_=new function(){this.browser=new e,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(_.wxa=!0,_.canvasSupported=!0,_.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(_.worker=!0,_.canvasSupported=!0):"undefined"==typeof navigator?(_.node=!0,_.canvasSupported=!0,_.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1]);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&11<=+n.version),e.domSupported="undefined"!=typeof document}(navigator.userAgent,_);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},h=Object.prototype.toString,n=Array.prototype,a=n.forEach,c=n.filter,r=n.slice,p=n.map,o=function(){}.constructor,d=o?o.prototype:null,f={};function g(t,e){f[t]=e}var y=2311;function m(){return y++}function v(){for(var t=[],e=0;e>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",r[u]+":0",i[1-l]+":auto",r[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(a)return a(t,n,i),!0}return!1}function Wt(t){return"CANVAS"===t.nodeName.toUpperCase()}var Ut="undefined"!=typeof window&&!!window.addEventListener,Zt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xt=[];function Yt(t,e,n,i){return n=n||{},i||!_.canvasSupported?jt(t,e,n):_.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):jt(t,e,n),n}function jt(t,e,n){if(_.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Wt(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Gt(Xt,t,i,r))return n.zrX=Xt[0],void(n.zrY=Xt[1])}n.zrX=n.zrY=0}function qt(t){return t||window.event}function Kt(t,e,n){if(null!=(e=qt(e)).zrX)return e;var i,r,o=e.type;o&&0<=o.indexOf("touch")?(i="touchend"!==o?e.targetTouches[0]:e.changedTouches[0])&&Yt(t,i,e,n):(Yt(t,e,e,n),r=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;return null!=n&&null!=i?3*(0!==i?Math.abs(i):Math.abs(n))*(0i.getWidth()||n<0||n>i.getHeight()}W(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(a){pe.prototype[a]=function(t){var e,n,i=t.zrX,r=t.zrY,o=fe(this,i,r);if("mouseup"===a&&o||(n=(e=this.findHover(i,r)).target),"mousedown"===a)this._downEl=n,this._downPoint=[t.zrX,t.zrY],this._upEl=n;else if("mouseup"===a)this._upEl=n;else if("click"===a){if(this._downEl!==this._upEl||!this._downPoint||4>>1])<0?l=o:s=1+o;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function be(f,g){var a,s,y=ye,l=0,m=(f.length,[]);function e(t){var e=a[t],n=s[t],i=a[t+1],r=s[t+1];s[t]=n+r,t===l-3&&(a[t+1]=a[t+2],s[t+1]=s[t+2]),l--;var o=xe(f[i],f,e,n,0,g);e+=o,0!=(n-=o)&&0!==(r=_e(f[e+n-1],f,i,r,r-1,g))&&(n<=r?function(t,e,n,i){var r=0;for(r=0;rs[t+1])break;e(t)}},forceMergeRuns:function(){for(;1>=1;return t+e}(r);do{(o=me(t,n,i,e))=this._maxSize&&0>4|(3840&i)>>8,240&i|(240&i)>>4,15&i|(15&i)<<4,1),je(t,e),e):void Ue(e,0,0,0,1):7===r.length?0<=(i=parseInt(r.substr(1),16))&&i<=16777215?(Ue(e,(16711680&i)>>16,(65280&i)>>8,255&i,1),je(t,e),e):void Ue(e,0,0,0,1):void 0;var o=r.indexOf("("),a=r.indexOf(")");if(-1!==o&&a+1===r.length){var s=r.substr(0,o),l=r.substr(o+1,a-(o+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Ue(e,0,0,0,1);u=He(l.pop());case"rgb":return 3!==l.length?void Ue(e,0,0,0,1):(Ue(e,Fe(l[0]),Fe(l[1]),Fe(l[2]),u),je(t,e),e);case"hsla":return 4!==l.length?void Ue(e,0,0,0,1):(l[3]=He(l[3]),Ke(l,e),je(t,e),e);case"hsl":return 3!==l.length?void Ue(e,0,0,0,1):(Ke(l,e),je(t,e),e);default:return}}Ue(e,0,0,0,1)}}function Ke(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=He(t[1]),r=He(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Ue(e=e||[],Be(255*Ge(a,o,n+1/3)),Be(255*Ge(a,o,n)),Be(255*Ge(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function $e(t,e){var n=qe(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,255=this.maxTime?this.maxTime=t:this._needsSort=!0;var n,i=this.keyframes,r=i.length;if(this.interpolable)if(O(e)){var o,a=O((n=e)&&n[0])?2:1;if(0e);u++);u=Math.min(u-1,o-2)}var h,c,p,d,f,g,y,m,v,_,x=r[u+1],b=r[u];b&&x&&(this._lastFrame=u,this._lastFramePercent=e,0!=(h=x.percent-b.percent)&&(c=(e-b.percent)/h,p=n?this._additiveValue:l?yn:t[a],(0=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},xi.prototype.clone=function(){return new xi(this.x,this.y,this.width,this.height)},xi.prototype.copy=function(t){xi.copy(this,t)},xi.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},xi.create=function(t){return new xi(t.x,t.y,t.width,t.height)},xi.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},xi.applyTransform=function(t,e,n){if(n){if(n[1]<1e-5&&-1e-5this._ux||jr(e-this._yi)>this._uy||this._len<5;return this.addData(Er.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},Qr.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(Er.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},Qr.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(Er.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},Qr.prototype.arc=function(t,e,n,i,r,o){var a=r-i;return r=i+a,this.addData(Er.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=Zr(r)*n+t,this._yi=Xr(r)*n+e,this},Qr.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},Qr.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Er.R,t,e,n,i),this},Qr.prototype.closePath=function(){this.addData(Er.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},Qr.prototype.fill=function(t){t&&t.fill(),this.toStatic()},Qr.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},Qr.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;hn||jr(g)>i||c===e-1)&&(d=Math.sqrt(D*D+g*g),r=f,o=v);break;case Er.C:var y=t[c++],m=t[c++],f=t[c++],v=t[c++],_=t[c++],x=t[c++],d=function(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=dr(t,n,r,a,f),y=dr(e,i,o,s,f),m=g-u,v=y-h;c+=Math.sqrt(m*m+v*v),u=g,h=y}return c}(r,o,y,m,f,v,_,x,10),r=_,o=x;break;case Er.Q:d=function(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=vr(t,n,r,p),f=vr(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}(r,o,y=t[c++],m=t[c++],f=t[c++],v=t[c++],10),r=f,o=v;break;case Er.A:var b=t[c++],w=t[c++],S=t[c++],M=t[c++],C=t[c++],T=t[c++],I=T+C;c+=1,t[c++],1===c&&(a=Zr(C)*S+b,s=Xr(C)*M+w),d=Ur(S,M)*Wr(qr,Math.abs(T)),r=Zr(I)*S+b,o=Xr(I)*M+w;break;case Er.R:a=r=t[c++],s=o=t[c++],d=2*t[c++]+2*t[c++];break;case Er.Z:var D=a-r,g=s-o;d=Math.sqrt(D*D+g*g),r=a,o=s}0<=d&&(u+=l[h++]=d)}return this._pathLen=u},Qr.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var m=0;mc||jr(s-o)>p||m===d-1){if(f){if(u=so[i=0]+t&&a<=so[1]+t?c:0}(r=o?(u=i,i=eo(r),eo(u)):(i=eo(i),eo(r)))Math.PI/2&&f<1.5*Math.PI&&(c=-c),p+=c))}return p}(f,g,m,v,v+_,x,S,r);l=Math.cos(v+_)*y+f,u=Math.sin(v+_)*m+g;break;case ro.R:h=l=t[p++],c=u=t[p++];if(b=h+t[p++],w=c+t[p++],n){if(Jr(h,c,b,c,e,i,r)||Jr(b,c,b,w,e,i,r)||Jr(b,w,h,w,e,i,r)||Jr(h,w,h,c,e,i,r))return!0}else s+=io(b,c,b,w,i,r),s+=io(h,w,h,c,i,r);break;case ro.Z:if(n){if(Jr(l,u,h,c,e,i,r))return!0}else s+=io(l,u,h,c,i,r);l=h,u=c}}return n||(o=u,a=c,Math.abs(o-a)=e.maxIterations){t+=e.ellipsis;break}var a=0===o?function(t,e,n,i){for(var r=0,o=0,a=t.length;oo){0i.width&&(o=e.split("\n"),g=!0),i.accumWidth=u):(h=ts(e,f,i.width,i.breakAll,i.accumWidth),i.accumWidth=h.accumWidth+l,a=h.linesWidths,o=h.lines)):o=e.split("\n");for(var y=0;yi.len()&&(u=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Cl(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?t.replace(/^\s+|\s+$/g,"").match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Tl(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Il(t){return t.sort(function(t,e){return t-e}),t}function Dl(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Al(t){var e=t.toString(),n=e.indexOf("e");if(0h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function Pl(t){var e=2*Math.PI;return(t%e+e)%e}function Ol(t){return-SlMath.abs(o[1])?0"'])/g,hp={"&":"&","<":"<",">":">",'"':""","'":"'"};function cp(t){return null==t?"":(t+"").replace(up,function(t,e){return hp[e]})}function pp(t,e,n){return(n?t:''+cp(t)+"")+(e?'':"")+cp(e)+(e?"":"")}function dp(t,e){return"{"+t+(null==e?"":e)+"}"}var fp=["a","b","c","d","e","f","g"];function gp(t,e,n){N(e)||(e=[e]);var i=e.length;if(!i)return"";if(e[0].axisType&&0<=e[0].axisType.indexOf("time"))return pc(Nl(e[0].data[e[0].axisIndex]),t);for(var r=e[0].$vars||[],o=0;o':'':{renderMode:r,content:"{marker"+o+"|} ",style:{color:i}}:""}function mp(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Nl(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",hc(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",hc(s,2)).replace("d",s).replace("hh",hc(l,2)).replace("h",l).replace("mm",hc(u,2)).replace("m",u).replace("ss",hc(h,2)).replace("s",h).replace("SSS",hc(c,3))}function vp(t,e){var n;"_blank"===e||"blank"===e?((n=window.open()).opener=null,n.location.href=t):window.open(t,e)}var _p=Object.freeze({__proto__:null,addCommas:ap,toCamelCase:sp,normalizeCssArray:lp,encodeHTML:cp,concatTooltipHtml:pp,formatTpl:gp,formatTplSimple:function(n,t,i){return W(t,function(t,e){n=n.replace("{"+e+"}",i?cp(t):t)}),n},getTooltipMarker:yp,formatTime:mp,capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},windowOpen:vp,truncateText:Za,getTextRect:function(t,e,n,i,r,o,a,s){return mh(),new rs({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),xp=W,bp=["left","right","top","bottom","width","height"],wp=[["width","left","right"],["height","top","bottom"]];function Sp(u,h,c,p,d){var f=0,g=0;null==p&&(p=1/0),null==d&&(d=1/0);var y=0;h.eachChild(function(t,e){var n,i,r,o,a=t.getBoundingRect(),s=h.childAt(e+1),l=s&&s.getBoundingRect();y="horizontal"===u?(n=a.width+(l?-l.x+a.x:0),p<(i=f+n)||t.newline?(f=0,i=n,g+=y+c,a.height):Math.max(y,a.height)):(r=a.height+(l?-l.y+a.y:0),d<(o=g+r)||t.newline?(f+=y+c,g=0,o=r,a.width):Math.max(y,a.width)),t.newline||(t.x=f,t.y=g,t.markRedraw(),"horizontal"===u?f=i+c:g=o+c)})}var Mp=Sp;D(Sp,"vertical"),D(Sp,"horizontal");function Cp(t,e,n){n=lp(n||0);var i=e.width,r=e.height,o=Cl(t.left,i),a=Cl(t.top,r),s=Cl(t.right,i),l=Cl(t.bottom,r),u=Cl(t.width,i),h=Cl(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(i/re)return t[i];return t[n-1]}(s,n):a;if((l=l||a)&&l.length){var u=l[r];return t&&(o[t]=u),i.colorIdx=(r+1)%l.length,u}},Up);function Up(){}var Zp=lt(["tooltip","label","itemName","itemId","seriesName"]),Xp="original",Yp="arrayRows",jp="objectRows",qp="keyedColumns",Kp="typedArray",$p="unknown",Qp="column",Jp="row",td=(ed.seriesDataToSource=function(t){return new ed({data:t,sourceFormat:G(t)?Kp:Xp})},ed);function ed(t){this.data=t.data||(t.sourceFormat===qp?{}:[]),this.sourceFormat=t.sourceFormat||$p,this.seriesLayoutBy=t.seriesLayoutBy||Qp,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectCount=t.dimensionsDetectCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption}var nd={Must:1,Might:2,Not:3},id=nu();function rd(t,e,n,i){var r=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:sd(r),startIndex:a,dimensionsDetectCount:o};{var s,l;e===Yp?(s=t,"auto"===i||null==i?ld(function(t){null!=t&&"-"!==t&&(z(t)?null==a&&(a=1):a=0)},n,s,10):a=V(i)?i:i?1:0,r||1!==a||(r=[],ld(function(t,e){r[e]=null!=t?t+"":""},n,s,1/0)),o=r?r.length:n===Jp?s.length:s[0]?s[0].length:null):e===jp?r=r||function(t){var e,n=0;for(;n'+o+cp(s.displayName||"-")+"":"")+''+cp("ordinal"===n?t+"":"time"===n?h?"":mp("yyyy/MM/dd hh:mm:ss",t):ap(t))+"")&&u.push('
'+a+"
"),d&&(f[i]=y,++g))}o.length?W(o,function(t){e(mf(m,r,t),t)}):W(t,e);var n=l&&d?"\n":"",i=n+u.join(n||"");return{renderMode:c,content:i,style:f}}(a):n(i?mf(m,r,o[0]):s?a[0]:a),v=d?u.content:1"+u.content+"":''+u.content+"",_=p.seriesIndex+"at"+g,x=yp({color:y,type:"item",renderMode:c,markerId:_});f[_]=y,++g;var b=m.getName(r),w=this.name;return Ql(this)||(w=""),w=w?cp(w)+(h?" ":e):"",y=z(x)?x:x.content,{html:d?h?""+y+w+": "+v:w+(w?"\n":"")+y+(b?cp(b)+": "+v:v):(w=w?h?''+w+"":'
'+w+"
":"",h?'
'+y+w+v+"
":w+'
'+y+(b?''+cp(b)+""+v:v)+"
"),markers:f}},qf.prototype.isAnimationEnabled=function(){if(_.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},qf.prototype.restoreData=function(){this.dataTask.dirty()},qf.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return Wp.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},qf.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},qf.prototype.getProgressive=function(){return this.get("progressive")},qf.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},qf.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},qf.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;re.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function tg(e,n){W(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,D(eg,n))})}function eg(t){var e=ng(t);e&&e.setOutputEnd(this.count())}function ng(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i,r=n.currentTask;return!r||(i=r.agentStubMap)&&(r=i.get(t.uid)),r}}M(jf,_f),M(jf,Wp),fu(jf,zp);var ig=(rg.prototype.init=function(t,e){},rg.prototype.render=function(t,e,n,i){},rg.prototype.dispose=function(t,e){},rg.prototype.updateView=function(t,e,n,i){},rg.prototype.updateLayout=function(t,e,n,i){},rg.prototype.updateVisual=function(t,e,n,i){},rg.prototype.blurSeries=function(t,e){},rg);function rg(){this.group=new Vo,this.uid=Zh("viewComponent")}function og(){var s=nu();return function(t){var e=s(t),n=t.pipelineContext,i=e.large,r=e.progressiveRender,o=e.large=n&&n.large,a=e.progressiveRender=n&&n.progressiveRender;return!!(i^o||r^a)&&"reset"}}du(ig),vu(ig,{registerWhenExtend:!0});var ag=nu(),sg=og(),lg=(ug.prototype.init=function(t,e){},ug.prototype.render=function(t,e,n,i){},ug.prototype.highlight=function(t,e,n,i){cg(t.getData(),i,"emphasis")},ug.prototype.downplay=function(t,e,n,i){cg(t.getData(),i,"normal")},ug.prototype.remove=function(t,e){this.group.removeAll()},ug.prototype.dispose=function(t,e){},ug.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},ug.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},ug.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},ug.markUpdateMethod=function(t,e){ag(t).updateMethod=e},ug.protoInitialize=void(ug.prototype.type="chart"),ug);function ug(){this.group=new Vo,this.uid=Zh("viewChart"),this.renderTask=bf({plan:pg,reset:dg}),this.renderTask.context={view:this}}function hg(t,e,n){t&&("emphasis"===e?eh:nh)(t,n)}function cg(e,t,n){var i,r,o=eu(e,t),a=t&&null!=t.highlightKey?(i=t.highlightKey,null==(r=Cu[i])&&Mu<=32&&(r=Cu[i]=Mu++),r):null;null!=o?W(Ul(o),function(t){hg(e.getItemGraphicEl(t),n,a)}):e.eachItemGraphicEl(function(t){hg(t,n,a)})}function pg(t){return sg(t.model)}function dg(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&ag(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),fg[l]}du(lg),vu(lg,{registerWhenExtend:!0});var fg={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},gg="\0__throttleOriginMethod",yg="\0__throttleRate",mg="\0__throttleType";function vg(t,r,o){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}r=r||0;function e(){for(var t=[],e=0;ed?n+=y(m("data.partialData"),{displayCnt:d}):n+=m("data.allData");for(var a,s,l=[],u=0;un.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},Pg.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},Pg.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},Pg.prototype.restorePipelines=function(t){var i=this,r=i._pipelineMap=lt();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;r.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},Pg.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.ecInstance.getModel(),r=this.api;W(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});t.reset&&this._createSeriesStageTask(t,e,i,r),t.overallReset&&this._createOverallStageTask(t,e,i,r)},this)},Pg.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},Pg.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},Pg.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},Pg.prototype._performStageTasks=function(t,l,u,h){h=h||{};var c=!1,p=this;function d(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}W(t,function(i,t){var e,n,r,o,a,s;h.visualType&&h.visualType!==i.visualType||(n=(e=p._stageTaskMap.get(i.uid)).seriesTaskMap,(r=e.overallTask)?((a=r.agentStubMap).each(function(t){d(h,t)&&(t.dirty(),o=!0)}),o&&r.dirty(),p.updatePayload(r,u),s=p.getPerformArgs(r,h.block),a.each(function(t){t.perform(s)}),r.perform(s)&&(c=!0)):n&&n.each(function(t,e){d(h,t)&&t.dirty();var n=p.getPerformArgs(t,h.block);n.skip=!i.performRawSeries&&l.isSeriesFiltered(t.context.model),p.updatePayload(t,u),t.perform(n)&&(c=!0)}))}),this.unfinished=c||this.unfinished},Pg.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},Pg.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})},Pg.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},Pg.prototype._createSeriesStageTask=function(i,t,r,o){var a=this,s=t.seriesTaskMap||(t.seriesTaskMap=lt()),e=i.seriesType,n=i.getTargetSeries;function l(t){var e=t.uid,n=s.get(e)||s.set(e,bf({plan:zg,reset:Bg,count:Hg}));n.context={model:t,ecModel:r,api:o,useClearVisual:i.isVisual&&!i.isLayout,plan:i.plan,reset:i.reset,scheduler:a},a._pipe(t,n)}i.createOnAllSeries?r.eachRawSeries(l):e?r.eachRawSeriesByType(e,l):n&&n(r,o).each(l);var u=a._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})},Pg.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||bf({reset:Og});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap=o.agentStubMap||lt(),s=t.seriesType,l=t.getTargetSeries,u=!0;function h(t){var e=t.uid,n=a.get(e);n||(n=a.set(e,bf({reset:Rg,onDirty:Eg})),o.dirty()),n.context={model:t,overallProgress:u},n.agent=o,n.__block=u,r._pipe(t,n)}s?n.eachRawSeriesByType(s,h):l?l(n,i).each(h):(u=!1,W(n.getSeries(),h));var c=r._pipelineMap;a.each(function(t,e){c.get(e)||(t.dispose(),o.dirty(),a.removeKey(e))})},Pg.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);i.head||(i.head=e),i.tail&&i.tail.pipe(e),(i.tail=e).__idxInPipeline=i.count++,e.__pipeline=i},Pg.wrapStageHandler=function(t,e){return E(t)&&(t={overallReset:t,seriesType:function(t){Gg=null;try{t(Wg,Ug)}catch(t){}return Gg}(t)}),t.uid=Zh("stageHandler"),e&&(t.visualType=e),t},Pg);function Pg(t,e,n,i){this._stageTaskMap=lt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function Og(t){t.overallReset(t.ecModel,t.api,t.payload)}function Rg(t){return t.overallProgress&&Ng}function Ng(){this.agent.dirty(),this.getDownstream().dirty()}function Eg(){this.agent&&this.agent.dirty()}function zg(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Bg(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Ul(t.reset(t.model,t.ecModel,t.api,t.payload));return 1r[0]){for(l=0;lt);l++);s=i[r[l]]}r.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.__painter=this}else v("Layer of zlevel "+t+" is not valid")},xm.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,r.connectedBackgroundColor&&f.painter.setBackgroundColor(r.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()}return r.connectedBackgroundColor&&f.add(new ia({shape:{x:0,y:0,width:t,height:e},style:{fill:r.connectedBackgroundColor}})),wm(d,function(t){var e=new Uo({style:{x:t.left*n-u,y:t.top*n-h,image:t.dom}});f.add(e)}),f.refreshImmediately(),i.toDataURL("image/"+(r&&r.type||"png"))}return this.getDataURL(r)}},av.prototype.convertToPixel=function(t,e){return Hm(this,"convertToPixel",t,e)},av.prototype.convertFromPixel=function(t,e){return Hm(this,"convertFromPixel",t,e)},av.prototype.containPixel=function(t,r){var o;if(!this._disposed)return W(ru(this._model,t),function(t,i){0<=i.indexOf("Models")&&W(t,function(t){var e,n=t.coordinateSystem;n&&n.containPoint?o=o||!!n.containPoint(r):"seriesModels"===i&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(o=o||e.containPoint(r,t))},this)},this),!!o;dv(this.id)},av.prototype.getVisual=function(t,e){var n=ru(this._model,t,{defaultMainType:"series"}),i=n.seriesModel,r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,o,e):dy(r,e)},av.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},av.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},av.prototype._initEvents=function(){var t,e,p=this;wm(pv,function(c){function t(t){var e,n,i,r,o,a,s=p.getModel(),l=t.target,u="globalout"===c,h=l&&Su(l);u?n={}:h&&null!=h.dataIndex?n=(e=h.dataModel||s.getSeriesByIndex(h.seriesIndex))&&e.getDataParams(h.dataIndex,h.dataType)||{}:l&&h.eventData&&(n=L({},h.eventData)),n&&(i=n.componentType,r=n.componentIndex,"markLine"!==i&&"markPoint"!==i&&"markArea"!==i||(i="series",r=n.seriesIndex),a=(o=i&&null!=r&&s.getComponent(i,r))&&p["series"===o.mainType?"_chartsMap":"_componentsMap"][o.__viewId],n.event=t,n.type=c,p._$eventProcessor.eventInfo={targetEl:l,packedEvent:n,model:o,view:a},p.trigger(c,n))}t.zrEventfulCallAtLast=!0,p._zr.on(c,t,p)}),wm(gv,function(t,e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),wm(["selectchanged"],function(e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),t=this._messageCenter,e=this,t.on("selectchanged",function(t){t.isFromClick?(Zy("map","selectchanged",e,t),Zy("pie","selectchanged",e,t)):"select"===t.fromAction?(Zy("map","selected",e,t),Zy("pie","selected",e,t)):"unselect"===t.fromAction&&(Zy("map","unselected",e,t),Zy("pie","unselected",e,t))})},av.prototype.isDisposed=function(){return this._disposed},av.prototype.clear=function(){this._disposed?dv(this.id):this.setOption({series:[]},!0)},av.prototype.dispose=function(){var e,n;this._disposed?dv(this.id):(this._disposed=!0,lu(this.getDom(),Tv,""),e=this._api,n=this._model,wm(this._componentsViews,function(t){t.dispose(n,e)}),wm(this._chartsViews,function(t){t.dispose(n,e)}),this._zr.dispose(),delete wv[this.id])},av.prototype.resize=function(t){var e,n,i;this._disposed?dv(this.id):(this._zr.resize(t),e=this._model,this._loadingFX&&this._loadingFX.resize(),e&&(n=e.resetOption("media"),i=t&&t.silent,this[Tm]=!0,n&&zm(this),Fm.update.call(this,{type:"resize",animation:{duration:0}}),this[Tm]=!1,Um.call(this,i),Zm.call(this,i)))},av.prototype.showLoading=function(t,e){var n,i;this._disposed?dv(this.id):(Mm(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),bv[t]&&(n=bv[t](this._api,e),i=this._zr,this._loadingFX=n,i.add(n)))},av.prototype.hideLoading=function(){this._disposed?dv(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},av.prototype.makeActionFromEvent=function(t){var e=L({},t);return e.type=gv[t.type],e},av.prototype.dispatchAction=function(t,e){var n,i;this._disposed?dv(this.id):(Mm(e)||(e={silent:!!e}),fv[t.type]&&this._model&&(this[Tm]?this._pendingActions.push(t):(n=e.silent,Wm.call(this,t,n),(i=e.flush)?this._zr.flush():!1!==i&&_.browser.weChat&&this._throttledZrFlush(),Um.call(this,n),Zm.call(this,n))))},av.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},av.prototype.appendData=function(t){var e;this._disposed?dv(this.id):(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},av.internalField=(zm=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Bm(t,!0),Bm(t,!1),e.plan()},Bm=function(t,o){for(var a=t._model,s=t._scheduler,l=o?t._componentsViews:t._chartsViews,u=o?t._componentsMap:t._chartsMap,h=t._zr,c=t._api,e=0;el.get("hoverLayerThreshold")&&!_.node&&l.eachSeries(function(t){var e;t.preventUsingHoverLayer||(e=n._chartsMap[t.__viewId]).__alive&&e.group.traverse(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),Ag(i._zr.dom,t)},Qm=function(e,n){wm(vv,function(t){t(e,n)})},ev=function(t){t[Dm]=!0,t.getZr().wakeUp()},nv=function(t){t[Dm]&&(t.getZr().storage.traverse(function(t){Yc(t)||sv(t)}),t[Dm]=!1)},Jm=function(n){return u(t,e=Md),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){eh(t,e),ev(n)},t.prototype.leaveEmphasis=function(t,e){nh(t,e),ev(n)},t.prototype.enterBlur=function(t){ih(t),ev(n)},t.prototype.leaveBlur=function(t){rh(t),ev(n)},t.prototype.enterSelect=function(t){oh(t),ev(n)},t.prototype.leaveSelect=function(t){ah(t),ev(n)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(tv=function(i){function r(t,e){for(var n=0;n_[1]&&(_[1]=v)}e&&(this._nameList[p]=e[d])}this._rawCount=this._count=l,this._extent={},Yv(this)},y_.prototype._initDataFromProvider=function(t,e){if(!(e<=t)){for(var n,i=this._chunkSize,r=this._rawData,o=this._storage,a=this.dimensions,s=a.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,p=this._nameRepeatCount={},d=this._chunkCount,f=0;fA[1]&&(A[1]=D)}r.pure||(v=u[m],y&&null==v&&(null!=y.name?u[m]=v=y.name:null==n||(x=o[_=a[n]][S])&&(v=x[M],(b=l[_].ordinalMeta)&&b.categories.length&&(v=b.categories[v]))),null==(w=null==y?null:y.id)&&null!=v&&(p[v]=p[v]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},y_.prototype.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var r=1/0,o=-1,a=0,s=0,l=this.count();st[C][1])&&(M=!1)}M&&(o[a++]=this.getRawIndex(y))}return aS[1]&&(S[1]=w)}}}return a},y_.prototype.downSample=function(t,e,n,i){for(var r=e_(this,[t]),o=r._storage,a=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=this._chunkSize,c=r._rawExtent[t],p=new(qv(this))(u),d=0,f=0;fc[1]&&(c[1]=_),p[d++]=x}return r._count=d,r._indices=p,r.getRawIndex=Qv,r},y_.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Gh(n,e,e&&e.ecModel)},y_.prototype.diff=function(e){var n=this;return new Gv(e?e.getIndices():[],this.getIndices(),function(t){return Jv(e,t)},function(t){return Jv(n,t)})},y_.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},y_.prototype.setVisual=function(t,e){this._visual=this._visual||{},s_(t)?L(this._visual,t):this._visual[t]=e},y_.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},y_.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t],r=(i=i||(n[t]={}))[e];return r||(N(r=this.getVisual(e))?r=r.slice():s_(r)&&(r=L({},r)),i[e]=r),r},y_.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,s_(e)?L(i,e):i[e]=n},y_.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},y_.prototype.setLayout=function(t,e){if(s_(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},y_.prototype.getLayout=function(t){return this._layout[t]},y_.prototype.getItemLayout=function(t){return this._itemLayouts[t]},y_.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?L(this._itemLayouts[t]||{},e):e},y_.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},y_.prototype.setItemGraphicEl=function(t,e){var n,i=this.hostModel;e&&((n=Su(e)).dataIndex=t,n.dataType=this.dataType,n.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(r_,e)),this._graphicEls[t]=e},y_.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},y_.prototype.eachItemGraphicEl=function(n,i){W(this._graphicEls,function(t,e){t&&n&&n.call(i,t,e)})},y_.prototype.cloneShallow=function(t){if((t=t||new y_(U(this.dimensions,this.getDimensionInfo,this),this.hostModel))._storage=this._storage,o_(t,this),this._indices){var e=this._indices.constructor;if(e===Array){var n=this._indices.length;t._indices=new e(n);for(var i=0;ie[1]&&(e[1]=t[1])},A_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},A_.prototype.getExtent=function(){return this._extent.slice()},A_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},A_.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},A_.prototype.isBlank=function(){return this._isBlank},A_.prototype.setBlank=function(t){this._isBlank=t},A_);function A_(t){this._setting=t||{},this._extent=[1/0,-1/0]}vu(D_,{registerWhenExtend:!0});var k_=(L_.createByAxisModel=function(t){var e=t.option,n=e.data,i=n&&U(n,P_);return new L_({categories:i,needCollect:!i,deduplication:!1!==e.dedplication})},L_.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},L_.prototype.parseAndCollect=function(t){var e=this._needCollect;if("string"!=typeof t&&!e)return t;if(e&&!this._deduplication)return n=this.categories.length,this.categories[n]=t,n;var n,i=this._getOrCreateMap();return null==(n=i.get(t))&&(e?(n=this.categories.length,this.categories[n]=t,i.set(t,n)):n=NaN),n},L_.prototype._getOrCreateMap=function(){return this._map||(this._map=lt(this.categories))},L_);function L_(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}function P_(t){return F(t)&&null!=t.value?t.value:t+""}var O_=Tl;function R_(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=Bl(o/e,!0);null!=n&&as[1]&&(s[0]=s[1]),r}function N_(t){return Al(t)+2}function E_(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function z_(t,e){return t>=e[0]&&t<=e[1]}function B_(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function V_(t,e){return t*(e[1]-e[0])+e[0]}var F_,H_=(u(G_,F_=D_),G_.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},G_.prototype.contain=function(t){return z_(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},G_.prototype.normalize=function(t){return B_(t=this.getCategoryIndex(this.parse(t)),this._extent)},G_.prototype.scale=function(t){return t=this.getCategoryIndex(t),Math.round(V_(t,this._extent))},G_.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:this.getCategoryIndex(n)}),n++;return t},G_.prototype.getMinorTicks=function(t){},G_.prototype.setCategorySortInfo=function(t){this._categorySortInfo=t},G_.prototype.getCategorySortInfo=function(){return this._categorySortInfo},G_.prototype.getCategoryIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].beforeSortIndex:t},G_.prototype.getRawIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].ordinalNumber:t},G_.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawIndex(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},G_.prototype.count=function(){return this._extent[1]-this._extent[0]+1},G_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},G_.prototype.isInExtentRange=function(t){return t=this.getCategoryIndex(t),this._extent[0]<=t&&this._extent[1]>=t},G_.prototype.getOrdinalMeta=function(){return this._ordinalMeta},G_.prototype.niceTicks=function(){},G_.prototype.niceExtent=function(){},G_.type="ordinal",G_);function G_(t){var e=F_.call(this,t)||this;e.type="ordinal";var n=e.getSetting("ordinalMeta");return n&&!N(n)||(n=new k_({categories:n})),e._ordinalMeta=n,e._categorySortInfo=[],e._extent=e.getSetting("extent")||[0,n.categories.length-1],e}D_.registerClass(H_);var W_,U_=Tl,Z_=(u(X_,W_=D_),X_.prototype.parse=function(t){return t},X_.prototype.contain=function(t){return z_(t,this._extent)},X_.prototype.normalize=function(t){return B_(t,this._extent)},X_.prototype.scale=function(t){return V_(t,this._extent)},X_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},X_.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},X_.prototype.getInterval=function(){return this._interval},X_.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=N_(t)},X_.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]s&&(t?o.push({value:U_(s+e,r)}):o.push({value:n[1]})),o},X_.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h=y[0]&&d<=y[1]&&a++)}var m=(y[1]-y[0])/f;if(1.5*m=y[0]&&t.value<=y[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n);var o=sx.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]n[1]&&(n[1]=e[1])})}var Vx=(Fx.prototype.getNeedCrossZero=function(){return!this.option.scale},Fx.prototype.getCoordSysModel=function(){},Fx);function Fx(){}var Hx=mo.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),Gx=mo.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),Wx=mo.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),Ux=mo.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),Zx={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},Xx={};W({line:ia,rect:ia,roundRect:ia,square:ia,circle:jo,diamond:Gx,pin:Wx,arrow:Ux,triangle:Hx},function(t,e){Xx[e]=new t});var Yx=mo.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Oi(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i,r=e.symbolType;"none"!==r&&(i=(i=Xx[r])||Xx[r="rect"],Zx[r](e.x,e.y,e.width,e.height,i.shape),i.buildPath(t,i.shape,n))}});function jx(t,e){var n;"image"!==this.type&&(n=this.style,this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw())}function qx(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?Ec(t.slice(8),new _i(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?Nc(t.slice(7),{},new _i(e,n,i,r),a?"center":"cover"):new Yx({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=jx,o&&s.setColor(o),s}var Kx={isDimensionStacked:C_,enableDataStack:M_,getStackedDimension:T_};var $x=Object.freeze({__proto__:null,createList:function(t){return I_(t.getSource(),t)},getLayoutRect:Cp,dataStack:Kx,createScale:function(t,e){var n=e;e instanceof Gh||(n=new Gh(e));var i=Lx(n);return i.setExtent(t[0],t[1]),kx(i,n),i},mixinAxisModelCommonMethods:function(t){M(t,Vx)},createDimensions:x_,createSymbol:qx}),Qx=1e-8;function Jx(t,e){return Math.abs(t-e)>1^-(1&s),l=(l=t.charCodeAt(a+1)-64)>>1^-(1&l),r=s+=r,o=l+=o;i.push([s/n,l/n])}return i}function rb(t,a){return U(T((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;ra[1],p(e[0].coord,a[0])&&(i?e[0].coord=a[0]:e.shift()),i&&p(a[0],e[0].coord)&&e.unshift({coord:a[0]}),p(a[1],r.coord)&&(i?r.coord=a[1]:e.pop()),i&&p(r.coord,a[1])&&e.push({coord:a[1]}))}(this,n,e.get("alignWithLabel"),t.clamp),n},yb.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return 0i[0]&&(i[0]=o[0]),o[1]>i[1]&&(i[1]=o[1])}return{min:e?n:i,max:e?i:n}}var jb,qb=function(){this.smooth=0,this.smoothConstraint=!0,this.connectNulls=!1},Kb=(u($b,jb=mo),$b.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},$b.prototype.getDefaultShape=function(){return new qb},$b.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length,o=Yb(n,e.smoothConstraint);if(e.connectNulls){for(;0i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return W(o.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function cw(t,e,n){if("cartesian2d"!==t.type)return ow(t,e,n);var i,r,o=t.getBaseAxis().isHorizontal(),a=rw(t,e,n);return n.get("clip",!0)||(i=a.shape,r=Math.max(i.width,i.height),o?(i.y-=r,i.height+=2*r):(i.x-=r,i.width+=2*r)),a}var pw,dw=(u(fw,pw=lg),fw.prototype.init=function(){var t=new Vo,e=new Ob;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},fw.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.mapArray(a.getItemLayout),h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),m=!l.isEmpty(),v=l.get("origin"),_=function(t,e,n){if(!n.valueDim)return[];for(var i=[],r=0,o=e.count();rh[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";W(h,function(t){t.offset=(t.coord-d)/g}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Ia(0,0,0,0,h,!0);return y[o]=d,y[o+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],T=t.get(["emphasis","focus"]),I=t.get(["emphasis","blurScope"]);d.useStyle(P(s.getLineStyle(),{fill:"none",stroke:C,lineJoin:"bevel"})),dh(d,t,"lineStyle"),"bolder"===t.get(["emphasis","lineStyle","width"])&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1),Su(d).seriesIndex=t.seriesIndex,hh(d,T,I);var D,A,k=lw(t.get("smooth"));function L(t){i._changePolyState(t)}d.setShape({smooth:k,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f&&(D=a.getCalculationInfo("stackedOnSeries"),A=0,f.useStyle(P(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel"})),D&&(A=lw(D.get("smooth"))),f.setShape({smooth:k,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),dh(f,t,"areaStyle"),Su(f).seriesIndex=t.seriesIndex,hh(f,T,I)),a.eachItemGraphicEl(function(t){t&&(t.onHoverStateChange=L)}),this._data=a,this._coordSys=r,this._stackedOnPoints=_,this._points=u,this._step=M,this._valueOrigin=v},fw.prototype.dispose=function(){},fw.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=eu(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&0<=o){var a=r.getItemGraphicEl(o);if(!a){var s=r.getItemLayout(o);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(a=new Ib(r,o)).setPosition(s),a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,r.setItemGraphicEl(o,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else lg.prototype.highlight.call(this,t,e,n,i)},fw.prototype.downplay=function(t,e,n,i){var r,o=t.getData(),a=eu(o,i);this._changePolyState("normal"),null!=a&&0<=a?(r=o.getItemGraphicEl(a))&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay()):lg.prototype.downplay.call(this,t,e,n,i)},fw.prototype._changePolyState=function(t){var e=this._polygon;$u(this._polyline,t),e&&$u(e,t)},fw.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Kb({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e},fw.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new nw({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n},fw.prototype._updateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=zb(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=uw(u.current,n,r),c=uw(u.stackedOnCurrent,n,r),p=uw(u.next,n,r),d=uw(u.stackedOnNext,n,r)),3e3e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;nl[1]?-1:1,h=["start"===r?l[0]-u*s:"end"===r?l[1]+u*s:(l[0]+l[1])/2,Nw(r)?t.labelOffset+o*s:0],null!=(p=e.get("nameRotate"))&&(p=p*Aw/180),Nw(r)?c=kw.innerTextLayout(t.rotation,null!=p?p:t.rotation,o):(c=function(t,e,n,i){var r,o,a=Pl(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;r=Ol(a-Aw/2)?(o=l?"bottom":"top","center"):Ol(a-1.5*Aw)?(o=l?"top":"bottom","center"):(o="middle",a<1.5*Aw&&Aw/2h[1]&&h.reverse(),(null==l||l>h[1])&&(l=h[1]),lt[1]&&(t[1]=e)}ig.registerClass(iS),ig.registerClass(aS),Pv(Cm.PROCESSOR.FILTER+10,{getTargetSeries:function(t){var e=lt();return t.eachSeries(function(t){Yw(t)&&e.set(t.uid,t)}),e},overallReset:function(t,e){var u,h,T,n=[],i=lt();u=i,h=n,t.eachSeries(function(t){var e,n,i,r,o,a,s,l;Yw(t)&&(n=(e=jw(t)).xAxisModel,i=e.yAxisModel,r=n.axis,o=i.axis,a=r.scale.rawExtentInfo,s=o.scale.rawExtentInfo,l=t.getData(),a&&a.frozen||s&&s.frozen||(h.push({seriesModel:t,xAxisModel:n,yAxisModel:i}),Bx(lS(u,n).condExtent,l,r.dim),Bx(lS(u,i).condExtent,l,o.dim)))}),T=i,W(n,function(t){var e=t.xAxisModel,n=t.yAxisModel,i=e.axis,r=n.axis,o=lS(T,e),a=lS(T,n);o.rawExtentInfo=Ix(i.scale,e,o.condExtent),a.rawExtentInfo=Ix(r.scale,n,a.condExtent),o.rawExtentResult=o.rawExtentInfo.calculate(),a.rawExtentResult=a.rawExtentInfo.calculate();var s,l,u=t.seriesModel.getData(),h={},c={};function p(e,t){var n=t.condExtent,i=t.rawExtentResult;"category"===e.type&&(n[0]e.min&&n.modifyDataMinMax("min",i[0]),!e.maxFixed&&i[1]e[1]&&e.reverse(),e},CS.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},CS.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setCategorySortInfo(t)},CS);function CS(t,e,n,i,r){var o=SS.call(this,t,e,n)||this;return o.index=0,o.type=i||"value",o.position=r||"bottom",o}var TS=(IS.prototype.getRect=function(){return this._rect},IS.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),W(n.x,function(t){kx(t.scale,t.model)}),W(n.y,function(t){kx(t.scale,t.model)});var i={};W(n.x,function(t){AS(n,"y",t,i)}),W(n.y,function(t){AS(n,"x",t,i)}),this.resize(this.model,e)},IS.prototype.resize=function(t,e,n){var l=Cp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=l;var i=this._axesList;function r(){W(i,function(t){var e,n,i,r,o=t.isHorizontal(),a=o?[0,l.width]:[0,l.height],s=t.inverse?1:0;t.setExtent(a[s],a[1-s]),e=t,n=o?l.x:l.y,i=e.getExtent(),r=i[0]+i[1],e.toGlobalCoord="x"===e.dim?function(t){return t+n}:function(t){return r-t+n},e.toLocalCoord="x"===e.dim?function(t){return t-n}:function(t){return r-t+n}})}r(),!n&&t.get("containLabel")&&(W(i,function(t){var e,n,i;t.model.get(["axisLabel","inside"])||(e=Rx(t))&&(n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]),l[n]-=e[n]+i,"top"===t.position?l.y+=e.height+i:"left"===t.position&&(l.x+=e.width+i))}),r())},IS.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},IS.prototype.getAxes=function(){return this._axesList.slice()},IS.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}F(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;ic?l:s,(i=Math.abs(e.label.y-c))>n.maxY&&(a=(r=e.label.x-h-e.len2*d)<(o=p+e.len)?Math.sqrt(i*i/(1-r*r/o/o)):o,n.rB=a,n.maxY=i),n.list.push(e))}f(s),f(l)}(t)}function f(t){for(var e=t.rB,n=e*e,i=0;i=n.r0}},SM.type="pie",SM);function SM(){var t=null!==bM&&bM.apply(this,arguments)||this;return t.ignoreLabelLineUpdate=!0,t}lg.registerClass(wM);var MM,CM,TM=2*Math.PI,IM=Math.PI/180;CM=Ov,W([[(MM="pie")+"ToggleSelect","toggleSelect"],[MM+"Select","select"],[MM+"UnSelect","unselect"]],function(o){CM(o[0],function(t,e,n){var i,r;t=L({},t),n.dispatchAction(L(t,{type:o[1],seriesIndex:(i=t,r=[],e.eachComponent({mainType:"series",subType:MM,query:i},function(t){r.push(t.seriesIndex)}),r)}))})}),Rv(D(function(t,e,D){e.eachSeriesByType(t,function(t){var e,r=t.getData(),n=r.mapDimension("value"),i=(e=D,Cp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})),o=t.get("center"),a=t.get("radius");N(a)||(a=[0,a]),N(o)||(o=[o,o]);var s=Cl(i.width,D.getWidth()),l=Cl(i.height,D.getHeight()),u=Math.min(s,l),h=Cl(o[0],s)+i.x,c=Cl(o[1],l)+i.y,p=Cl(a[0],u/2),d=Cl(a[1],u/2),f=-t.get("startAngle")*IM,g=t.get("minAngle")*IM,y=0;r.each(n,function(t){isNaN(t)||y++});var m=r.getSum(n),v=Math.PI/(m||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=r.getDataExtent(n);w[0]=0;var S,M=TM,C=0,T=f,I=_?1:-1;r.setLayout({viewRect:i,r:d}),r.each(n,function(t,e){var n,i;isNaN(t)?r.setItemLayout(e,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d}):((n="area"!==x?0===m&&b?v:t*v:TM/y)a)return!0;if(o){var s=Vw(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1},cC.prototype.makeElOption=function(t,e,n,i,r){},cC.prototype.createPointerEl=function(t,e,n,i){var r,o=e.pointer;o&&(r=sC(t).pointerEl=new op[o.type](lC(e.pointer)),t.add(r))},cC.prototype.createLabelEl=function(t,e,n,i){var r;e.label&&(r=sC(t).labelEl=new rs(lC(e.label)),t.add(r),dC(r,i))},cC.prototype.updatePointerEl=function(t,e,n){var i=sC(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},cC.prototype.updateLabelEl=function(t,e,n,i){var r=sC(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),dC(r,i))},cC.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=ip(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Qt(t.event)},onmousedown:uC(this._onHandleDragMove,this,0,0),drift:uC(this._onHandleDragMove,this),ondragend:uC(this._onHandleDragEnd,this)}),i.add(r)),gC(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");N(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,_g(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},cC.prototype._moveHandleToValue=function(t,e){pC(this._axisPointerModel,!e&&this._moveAnimation,this._handle,fC(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},cC.prototype._onHandleDragMove=function(t,e){var n,i=this._handle;i&&(this._dragging=!0,n=this.updateHandleTransform(fC(i),[t,e],this._axisModel,this._axisPointerModel),this._payloadInfo=n,i.stopAnimation(),i.attr(fC(n)),sC(i).lastProp=null,this._doDispatchAxisPointer())},cC.prototype._doDispatchAxisPointer=function(){var t,e;this._handle&&(t=this._payloadInfo,e=this._axisModel,this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]}))},cC.prototype._onHandleDragEnd=function(){var t;this._dragging=!1,this._handle&&(t=this._axisPointerModel.get("value"),this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"}))},cC.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},cC.prototype.doClear=function(){},cC.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},cC);function cC(){this._dragging=!1,this.animationThreshold=15}function pC(t,e,n,i){!function n(i,t){{if(F(i)&&F(t)){var r=!0;return W(t,function(t,e){r=r&&n(i[e],t)}),!!r}return i===t}}(sC(n).lastProp,i)&&(sC(n).lastProp=i,e?Gc(n,i,t):(n.stopAnimation(),n.attr(i)))}function dC(t,e){t[e.get(["label","show"])?"show":"hide"]()}function fC(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function gC(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)})}function yC(t,e,n,i,r){var o=mC(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=lp(a.get("padding")||0),l=a.getFont(),u=Di(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f,g,y,m,v,_,x=r.verticalAlign;"bottom"===x&&(h[1]-=p),"middle"===x&&(h[1]-=p/2),f=h,g=c,y=p,v=(m=i).getWidth(),_=m.getHeight(),f[0]=Math.min(f[0]+g,v)-g,f[1]=Math.min(f[1]+y,_)-y,f[0]=Math.max(f[0],0),f[1]=Math.max(f[1],0);var b=a.get("backgroundColor");b&&"auto"!==b||(b=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:{text:o,textFont:l,fill:a.getTextColor(),padding:s,backgroundColor:b,borderColor:a.get("borderColor")||"transparent",borderRadius:a.get("borderRadius"),borderWidth:a.get("borderWidth")||0,shadowBlur:a.get("shadowBlur"),shadowColor:a.get("shadowColor"),shadowOffsetX:a.get("shadowOffsetX"),shadowOffsetY:a.get("shadowOffsetY")},z2:10}}function mC(t,e,r,n,i){t=e.scale.parse(t);var o,a=e.scale.getLabel({value:t},{precision:i.precision}),s=i.formatter;return s&&(o={value:Ox(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]},W(n,function(t){var e=r.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,i=e&&e.getDataParams(n);i&&o.seriesData.push(i)}),z(s)?a=s.replace("{value}",a):E(s)&&(a=s(o))),a}function vC(t,e,n){var i=Zn();return Kn(i,i,n.rotation),qn(i,i,n.position),Qc([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}var _C,xC=(u(bC,_C=hC),bC.prototype.makeElOption=function(t,e,n,i,r){var o,a,s,l,u,h,c=n.axis,p=c.grid,d=i.get("type"),f=wC(p,c).getOtherAxis(c).getGlobalExtent(),g=c.toGlobalCoord(c.dataToCoord(e,!0));d&&"none"!==d&&(u=(s=i).get("type"),h=s.getModel(u+"Style"),"line"===u?(l=h.getLineStyle()).fill=null:"shadow"===u&&((l=h.getAreaStyle()).stroke=null),o=l,(a=SC[d](c,g,f)).style=o,t.graphicKey=a.type,t.pointer=a);var y,m,v,_,x,b,w,S=Xw(p.model,n);y=e,m=t,v=S,_=n,x=i,b=r,w=kw.innerTextLayout(v.rotation,0,v.labelDirection),v.labelMargin=x.get(["label","margin"]),yC(m,_,x,b,{position:vC(_.axis,y,v),align:w.textAlign,verticalAlign:w.textVerticalAlign})},bC.prototype.getHandleTransform=function(t,e,n){var i=Xw(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=vC(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},bC.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=wC(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];return c[l]=u[l],{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},bC);function bC(){return null!==_C&&_C.apply(this,arguments)||this}function wC(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var SC={line:function(t,e,n){var i,r,o;return{type:"Line",subPixelOptimize:!0,shape:(i=[e,n[0]],r=[e,n[1]],o=MC(t),{x1:i[o=o||0],y1:i[1-o],x2:r[o],y2:r[1-o]})}},shadow:function(t,e,n){var i,r,o,a=Math.max(1,t.getBandWidth()),s=n[1]-n[0];return{type:"Rect",shape:(i=[e-a/2,n[0]],r=[a,s],o=MC(t),{x:i[o=o||0],y:i[1-o],width:r[o],height:r[1-o]})}}};function MC(t){return"x"===t.dim?0:1}Uw.registerAxisPointerClass("CartesianAxisPointer",xC);var CC,TC=(u(IC,CC=zp),IC.type="axisPointer",IC.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},IC);function IC(){var t=null!==CC&&CC.apply(this,arguments)||this;return t.type=IC.type,t}zp.registerClass(TC),Lv(function(t){var e;t&&(t.axisPointer&&0!==t.axisPointer.length||(t.axisPointer={}),(e=t.axisPointer.link)&&!N(e)&&(t.axisPointer.link=[e]))}),Pv(Cm.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=zw(t,e)}),Ov({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,n){var i=t.currTrigger,a=[t.x,t.y],r=t,o=t.dispatchAction||I(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){$M(a)&&(a=ZM({seriesIndex:r.seriesIndex,dataIndex:r.dataIndex},e).point);var l=$M(a),u=r.axesInfo,h=s.axesInfo,c="leave"===i||$M(a),p={},d={},f={list:[],map:{}},g={showPointer:D(jM,d),showTooltip:D(qM,f)};W(s.coordSysMap,function(t,e){var o=l||t.containPoint(a);W(s.coordSysAxesInfo[e],function(t,e){var n,i=t.axis,r=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);c||!o||u&&!r||(null!=(n=r&&r.value)||l||(n=i.pointToData(a)),null!=n&&YM(t,n,g,!1,p))})});var y,m,v,_={};return W(h,function(r,t){var o=r.linkGroup;o&&!d[t]&&W(o.axesInfo,function(t,e){var n,i=d[e];t!==r&&i&&(n=i.value,o.mapper&&(n=r.axis.scale.parse(o.mapper(n,KM(t),KM(r)))),_[r.key]=n)})}),W(_,function(t,e){YM(h[e],t,g,!0,p)}),y=d,m=h,v=p.axesInfo=[],W(m,function(t,e){var n=t.axisPointerModel.option,i=y[e];i?(t.useHandle||(n.status="show"),n.value=i.value,n.seriesDataIndices=(i.payloadBatch||[]).slice()):t.useHandle||(n.status="hide"),"show"===n.status&&v.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:n.value})}),function(t,e,n,i){if($M(e)||!t.list.length)return i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,a,t,o),function(t,e){var n=e.getZr(),i="axisPointerLastHighlights",r=XM(n)[i]||{},o=XM(n)[i]={};W(t,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&W(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;o[e]=t})});var a=[],s=[];W(r,function(t,e){o[e]||s.push(t)}),W(o,function(t,e){r[e]||a.push(t)}),s.length&&e.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:s}),a.length&&e.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:a})}(h,n),p}});var DC,AC=(u(kC,DC=zp),kC.type="tooltip",kC.dependencies=["axisPointer"],kC.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderColor:"#333",borderRadius:4,borderWidth:1,padding:10,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},kC);function kC(){var t=null!==DC&&DC.apply(this,arguments)||this;return t.type=kC.type,t}zp.registerClass(AC);var LC=W,PC=sp,OC=["","-webkit-","-moz-","-o-"];function RC(t){var e="#fff";return F(t)&&"pattern"!==t.type?e=t.colorStops[0].color:F(t)&&"pattern"===t.type?e="transparent":z(t)&&(e=t),e}function NC(r,t){var e,n,i,o,a,s,l,u=[],h=r.get("transitionDuration"),c=r.get("backgroundColor"),p=r.get("shadowBlur"),d=r.get("shadowColor"),f=r.get("shadowOffsetX"),g=r.get("shadowOffsetY"),y=r.getModel("textStyle"),m=r.get("padding"),v=f+"px "+g+"px "+p+"px "+d;return u.push("box-shadow:"+v),!t&&h&&-1"}(n.get("backgroundColor"),i,r):"")},BC.prototype.setEnterable=function(t){this._enterable=t},BC.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},BC.prototype.moveTo=function(t,e){var n=this._styleCoord;EC(n,this._zr,this._appendToBody,t,e);var i=this.el.style;i.left=n[0]+"px",i.top=n[1]+"px"},BC.prototype.hide=function(){this.el.style.display="none",this._show=!1},BC.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(I(this.hide,this),t)):this.hide())},BC.prototype.isShow=function(){return this._show},BC.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},BC.prototype.getOuterSize=function(){var t,e=this.el.clientWidth,n=this.el.clientHeight;return document.defaultView&&document.defaultView.getComputedStyle&&(t=document.defaultView.getComputedStyle(this.el))&&(e+=parseInt(t.borderLeftWidth,10)+parseInt(t.borderRightWidth,10),n+=parseInt(t.borderTopWidth,10)+parseInt(t.borderBottomWidth,10)),{width:e,height:n}},BC);function BC(t,e,n){if(this._show=!1,this._styleCoord=[0,0],this._enterable=!0,this._firstShow=!0,_.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;EC(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var a=this;i.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},i.onmousemove=function(t){var e;t=t||window.event,a._enterable||(e=r.handler,Kt(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t))},i.onmouseleave=function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}}var VC=(FC.prototype.update=function(){},FC.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},FC.prototype.setContent=function(t,e,n,i,r){this.el&&this._zr.remove(this.el);for(var o={},a=t,s="{marker",l=a.indexOf(s);0<=l;){var u=a.indexOf("|}"),h=a.substr(l+s.length,u-l-s.length);-1'+cp(t)+""+a:"")+e.reverse().join(a)),r.push("
")}})},this),r.pop();var s=r.join(this._newLine+this._newLine),l=e.position;this._showOrMove(o,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,l,i[0],i[1],this._tooltipContent,p):this._showTooltipContent(o,s,p,Math.random()+"",i[0],i[1],l,void 0,f)})},YC.prototype._showSeriesItemTooltip=function(t,e,n){var i,r,o,a,s,l,u=this._ecModel,h=Su(e),c=h.seriesIndex,p=u.getSeriesByIndex(c),d=h.dataModel||p,f=h.dataIndex,g=h.dataType,y=d.getData(g),m=jC([y.getItemModel(f),d,p&&(p.coordinateSystem||{}).model,this._tooltipModel]),v=m.get("trigger");null!=v&&"item"!==v||(i=m.get("order"),(r=d.getDataParams(f,g)).marker=yp({color:r.color,renderMode:this._renderMode}),o=d.formatTooltip(f,!1,g,this._renderMode,i),s=F(o)?(a=o.html,o.markers):(a=o,null),l="item_"+d.name+"_"+f,this._showOrMove(m,function(){this._showTooltipContent(m,a,r,l,t.offsetX,t.offsetY,t.position,t.target,s)}),n({type:"showTip",dataIndexInside:f,dataIndex:y.getRawIndex(f),seriesIndex:c,from:this.uid}))},YC.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;z(i)&&(i={content:i,formatter:i});var r=new Gh(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"";this._showOrMove(r,function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e)}),n({type:"showTip",from:this.uid})},YC.prototype._showTooltipContent=function(n,t,i,e,r,o,a,s,l){var u,h,c,p,d;this._ticket="",n.get("showContent")&&n.get("show")&&(u=this._tooltipContent,h=n.get("formatter"),a=a||n.get("position"),c=t,p=this._getNearestPoint([r,o],i,n.get("trigger")),h&&z(h)?c=gp(h,i,!0):E(h)&&(d=GC(function(t,e){t===this._ticket&&(u.setContent(e,l,n,p.color,a),this._updatePosition(n,a,r,o,u,i,s))},this),this._ticket=e,c=h(i,e,d)),u.setContent(c,l,n,p.color,a),u.show(n,p.color),this._updatePosition(n,a,r,o,u,i,s))},YC.prototype._getNearestPoint=function(t,e,n){return"axis"===n||N(e)?{color:"html"===this._renderMode?"#fff":"none"}:N(e)?void 0:{color:e.color||e.borderColor}},YC.prototype._updatePosition=function(t,e,n,i,r,o,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u,h,c,p,d,f,g,y,m,v,_=r.getSize(),x=t.get("align"),b=t.get("verticalAlign"),w=a&&a.getBoundingRect().clone();a&&w.applyTransform(a.transform),E(e)&&(e=e([n,i],o,r.el,w,{viewSize:[s,l],contentSize:_.slice()})),N(e)?(n=UC(e[0],s),i=UC(e[1],l)):F(e)?((u=e).width=_[0],u.height=_[1],n=(h=Cp(u,{width:s,height:l})).x,i=h.y,b=x=null):(n=z(e)&&a?(c=function(t,e,n){var i=n[0],r=n[1],o=0,a=0,s=e.width,l=e.height;switch(t){case"inside":o=e.x+s/2-i/2,a=e.y+l/2-r/2;break;case"top":o=e.x+s/2-i/2,a=e.y-r-10;break;case"bottom":o=e.x+s/2-i/2,a=e.y+l+10;break;case"left":o=e.x-i-10-5,a=e.y+l/2-r/2;break;case"right":o=e.x+s+10+5,a=e.y+l/2-r/2}return[o,a]}(e,w,_))[0]:(c=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;return null!=o&&(in[r],d=[-h.x,-h.y];e||(d[i]=s[a]);var f=[0,0],g=[-c.x,-c.y],y=$(t.get("pageButtonGap",!0),t.get("itemGap",!0));p&&("end"===t.get("pageButtonPosition",!0)?g[i]+=n[r]-c[r]:f[i]+=c[r]+y),g[1-i]+=h[o]/2-c[o]/2,s.setPosition(d),l.setPosition(f),u.setPosition(g);var m,v={x:0,y:0};v[r]=p?n[r]:h[r],v[o]=Math.max(h[o],c[o]),v[a]=Math.min(0,c[a]+g[1-i]),l.__rectSize=n[r],p?((m={x:0,y:0})[r]=Math.max(n[r]-c[r]-y,0),m[o]=v[o],l.setClipPath(new ia({shape:m})),l.__rectSize=m[r]):u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var _=this._getPageInfo(t);return null!=_.pageIndex&&Gc(s,{x:_.contentPosition[0],y:_.contentPosition[1]},p?t:null),this._updatePageInfoView(t,_),v},wT.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},wT.prototype._updatePageInfoView=function(i,r){var o=this._controllerGroup;W(["pagePrev","pageNext"],function(t){var e=null!=r[t+"DataIndex"],n=o.childOfName(t);n&&(n.setStyle("fill",e?i.get("pageIconColor",!0):i.get("pageIconInactiveColor",!0)),n.cursor=e?"pointer":"default")});var t=o.childOfName("pageText"),e=i.get("pageFormatter"),n=r.pageIndex,a=null!=n?n+1:0,s=r.pageCount;t&&e&&t.setStyle("text",z(e)?e.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):e({current:a,total:s}))},wT.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=_T[r],a=xT[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=v(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,m=null;f<=h;++f)(!(m=v(l[f]))&&y.e>g.s+i||m&&!_(m,g.s))&&(g=y.i>g.i?y:m)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=m;for(f=s-1,y=g=d,m=null;-1<=f;--f)(m=v(l[f]))&&_(y,m.s)||!(g.i=e&&t.s<=e+i}},wT.prototype._findTargetItemIndex=function(i){return this._showController?(this.getContentGroup().eachChild(function(t,e){var n=t.__legendDataIndex;null==o&&null!=n&&(o=e),n===i&&(r=e)}),null!=r?r:o):0;var r,o},wT.type="legend.scroll",wT);function wT(){var t=null!==mT&&mT.apply(this,arguments)||this;return t.type=wT.type,t.newlineDisabled=!0,t._currentIndex=0,t}ig.registerClass(bT),Ov("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})});var ST,MT=(u(CT,ST=zp),CT.type="title",CT.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},CT);function CT(){var t=null!==ST&&ST.apply(this,arguments)||this;return t.type=CT.type,t.layoutMode={type:"box",ignoreSize:!0},t}zp.registerClass(MT);var TT,IT=(u(DT,TT=ig),DT.prototype.render=function(t,e,n){var i,r,o,a,s,l,u,h,c,p,d,f,g,y,m,v,_,x,b;this.group.removeAll(),t.get("show")&&(i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=$(t.get("textBaseline"),t.get("textVerticalAlign")),u=(l=new rs({style:wh(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10})).getBoundingRect(),h=t.get("subtext"),c=new rs({style:wh(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0),l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",function(){vp(p,"_"+t.get("target"))}),d&&c.on("click",function(){vp(p,"_"+t.get("subtarget"))}),Su(l).eventData=Su(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c),g=i.getBoundingRect(),(y=t.getBoxLayoutParams()).width=g.width,y.height=g.height,m=Cp(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding")),a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?m.x+=m.width:"center"===a&&(m.x+=m.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?m.y+=m.height:"middle"===s&&(m.y+=m.height/2),s=s||"top"),i.x=m.x,i.y=m.y,i.markRedraw(),v={align:a,verticalAlign:s},l.setStyle(v),c.setStyle(v),g=i.getBoundingRect(),_=m.margin,(x=t.getItemStyle(["color","opacity"])).fill=t.get("backgroundColor"),b=new ia({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0}),i.add(b))},DT.type="title",DT);function DT(){var t=null!==TT&&TT.apply(this,arguments)||this;return t.type=DT.type,t}function AT(t){Zl(t,"label",["show"])}ig.registerClass(IT);var kT,LT=nu(),PT=(u(OT,kT=zp),OT.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},OT.prototype.isAnimationEnabled=function(){if(_.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},OT.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},OT.prototype._mergeOption=function(t,i,e,r){var o=this.mainType;e||i.eachSeries(function(t){var e=t.get(this.mainType,!0),n=LT(t)[o];e&&e.data?(n?n._mergeOption(e,i,!0):(r&&AT(e),W(e.data,function(t){t instanceof Array?(AT(t[0]),AT(t[1])):AT(t)}),L(n=this.createMarkerModelFromSeries(e,this,i),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),n.__hostSeries=t),LT(t)[o]=n):LT(t)[o]=null},this)},OT.prototype.formatTooltip=function(t,e,n,i){var r=this.getData(),o=this.getRawValue(t),a=N(o)?U(o,ap).join(", "):ap(o),s=cp(r.getName(t)),l='
'+cp(this.name)+"
";return null==o&&!s||(l+="html"===i?"":"\n"),s&&(l+='
'+s+""),null!=o&&(l="html"===i?pp(l,a,!0)+(s?"
":""):l+a),l},OT.prototype.getData=function(){return this._data},OT.prototype.setData=function(t){this._data=t},OT.getMarkerModelFromSeries=function(t,e){return LT(t)[e]},OT.type="marker",OT.dependencies=["series","grid","polar","geo"],OT);function OT(){var t=null!==kT&&kT.apply(this,arguments)||this;return t.type=OT.type,t.createdBySelf=!1,t}M(PT,_f.prototype);var RT,NT=(u(ET,RT=PT),ET.prototype.createMarkerModelFromSeries=function(t,e,n){return new ET(t,e,n)},ET.type="markPoint",ET.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},ET);function ET(){var t=null!==RT&&RT.apply(this,arguments)||this;return t.type=ET.type,t}function zT(t,e,n,i,r,o){var a=[],s=C_(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=WT(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Dl(e.get(i,u));return 0<=(c=Math.min(c,20))&&(a[o]=+a[o].toFixed(c)),[a,h]}zp.registerClass(NT);var BT={min:D(zT,"min"),max:D(zT,"max"),average:D(zT,"average"),median:D(zT,"median")};function VT(t,e){var n,i=t.getData(),r=t.coordinateSystem;if(e&&(n=e,isNaN(parseFloat(n.x))||isNaN(parseFloat(n.y)))&&!N(e.coord)&&r){var o=r.dimensions,a=FT(e,i,r,t);if((e=A(e)).type&&BT[e.type]&&a.baseAxis&&a.valueAxis){var s=k(o,a.baseAxis.dim),l=k(o,a.valueAxis.dim),u=BT[e.type](i,a.baseDataDim,a.valueDataDim,s,l);e.coord=u[0],e.value=u[1]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],c=0;c<2;c++)BT[h[c]]&&(h[c]=WT(i,i.mapDimension(o[c]),h[c]));e.coord=h}}return e}function FT(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;ro&&(e[1-i]=e[i]+u.sign*o),e}function lD(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:0r[0]||o[1]<0||o[1]>r[1]||(n=((e=this._handleEnds)[0]+e[1])/2,i=this._updateInterval("all",o[0]-n),this._updateView(),i&&this._dispatchZoomAction(!1))},mD.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new ui(e,n),this._brushing=!0,this._brushStartTime=+new Date},mD.prototype._onBrushEnd=function(t){var e,n,i,r;this._brushing&&(e=this._displayables.brushRect,this._brushing=!1,e&&(e.attr("ignore",!0),n=e.shape,new Date-this._brushStartTime<200&&Math.abs(n.width)<5||(i=this._getViewExtent(),r=[0,100],this._range=Il([Ml(n.x,i,r,!0),Ml(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1))))},mD.prototype._onBrush=function(t){this._brushing&&(Qt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},mD.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new cD({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.ignore=!1;var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},mD.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?gD:null,start:e[0],end:e[1]})},mD.prototype._findCoordRect=function(){var t,e,n,i,r=jI(this.dataZoomModel).infoList;return!e&&r.length&&(e=(t=r[0].model.coordinateSystem).getRect&&t.getRect()),e=e||{x:.2*(n=this.api.getWidth()),y:.2*(i=this.api.getHeight()),width:.6*n,height:.6*i}},mD.type="dataZoom.slider",mD);function mD(){var t=null!==hD&&hD.apply(this,arguments)||this;return t.type=mD.type,t._displayables={},t}function vD(t){return"vertical"===t?"ns-resize":"ew-resize"}ig.registerClass(yD);var _D=W,xD=Il,bD=(wD.prototype.hostedBy=function(t){return this._dataZoomModel===t},wD.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},wD.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},wD.prototype.getTargetSeriesModels=function(){var r=[];return this.ecModel.eachSeries(function(t){var e,n,i;i=t.get("coordinateSystem"),0<=k(ZI,i)&&(e=XI(this._dimName),(n=t.getReferringComponents(e,ou).models[0])&&this._axisIndex===n.componentIndex&&r.push(t))},this),r},wD.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},wD.prototype.getMinMaxSpan=function(){return A(this._minMaxSpan)},wD.prototype.calculateDataWindow=function(r){var o,a=this._dataExtent,s=this.getAxisModel().axis.scale,l=this._dataZoomModel.getRangePropMode(),u=[0,100],h=[],c=[];_D(["start","end"],function(t,e){var n=r[t],i=r[t+"Value"];"percent"===l[e]?(null==n&&(n=u[e]),i=s.parse(Ml(n,u,a))):(o=!0,n=Ml(i=null==i?a[e]:s.parse(i),a,u)),c[e]=i,h[e]=n}),xD(c),xD(h);var p=this._minMaxSpan;function t(t,e,n,i,r){var o=r?"Span":"ValueSpan";sD(0,t,n,"all",p["min"+o],p["max"+o]);for(var a=0;a<2;a++)e[a]=Ml(t[a],n,i,!0),r&&(e[a]=s.parse(e[a]))}return o?t(c,h,a,u,!1):t(h,c,u,a,!0),{valueWindow:c,percentWindow:h}},wD.prototype.reset=function(t){var e,n;t===this._dataZoomModel&&(e=this.getTargetSeriesModels(),this._dataExtent=function(t,e,n){var i=[1/0,-1/0];_D(n,function(t){Bx(i,t.getData(),e)});var r=t.getAxisModel(),o=Ix(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan(),n=this.calculateDataWindow(t.settledOption),this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel())},wD.prototype.filterData=function(t,e){var i,n,r,c;t===this._dataZoomModel&&(i=this._dimName,n=this.getTargetSeriesModels(),r=t.get("filterMode"),c=this._valueWindow,"none"!==r&&_D(n,function(n){var u=n.getData(),h=u.mapDimensionsAll(i);h.length&&("weakFilter"===r?u.filterSelf(function(t){for(var e,n,i,r=0;rc[1];if(a&&!s&&!l)return!0;a&&(i=!0),s&&(e=!0),l&&(n=!0)}return i&&e&&n}):_D(h,function(t){var e;"empty"===r?n.setData(u=u.map(t,function(t){return(e=t)>=c[0]&&e<=c[1]?t:NaN;var e})):((e={})[t]=c,u.selectRange(e))}),_D(h,function(t){u.setApproximateExtent(c,t)}))}))},wD.prototype._updateMinMaxSpan=function(){var i=this._minMaxSpan={},r=this._dataZoomModel,o=this._dataExtent;_D(["min","max"],function(t){var e=r.get(t+"Span"),n=r.get(t+"ValueSpan");null!=n&&(n=this.getAxisModel().axis.scale.parse(n)),null!=n?e=Ml(o[0]+n,o,[0,100],!0):null!=e&&(n=Ml(e,[0,100],o,!0)-o[0]),i[t+"Span"]=e,i[t+"ValueSpan"]=n},this)},wD.prototype._setAxisModel=function(){var t,e,n=this.getAxisModel(),i=this._percentWindow,r=this._valueWindow;i&&(t=kl(r,[0,500]),t=Math.min(t,20),e=n.axis.scale.rawExtentInfo,0!==i[0]&&e.setDeterminedMinMax("min",+r[0].toFixed(t)),100!==i[1]&&e.setDeterminedMinMax("max",+r[1].toFixed(t)),e.freeze())},wD);function wD(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}Pv(Cm.PROCESSOR.FILTER,{getTargetSeries:function(o){function t(r){o.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(t,e){var n=o.getComponent(XI(t),e);r(t,e,n,i)})})}t(function(t,e,n,i){n.__dzAxisProxy=null});var r=[];t(function(t,e,n,i){n.__dzAxisProxy||(n.__dzAxisProxy=new bD(t,e,i,o),r.push(n.__dzAxisProxy))});var e=lt();return W(r,function(t){W(t.getTargetSeriesModels(),function(t){e.set(t.uid,t)})}),e},overallReset:function(t,i){t.eachComponent("dataZoom",function(n){n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).reset(n)}),n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).filterData(n,i)})}),t.eachComponent("dataZoom",function(t){var e,n,i=t.findRepresentativeAxisProxy();i&&(e=i.getDataPercentWindow(),n=i.getDataValueWindow(),t.setCalculatedRange({start:e[0],end:e[1],startValue:n[0],endValue:n[1]}))})}}),Ov("dataZoom",function(e,t){W(YI(t,e),function(t){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})});var SD,MD=(u(CD,SD=QI),CD.type="dataZoom.inside",CD.defaultOption=Xh(QI.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),CD);function CD(){var t=null!==SD&&SD.apply(this,arguments)||this;return t.type=CD.type,t}zp.registerClass(MD);var TD="\0_ec_interaction_mutex";function ID(t,e){return DD(t)[e]}function DD(t){return t[TD]||(t[TD]={})}Ov({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){});var AD,kD=(u(LD,AD=Nt),LD.prototype.isDragging=function(){return this._dragging},LD.prototype.isPinching=function(){return this._pinching},LD.prototype.setPointerChecker=function(t){this.pointerChecker=t},LD.prototype.dispose=function(){this.disable()},LD.prototype._mousedownHandler=function(t){var e,n;Jt(t)||t.target&&t.target.draggable||(e=t.offsetX,n=t.offsetY,this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0))},LD.prototype._mousemoveHandler=function(t){var e,n,i,r,o,a;this._dragging&&RD("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!ID(this._zr,"globalPan")&&(e=t.offsetX,n=t.offsetY,o=e-(i=this._x),a=n-(r=this._y),this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&Qt(t.event),OD(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null}))},LD.prototype._mouseupHandler=function(t){Jt(t)||(this._dragging=!1)},LD.prototype._mousewheelHandler=function(t){var e,n,i=RD("zoomOnMouseWheel",t,this._opt),r=RD("moveOnMouseWheel",t,this._opt),o=t.wheelDelta,a=Math.abs(o),s=t.offsetX,l=t.offsetY;0!==o&&(i||r)&&(i&&(e=3d.getHeight()&&(l.position="top",r=!0),o=r?-5-n.height:f+8,i+n.width/2>d.getWidth()?(l.position=["100%",o],e.align="right"):i-n.width/2<0&&(l.position=[0,o],e.align="left"))}))},tA.prototype.updateView=function(t,e,n,i){W(this._features,function(t){t instanceof ZD&&t.updateView&&t.updateView(t.model,e,n,i)})},tA.prototype.remove=function(e,n){W(this._features,function(t){t instanceof ZD&&t.remove&&t.remove(e,n)}),this.group.removeAll()},tA.prototype.dispose=function(e,n){W(this._features,function(t){t instanceof ZD&&t.dispose&&t.dispose(e,n)})},tA.type="toolbox",tA);function tA(){return null!==QD&&QD.apply(this,arguments)||this}ig.registerClass(JD);var eA,nA=(u(iA,eA=ZD),iA.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType()?"svg":n.get("type",!0)||"png",o=e.getConnectedDataURL({type:r,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||_.browser.ie||_.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var a=atob(o.split(",")[1]),s=a.length,l=new Uint8Array(s);s--;)l[s]=a.charCodeAt(s);var u=new Blob([l]);window.navigator.msSaveOrOpenBlob(u,i+"."+r)}else{var h=n.get("lang"),c='';window.open().document.write(c)}else{var p=document.createElement("a");p.download=i+"."+r,p.target="_blank",p.href=o;var d=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});p.dispatchEvent(d)}},iA.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},iA);function iA(){return null!==eA&&eA.apply(this,arguments)||this}nA.prototype.unusable=!_.canvasSupported,YD("saveAsImage",nA);var rA,oA="__ec_magicType_stack__",aA=[["line","bar"],["stack"]],sA=(u(lA,rA=ZD),lA.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return W(t.get("type"),function(t){e[t]&&(n[t]=e[t])}),n},lA.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},lA.prototype.onclick=function(t,e,u){var h,n,i,r,o,c=this.model,a=c.get(["seriesIndex",u]);uA[u]&&(h={series:[]},W(aA,function(t){0<=k(t,u)&&W(t,function(t){c.setIconStatus(t,"normal")})}),c.setIconStatus(u,"emphasis"),t.eachComponent({mainType:"series",query:null==a?null:{seriesIndex:a}},function(t){var e=t.subType,n=t.id,i=uA[u](e,n,t,c);i&&(P(i,t.option),h.series.push(i));var r=t.coordinateSystem;if(r&&"cartesian2d"===r.type&&("line"===u||"bar"===u)){var o=r.getAxesByScale("ordinal")[0];if(o){var a=o.dim+"Axis",s=t.getReferringComponents(a,ou).models[0].componentIndex;h[a]=h[a]||[];for(var l=0;l<=s;l++)h[a][s]=h[a][s]||{};h[a][s].boundaryGap="bar"===u}}}),"stack"===u&&(n=h.series,i=t.getLocale(["toolbox","magicType","title","tiled"]),r=t.getLocale(["toolbox","magicType","title"]),o=n&&n[0]&&n[0].stack===oA?x({stack:i},r):A(r)),e.dispatchAction({type:"changeMagicType",currentType:u,newOption:h,newTitle:o,featureName:"magicType"}))},lA);function lA(){return null!==rA&&rA.apply(this,arguments)||this}var uA={line:function(t,e,n,i){if("bar"===t)return x({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return x({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===oA;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),x({id:e,stack:r?"":oA},i.get(["option","stack"])||{},!0)}};Ov({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),YD("magicType",sA);var hA=new Array(60).join("-"),cA="\t";function pA(t){var r,o,a,h,e=(r={},o=[],a=[],t.eachRawSeries(function(t){var e,n,i=t.coordinateSystem;!i||"cartesian2d"!==i.type&&"polar"!==i.type||"category"!==(e=i.getBaseAxis()).type?o.push(t):(n=e.dim+"_"+e.index,r[n]||(r[n]={categoryAxis:e,valueAxis:i.getOtherAxis(e),series:[]},a.push({axisDim:e.dim,axisIndex:e.index})),r[n].series.push(t))}),{seriesGroupByCategoryAxis:r,other:o,meta:a});return{value:T([(h=[],W(e.seriesGroupByCategoryAxis,function(t,e){var n=t.categoryAxis,i=t.valueAxis.dim,r=[" "].concat(U(t.series,function(t){return t.name})),o=[n.model.getCategories()];W(t.series,function(t){o.push(t.getRawData().mapArray(i,function(t){return t}))});for(var a=[r.join(cA)],s=0;sa.getWidth()||o<0||o>a.getHeight()))){var i,r,o,a,s=t._zr,l=t._covers,u=VA(t,e,n);if(!t._dragging)for(var h=0;ht[1]&&t.reverse(),t}function mk(t,e){return ru(t,e,{includeMainTypes:dk})}var vk={grid:function(t,i){var r=t.xAxisModels,o=t.yAxisModels,e=t.gridModels,n=lt(),a={},s={};(r||o||e)&&(W(r,function(t){var e=t.axis.grid.model;n.set(e.id,e),a[e.id]=!0}),W(o,function(t){var e=t.axis.grid.model;n.set(e.id,e),s[e.id]=!0}),W(e,function(t){n.set(t.id,t),a[t.id]=!0,s[t.id]=!0}),n.each(function(t){var e=t.coordinateSystem,n=[];W(e.getCartesians(),function(t,e){(0<=k(r,t.getAxis("x").model)||0<=k(o,t.getAxis("y").model))&&n.push(t)}),i.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:n[0],coordSyses:n,getPanelRect:xk.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,n){W(t.geoModels,function(t){var e=t.coordinateSystem;n.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:e,coordSyses:[e],getPanelRect:xk.geo})})}},_k=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],xk={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform($c(t)),e}},bk={lineX:D(wk,0),lineY:D(wk,1),rect:function(t,e,n){var i=e[pk[t]]([n[0][0],n[1][0]]),r=e[pk[t]]([n[0][1],n[1][1]]),o=[yk([i[0],r[0]]),yk([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(n,i,t){var r=[[1/0,-1/0],[1/0,-1/0]];return{values:U(t,function(t){var e=i[pk[n]](t);return r[0][0]=Math.min(r[0][0],e[0]),r[1][0]=Math.min(r[1][0],e[1]),r[0][1]=Math.max(r[0][1],e[0]),r[1][1]=Math.max(r[1][1],e[1]),e}),xyMinMax:r}}};function wk(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=yk(U([0,1],function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))})),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var Sk={lineX:D(Mk,0),lineY:D(Mk,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,n,i){return U(t,function(t,e){return[t[0]-i[0]*n[e][0],t[1]-i[1]*n[e][1]]})}};function Mk(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function Ck(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var Tk=W,Ik=nu();function Dk(t){var e=Ik(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var Ak,kk=(u(Lk,Ak=QI),Lk.type="dataZoom.select",Lk);function Lk(){var t=null!==Ak&&Ak.apply(this,arguments)||this;return t.type=Lk.type,t}zp.registerClass(kk);var Pk,Ok=(u(Rk,Pk=nD),Rk.type="dataZoom.select",Rk);function Rk(){var t=null!==Pk&&Pk.apply(this,arguments)||this;return t.type=Rk.type,t}ig.registerClass(Ok);var Nk,Ek=W,zk=Wl+"toolbox-dataZoom_",Bk=(u(Vk,Nk=ZD),Vk.prototype.render=function(t,e,n,i){var r;this.brushController||(this.brushController=new LA(n.getZr()),this.brushController.on("brush",I(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new fk(Uk(t),e,{include:["grid"]}).makePanelOpts(r,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"});n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(210,219,238,0.2)"}})}(t,e,this,i,n),r=e,t.setIconStatus("back",1=c&&p<=e+1){for(var n=[],i=0;i=c&&p<=o+1)return function(t){for(var e=0,n=t.length,i=0,r=0;e\n\r<"))},OL)),t.Axis=gb,t.List=g_,t.Model=Gh,t.PRIORITY=Cm,t.color=on,t.connect=function(e){var t;return N(e)&&(t=e,e=null,wm(t,function(t){null!=t.group&&(e=t.group)}),e=e||"g_"+Cv++,wm(t,function(t){t.group=e})),Sv[e]=!0,e},t.dataTool={},t.dependencies={zrender:"5.0.0-alpha.2"},t.disConnect=Iv,t.disconnect=Dv,t.dispose=function(t){"string"==typeof t?t=wv[t]:t instanceof ov||(t=Av(t)),t instanceof ov&&!t.isDisposed()&&t.dispose()},t.env=_,t.extendChartView=function(t){return lg.extend(t)},t.extendComponentModel=Bv,t.extendComponentView=Vv,t.extendSeriesModel=function(t){return jf.extend(t)},t.format=_p,t.getCoordinateSystemDimensions=function(t){var e=Id.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=Av,t.getInstanceById=function(t){return wv[t]},t.getMap=function(t){var e=sy(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=bb,t.helper=$x,t.init=function(t,e,n){var i=Av(t);if(i)return i;var r=new ov(t,e,n);return r.id="ec_"+Mv++,wv[r.id]=r,lu(t,Tv,r.id),tv(r),r},t.matrix=Jn,t.number=Hl,t.parseGeoJSON=rb,t.parseGeoJson=vb,t.registerAction=Ov,t.registerCoordinateSystem=function(t,e){Id.register(t,e)},t.registerLayout=Rv,t.registerLoading=zv,t.registerLocale=Jh,t.registerMap=function(t,e,n){ay(t,e,n)},t.registerPostUpdate=function(t){vv.push(t)},t.registerPreprocessor=Lv,t.registerProcessor=Pv,t.registerTheme=kv,t.registerTransform=Fv,t.registerVisual=Nv,t.setCanvasCreator=function(t){g("createCanvas",t)},t.throttle=vg,t.time=_b,t.util=xb,t.vector=Lt,t.version="5.0.0-alpha.2",t.zrender=wl,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/dist/echarts.js b/dist/echarts.js index 264255a3bcbc0762f3e0f120b23dd5755f042d56..cfd3c9e64b95c9bc46c46f3d29669ab65d6e8e7d 100644 --- a/dist/echarts.js +++ b/dist/echarts.js @@ -708,9 +708,7 @@ function noop() {} - var zrUtil = - /*#__PURE__*/ - Object.freeze({ + var zrUtil = /*#__PURE__*/Object.freeze({ __proto__: null, $override: $override, guid: guid, @@ -901,9 +899,7 @@ return out; } - var vector = - /*#__PURE__*/ - Object.freeze({ + var vector = /*#__PURE__*/Object.freeze({ __proto__: null, create: create, copy: copy, @@ -1442,7 +1438,7 @@ function removeEventListener(el, name, handler, opt) { if (isDomLevel2) { - el.removeEventListener(name, handler); + el.removeEventListener(name, handler, opt); } else { el.detachEvent('on' + name, handler); } @@ -2697,13 +2693,9 @@ var requestAnimationFrame; - if (typeof window !== 'undefined') { - requestAnimationFrame = window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame; - } else { - requestAnimationFrame = function (func) { - return setTimeout(func, 16); - }; - } + requestAnimationFrame = typeof window !== 'undefined' && window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { + return setTimeout(func, 16); + }; var requestAnimationFrame$1 = requestAnimationFrame; var easing = { @@ -3649,9 +3641,7 @@ return 'rgb(' + r + ',' + g + ',' + b + ')'; } - var color = - /*#__PURE__*/ - Object.freeze({ + var color = /*#__PURE__*/Object.freeze({ __proto__: null, parse: parse, lift: lift, @@ -4157,7 +4147,7 @@ return; } - this._additiveAnimator = additiveTo; + this._additiveAnimators = additiveTo; } Animator.prototype.getTarget = function () { @@ -4183,7 +4173,7 @@ track = tracks[propName] = new Track(propName); var initialValue = void 0; - var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName); + var additiveTrack = this._getAdditiveTrack(propName); if (additiveTrack) { var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1]; @@ -4247,6 +4237,23 @@ } }; + Animator.prototype._getAdditiveTrack = function (trackName) { + var additiveTrack; + var additiveAnimators = this._additiveAnimators; + + if (additiveAnimators) { + for (var i = 0; i < additiveAnimators.length; i++) { + var track = additiveAnimators[i].getTrack(trackName); + + if (track) { + additiveTrack = track; + } + } + } + + return additiveTrack; + }; + Animator.prototype.start = function (easing, forceAnimate) { if (this._started > 0) { return; @@ -4260,7 +4267,7 @@ var propName = this._trackKeys[i]; var track = this._tracks[propName]; - var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName); + var additiveTrack = this._getAdditiveTrack(propName); var kfs = track.keyframes; track.prepare(additiveTrack); @@ -4283,9 +4290,21 @@ delay: this._delay, onframe: function (percent) { self._started = 2; + var additiveAnimators = self._additiveAnimators; - if (self._additiveAnimator && !self._additiveAnimator._clip) { - self._additiveAnimator = null; + if (additiveAnimators) { + var stillHasAdditiveAnimator = false; + + for (var i = 0; i < additiveAnimators.length; i++) { + if (additiveAnimators[i]._clip) { + stillHasAdditiveAnimator = true; + break; + } + } + + if (!stillHasAdditiveAnimator) { + self._additiveAnimators = null; + } } for (var i = 0; i < tracks.length; i++) { @@ -4620,6 +4639,7 @@ Animation.prototype.animate = function (target, options) { options = options || {}; + this.start(); var animator = new Animator(target, options.loop); this.addAnimator(animator); return animator; @@ -4923,21 +4943,21 @@ _this.__pointerCapturing = false; _this.dom = dom; _this.painterRoot = painterRoot; - _this.__localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); + _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); if (globalEventSupported) { - _this.__globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); + _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); } - mountLocalDOMEventListeners(_this, _this.__localHandlerScope); + mountLocalDOMEventListeners(_this, _this._localHandlerScope); return _this; } HandlerDomProxy.prototype.dispose = function () { - unmountDOMEventListeners(this.__localHandlerScope); + unmountDOMEventListeners(this._localHandlerScope); if (globalEventSupported) { - unmountDOMEventListeners(this.__globalHandlerScope); + unmountDOMEventListeners(this._globalHandlerScope); } }; @@ -4950,7 +4970,7 @@ if (globalEventSupported && +this.__pointerCapturing ^ +isPointerCapturing) { this.__pointerCapturing = isPointerCapturing; - var globalHandlerScope = this.__globalHandlerScope; + var globalHandlerScope = this._globalHandlerScope; isPointerCapturing ? mountGlobalDOMEventListeners(this, globalHandlerScope) : unmountDOMEventListeners(globalHandlerScope); } }; @@ -5067,9 +5087,7 @@ return b; } - var matrix = - /*#__PURE__*/ - Object.freeze({ + var matrix = /*#__PURE__*/Object.freeze({ __proto__: null, create: create$1, identity: identity, @@ -5942,7 +5960,7 @@ var dpr = 1; if (typeof window !== 'undefined') { - dpr = Math.max(window.devicePixelRatio || 1, 1); + dpr = Math.max(window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1); } var devicePixelRatio = dpr; @@ -6804,6 +6822,8 @@ if (zr) { zr.animation.addAnimator(animator); } + + zr && zr.wakeUp(); }; Element.prototype.updateDuringAnimation = function (key) { @@ -6912,7 +6932,7 @@ } } - if (Object.defineProperty) { + if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) { createLegacyProperty('position', '_legacyPos', 'x', 'y'); createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY'); createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY'); @@ -7036,20 +7056,22 @@ if (keyLen > 0 || cfg.force) { var existsAnimators = animatable.animators; - var lastAnimator = void 0; + var existsAnimatorsOnSameTarget = []; for (var i = 0; i < existsAnimators.length; i++) { if (existsAnimators[i].targetName === topKey) { - lastAnimator = existsAnimators[i]; + existsAnimatorsOnSameTarget.push(existsAnimators[i]); } } - if (!additive && lastAnimator) { - var allAborted = lastAnimator.stopTracks(changedKeys); + if (!additive && existsAnimatorsOnSameTarget.length) { + for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) { + var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys); - if (allAborted) { - var idx = indexOf(existsAnimators, lastAnimator); - existsAnimators.splice(idx, 1); + if (allAborted) { + var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]); + existsAnimators.splice(idx, 1); + } } } @@ -7084,7 +7106,7 @@ } } - var animator = new Animator(source, false, additive ? lastAnimator : null); + var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null); animator.targetName = topKey; if (cfg.scope) { @@ -13878,6 +13900,8 @@ var ZRender = function () { function ZRender(id, dom, opts) { + var _this = this; + this._stillFrameAccum = 0; this._needsRefresh = true; this._needsRefreshHover = true; @@ -13909,7 +13933,9 @@ this.handler = new Handler(storage, painter, handerProxy, painter.root); this.animation = new Animation({ stage: { - update: bind(this.flush, this) + update: function () { + return _this._flush(true); + } } }); this.animation.start(); @@ -13918,13 +13944,13 @@ ZRender.prototype.add = function (el) { this.storage.addRoot(el); el.addSelfToZr(this); - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.remove = function (el) { this.storage.delRoot(el); el.removeSelfFromZr(this); - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.configLayer = function (zLevel, config) { @@ -13932,7 +13958,7 @@ this.painter.configLayer(zLevel, config); } - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.setBackgroundColor = function (backgroundColor) { @@ -13940,7 +13966,7 @@ this.painter.setBackgroundColor(backgroundColor); } - this._needsRefresh = true; + this.refresh(); this._backgroundColor = backgroundColor; this._darkMode = isDarkMode(backgroundColor); }; @@ -13973,11 +13999,15 @@ }; ZRender.prototype.flush = function () { + this._flush(false); + }; + + ZRender.prototype._flush = function (fromInside) { var triggerRendered; if (this._needsRefresh) { triggerRendered = true; - this.refreshImmediately(true); + this.refreshImmediately(fromInside); } if (this._needsRefreshHover) { @@ -14119,10 +14149,8 @@ painterCtors[name] = Ctor; } - var version = '5.0.0-alpha.1'; - var zrender = - /*#__PURE__*/ - Object.freeze({ + var version = '5.0.0-alpha.2'; + var zrender = /*#__PURE__*/Object.freeze({ __proto__: null, init: init, dispose: dispose, @@ -14443,13 +14471,16 @@ } } - function isNumeric(v) { - return v - parseFloat(v) >= 0; + function numericToNumber(val) { + var valFloat = parseFloat(val); + return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN; } - var number = - /*#__PURE__*/ - Object.freeze({ + function isNumeric(val) { + return !isNaN(numericToNumber(val)); + } + + var number = /*#__PURE__*/Object.freeze({ __proto__: null, linearMap: linearMap, parsePercent: parsePercent$2, @@ -14468,6 +14499,7 @@ nice: nice, quantile: quantile, reformIntervals: reformIntervals, + numericToNumber: numericToNumber, isNumeric: isNumeric }); var DUMMY_COMPONENT_NAME_PREFIX = 'series\0'; @@ -16025,8 +16057,10 @@ } } - fillColor = fillColor || globalTextStyle.color; - strokeColor = strokeColor || globalTextStyle.textBorderColor; + if (!isAttached) { + fillColor = fillColor || globalTextStyle.color; + strokeColor = strokeColor || globalTextStyle.textBorderColor; + } if (fillColor != null) { textStyle.fill = fillColor; @@ -16964,42 +16998,6 @@ return isUTC ? 'setUTCSeconds' : 'setSeconds'; } - var time = - /*#__PURE__*/ - Object.freeze({ - __proto__: null, - ONE_SECOND: ONE_SECOND, - ONE_MINUTE: ONE_MINUTE, - ONE_HOUR: ONE_HOUR, - ONE_DAY: ONE_DAY, - ONE_YEAR: ONE_YEAR, - defaultLeveledFormatter: defaultLeveledFormatter, - fullLeveledFormatter: fullLeveledFormatter, - primaryTimeUnits: primaryTimeUnits, - timeUnits: timeUnits, - pad: pad, - getPrimaryTimeUnit: getPrimaryTimeUnit, - isPrimaryTimeUnit: isPrimaryTimeUnit, - getDefaultFormatPrecisionOfInterval: getDefaultFormatPrecisionOfInterval, - format: format, - leveledFormat: leveledFormat, - getUnitFromValue: getUnitFromValue, - getUnitValue: getUnitValue, - fullYearGetterName: fullYearGetterName, - monthGetterName: monthGetterName, - dateGetterName: dateGetterName, - hoursGetterName: hoursGetterName, - minutesGetterName: minutesGetterName, - secondsGetterName: secondsGetterName, - millisecondsGetterName: millisecondsGetterName, - fullYearSetterName: fullYearSetterName, - monthSetterName: monthSetterName, - dateSetterName: dateSetterName, - hoursSetterName: hoursSetterName, - minutesSetterName: minutesSetterName, - secondsSetterName: secondsSetterName, - millisecondsSetterName: millisecondsSetterName - }); var mathMax$3 = Math.max; var mathMin$3 = Math.min; var _customShapeMap = {}; @@ -17272,6 +17270,11 @@ var text = el.getTextContent(); var host_1 = text && innerLabel(text); host_1 && (host_1.startValue = host_1.nextValue); + var duration = animatableModel.get('animationDuration'); + + if (!duration) { + host_1.nextValue = interpolateValues_1; + } var during = function (percent) { var text = el.getTextContent(); @@ -17513,9 +17516,7 @@ registerShape('line', Line); registerShape('bezierCurve', BezierCurve); registerShape('arc', Arc); - var graphic = - /*#__PURE__*/ - Object.freeze({ + var graphic = /*#__PURE__*/Object.freeze({ __proto__: null, extendShape: extendShape, extendPath: extendPath, @@ -17734,9 +17735,7 @@ } } - var format$1 = - /*#__PURE__*/ - Object.freeze({ + var format$1 = /*#__PURE__*/Object.freeze({ __proto__: null, addCommas: addCommas, toCamelCase: toCamelCase, @@ -18184,7 +18183,7 @@ var globalDefault = { darkMode: 'auto', - color: ['#5470c6', '#91cc75', '#ffbf25', '#ef6868', '#ffa086', '#b25790', '#fe719b', '#59d9d2', '#46a9ee'], + color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'], gradientColor: ['#f6efa6', '#d88273', '#bf444c'], textStyle: { fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif', @@ -19268,7 +19267,7 @@ function isNotTargetSeries(seriesModel, payload) { if (payload) { - var index = payload.seiresIndex; + var index = payload.seriesIndex; var id = payload.seriesId; var name_1 = payload.seriesName; return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1; @@ -20796,6 +20795,136 @@ return value == null || value === '' ? NaN : +value; } + var valueParserMap = createHashMap({ + 'number': function (val) { + return parseFloat(val); + }, + 'time': function (val) { + return +parseDate(val); + }, + 'trim': function (val) { + return typeof val === 'string' ? trim(val) : val; + } + }); + + function getRawValueParser(type) { + return valueParserMap.get(type); + } + + var ORDER_COMPARISON_OP_MAP = { + lt: function (lval, rval) { + return lval < rval; + }, + lte: function (lval, rval) { + return lval <= rval; + }, + gt: function (lval, rval) { + return lval > rval; + }, + gte: function (lval, rval) { + return lval >= rval; + } + }; + + var FilterOrderComparator = function () { + function FilterOrderComparator(op, rval) { + if (typeof rval !== 'number') { + var errMsg = ''; + + if (true) { + errMsg = 'rvalue of "<", ">", "<=", ">=" can only be number in filter.'; + } + + throwError(errMsg); + } + + this._opFn = ORDER_COMPARISON_OP_MAP[op]; + this._rvalFloat = numericToNumber(rval); + } + + FilterOrderComparator.prototype.evaluate = function (lval) { + return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat); + }; + + return FilterOrderComparator; + }(); + + var SortOrderComparator = function () { + function SortOrderComparator(order, incomparable) { + var isDesc = order === 'desc'; + this._resultLT = isDesc ? 1 : -1; + + if (incomparable == null) { + incomparable = isDesc ? 'min' : 'max'; + } + + this._incomparable = incomparable === 'min' ? -Infinity : Infinity; + } + + SortOrderComparator.prototype.evaluate = function (lval, rval) { + var lvalTypeof = typeof lval; + var rvalTypeof = typeof rval; + var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval); + var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval); + var lvalNotNumeric = isNaN(lvalFloat); + var rvalNotNumeric = isNaN(rvalFloat); + + if (lvalNotNumeric) { + lvalFloat = this._incomparable; + } + + if (rvalNotNumeric) { + rvalFloat = this._incomparable; + } + + if (lvalNotNumeric && rvalNotNumeric) { + var lvalIsStr = lvalTypeof === 'string'; + var rvalIsStr = rvalTypeof === 'string'; + + if (lvalIsStr) { + lvalFloat = rvalIsStr ? lval : 0; + } + + if (rvalIsStr) { + rvalFloat = lvalIsStr ? rval : 0; + } + } + + return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0; + }; + + return SortOrderComparator; + }(); + + var FilterEqualityComparator = function () { + function FilterEqualityComparator(isEq, rval) { + this._rval = rval; + this._isEQ = isEq; + this._rvalTypeof = typeof rval; + this._rvalFloat = numericToNumber(rval); + } + + FilterEqualityComparator.prototype.evaluate = function (lval) { + var eqResult = lval === this._rval; + + if (!eqResult) { + var lvalTypeof = typeof lval; + + if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) { + eqResult = numericToNumber(lval) === this._rvalFloat; + } + } + + return this._isEQ ? eqResult : !eqResult; + }; + + return FilterEqualityComparator; + }(); + + function createFilterComparator(op, rval) { + return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null; + } + var ExternalSource = function () { function ExternalSource() {} @@ -22210,7 +22339,7 @@ fontSize: '12px', maskColor: 'rgba(255, 255, 255, 0.8)', showSpinner: true, - color: '#c23531', + color: '#5470c6', spinnerRadius: 10, lineWidth: 5, zlevel: 0 @@ -22709,7 +22838,8 @@ color: colorAll, colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll] }; - var contrastColor = '#eee'; + var contrastColor = '#B9B8CE'; + var backgroundColor = '#100C2A'; var axisCommon = function () { return { @@ -22718,46 +22848,38 @@ color: contrastColor } }, - axisTick: { - lineStyle: { - color: contrastColor - } - }, - axisLabel: { - textStyle: { - color: contrastColor - } - }, splitLine: { lineStyle: { - type: 'dashed', - color: '#aaa' + color: '#484753' } }, splitArea: { areaStyle: { - color: contrastColor + color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)'] + } + }, + minorSplitLine: { + lineStyle: { + color: '#20203B' } } }; }; - var colorPalette = ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53', '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42']; + var colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff']; var theme = { darkMode: true, color: colorPalette, - backgroundColor: '#333', - tooltip: { - axisPointer: { - lineStyle: { - color: contrastColor - }, - crossStyle: { - color: contrastColor - }, - label: { - color: '#000' - } + backgroundColor: backgroundColor, + axisPointer: { + lineStyle: { + color: '#817f91' + }, + crossStyle: { + color: '#817f91' + }, + label: { + color: '#fff' } }, legend: { @@ -22770,7 +22892,10 @@ }, title: { textStyle: { - color: contrastColor + color: '#EEF1FA' + }, + subtextStyle: { + color: '#B9B8CE' } }, toolbox: { @@ -22781,8 +22906,48 @@ } }, dataZoom: { + borderColor: '#71708A', textStyle: { color: contrastColor + }, + brushStyle: { + color: 'rgba(135,163,206,0.3)' + }, + handleStyle: { + color: '#353450', + borderColor: '#C5CBE3' + }, + moveHandleStyle: { + color: '#B0B6C3', + opacity: 0.3 + }, + fillerColor: 'rgba(135,163,206,0.2)', + emphasis: { + handleStyle: { + borderColor: '#91B7F2', + color: '#4D587D' + }, + moveHandleStyle: { + color: '#636D9A', + opacity: 0.7 + } + }, + dataBackground: { + lineStyle: { + color: '#71708A', + width: 1 + }, + areaStyle: { + color: '#71708A' + } + }, + selectedDataBackground: { + lineStyle: { + color: '#87A3CE' + }, + areaStyle: { + color: '#87A3CE' + } } }, visualMap: { @@ -22794,23 +22959,28 @@ lineStyle: { color: contrastColor }, - itemStyle: { - normal: { - color: colorPalette[1] - } - }, label: { - normal: { - textStyle: { - color: contrastColor - } + textStyle: { + color: contrastColor } }, controlStyle: { - normal: { - color: contrastColor, - borderColor: contrastColor - } + color: contrastColor, + borderColor: contrastColor + } + }, + calendar: { + itemStyle: { + color: backgroundColor + }, + dayLabel: { + color: contrastColor + }, + monthLabel: { + color: contrastColor + }, + yearLabel: { + color: contrastColor } }, timeAxis: axisCommon(), @@ -24207,10 +24377,10 @@ var height = api.getHeight(); var labelList = prepareLayoutList(this._labelList); var labelsNeedsAdjustOnX = filter(labelList, function (item) { - return item.layoutOption.moveOverlap === 'shift-x'; + return item.layoutOption.moveOverlap === 'shiftX'; }); var labelsNeedsAdjustOnY = filter(labelList, function (item) { - return item.layoutOption.moveOverlap === 'shift-y'; + return item.layoutOption.moveOverlap === 'shiftY'; }); shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width); shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height); @@ -26059,9 +26229,9 @@ var each$3 = each; var isFunction$1 = isFunction; var isObject$2 = isObject; - var version$1 = '5.0.0-alpha.1'; + var version$1 = '5.0.0-alpha.2'; var dependencies = { - zrender: '5.0.0-alpha.1' + zrender: '5.0.0-alpha.2' }; var TEST_FRAME_REMAIN_TIME = 1; var PRIORITY_PROCESSOR_SERIES_FILTER = 800; @@ -32293,9 +32463,7 @@ mixin(Model, AxisModelCommonMixin); } - var helper = - /*#__PURE__*/ - Object.freeze({ + var helper = /*#__PURE__*/Object.freeze({ __proto__: null, createList: createList, getLayoutRect: getLayoutRect, @@ -33016,6 +33184,10 @@ } var parseGeoJson$1 = parseGeoJson; + var time = { + parse: parseDate, + format: format + }; var ecUtil = {}; each(['map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter', 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction', 'extend', 'defaults', 'clone', 'merge'], function (name) { ecUtil[name] = zrUtil[name]; @@ -33025,7 +33197,7 @@ each(GRAPHIC_KEYS, function (name) { graphic$1[name] = graphic[name]; }); - var aliasToOpMap = createHashMap({ + var RELATIONAL_EXPRESSION_OP_ALIAS_MAP = { value: 'eq', '<': 'lt', '<=': 'lte', @@ -33034,44 +33206,30 @@ '=': 'eq', '!=': 'ne', '<>': 'ne' - }); - var relationalOpEvaluateMap = createHashMap({ - lt: function (tarVal, condVal) { - return tarVal < condVal; - }, - lte: function (tarVal, condVal) { - return tarVal <= condVal; - }, - gt: function (tarVal, condVal) { - return tarVal > condVal; - }, - gte: function (tarVal, condVal) { - return tarVal >= condVal; - }, - eq: function (tarVal, condVal) { - return tarVal === condVal; - }, - ne: function (tarVal, condVal) { - return tarVal !== condVal; - }, - reg: function (tarVal, condVal) { - var type = typeof tarVal; - return type === 'string' ? condVal.test(tarVal) : type === 'number' ? condVal.test(tarVal + '') : false; - } - }); + }; - function parseRegCond(condVal) { - return isString(condVal) ? new RegExp(condVal) : isRegExp(condVal) ? condVal : null; - } + var RegExpEvaluator = function () { + function RegExpEvaluator(rVal) { + var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null; - var valueParserMap = createHashMap({ - time: function (val) { - return +parseDate(val); - }, - trim: function (val) { - return typeof val === 'string' ? trim(val) : val; + if (condValue == null) { + var errMsg = ''; + + if (true) { + errMsg = makePrintable('Illegal regexp', rVal, 'in'); + } + + throwError(errMsg); + } } - }); + + RegExpEvaluator.prototype.evaluate = function (lVal) { + var type = typeof lVal; + return type === 'string' ? this._condVal.test(lVal) : type === 'number' ? this._condVal.test(lVal + '') : false; + }; + + return RegExpEvaluator; + }(); var ConstConditionInternal = function () { function ConstConditionInternal() {} @@ -33133,15 +33291,13 @@ function RelationalConditionInternal() {} RelationalConditionInternal.prototype.evaluate = function () { - var getValue = this.getValue; var needParse = !!this.valueParser; + var getValue = this.getValue; var tarValRaw = getValue(this.valueGetterParam); var tarValParsed = needParse ? this.valueParser(tarValRaw) : null; for (var i = 0; i < this.subCondList.length; i++) { - var subCond = this.subCondList[i]; - - if (!subCond.evaluate(needParse ? tarValParsed : tarValRaw, subCond.condValue)) { + if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) { return false; } } @@ -33235,20 +33391,22 @@ var valueGetterParam = getters.prepareGetValue(exprOption); var subCondList = []; var exprKeys = keys(exprOption); - var parserName = exprOption.parse; - var valueParser = parserName ? valueParserMap.get(parserName) : null; + var parserName = exprOption.parser; + var valueParser = parserName ? getRawValueParser(parserName) : null; for (var i = 0; i < exprKeys.length; i++) { var keyRaw = exprKeys[i]; - if (keyRaw === 'parse' || getters.valueGetterAttrMap.get(keyRaw)) { + if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) { continue; } - var op = aliasToOpMap.get(keyRaw) || keyRaw; - var evaluateHandler = relationalOpEvaluateMap.get(op); + var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw; + var condValueRaw = exprOption[keyRaw]; + var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw; + var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed); - if (!evaluateHandler) { + if (!evaluator) { if (true) { errMsg = makePrintable('Illegal relational operation: "' + keyRaw + '" in condition:', exprOption); } @@ -33256,29 +33414,7 @@ throwError(errMsg); } - var condValueRaw = exprOption[keyRaw]; - var condValue = void 0; - - if (keyRaw === 'reg') { - condValue = parseRegCond(condValueRaw); - - if (condValue == null) { - var errMsg_1 = ''; - - if (true) { - errMsg_1 = makePrintable('Illegal regexp', condValueRaw, 'in', exprOption); - } - - throwError(errMsg_1); - } - } else { - condValue = valueParser ? valueParser(condValueRaw) : condValueRaw; - } - - subCondList.push({ - condValue: condValue, - evaluate: evaluateHandler - }); + subCondList.push(evaluator); } if (!subCondList.length) { @@ -33376,20 +33512,12 @@ }; } }; - var SortOrderValidMap = { - asc: true, - desc: true - }; var sampleLog = ''; if (true) { - sampleLog = ['Valid config is like:', '{ dimension: "age", order: "asc" }', 'or [{ dimension: "age", order: "asc"], { dimension: "date", order: "desc" }]'].join(''); + sampleLog = ['Valid config is like:', '{ dimension: "age", order: "asc" }', 'or [{ dimension: "age", order: "asc"], { dimension: "date", order: "desc" }]'].join(' '); } - var timeParser = function (val) { - return +parseDate(val); - }; - var sortTransform = { type: 'echarts:sort', transform: function transform(params) { @@ -33410,7 +33538,8 @@ each(orderExprList, function (orderExpr) { var dimLoose = orderExpr.dimension; var order = orderExpr.order; - var parserName = orderExpr.parse; + var parserName = orderExpr.parser; + var incomparable = orderExpr.incomparable; if (dimLoose == null) { if (true) { @@ -33420,7 +33549,7 @@ throwError(errMsg); } - if (!hasOwn(SortOrderValidMap, order)) { + if (order !== 'asc' && order !== 'desc') { if (true) { errMsg = 'Sort transform config must has "order" specified.' + sampleLog; } @@ -33428,6 +33557,26 @@ throwError(errMsg); } + if (incomparable && incomparable !== 'min' && incomparable !== 'max') { + var errMsg_1 = ''; + + if (true) { + errMsg_1 = 'incomparable must be "min" or "max" rather than "' + incomparable + '".'; + } + + throwError(errMsg_1); + } + + if (order !== 'asc' && order !== 'desc') { + var errMsg_2 = ''; + + if (true) { + errMsg_2 = 'order must be "asc" or "desc" rather than "' + order + '".'; + } + + throwError(errMsg_2); + } + var dimInfo = source.getDimensionInfo(dimLoose); if (!dimInfo) { @@ -33438,24 +33587,20 @@ throwError(errMsg); } - var parser; - - if (parserName) { - if (parserName !== 'time') { - if (true) { - errMsg = makePrintable('Invalid parser name' + parserName + '.\n', 'Illegal config:', orderExpr, '.\n'); - } + var parser = parserName ? getRawValueParser(parserName) : null; - throwError(errMsg); + if (parserName && !parser) { + if (true) { + errMsg = makePrintable('Invalid parser name ' + parserName + '.\n', 'Illegal config:', orderExpr, '.\n'); } - parser = timeParser; + throwError(errMsg); } orderDefList.push({ dimIdx: dimInfo.index, - orderReturn: order === 'asc' ? -1 : 1, - parser: parser + parser: parser, + comparator: new SortOrderComparator(order, incomparable) }); }); @@ -33488,14 +33633,6 @@ return 1; } - if (item0 == null) { - return 1; - } - - if (item1 == null) { - return -1; - } - for (var i = 0; i < orderDefList.length; i++) { var orderDef = orderDefList[i]; var val0 = source.retrieveItemValue(item0, orderDef.dimIdx); @@ -33506,10 +33643,10 @@ val1 = orderDef.parser(val1); } - if (val0 < val1) { - return orderDef.orderReturn; - } else if (val0 > val1) { - return -orderDef.orderReturn; + var result = orderDef.comparator.evaluate(val0, val1); + + if (result !== 0) { + return result; } } @@ -35566,9 +35703,6 @@ mixin(CartesianAxisModel, AxisModelCommonMixin); var extraOption = { offset: 0, - sort: false, - realtimeSort: false, - sortSeriesIndex: null, categorySortInfo: [] }; axisModelCreator('x', CartesianAxisModel, extraOption); @@ -37633,7 +37767,8 @@ itemStyle: { borderColor: '#212121' } - } + }, + realtimeSort: false }); return BarSeriesModel; }(BaseBarSeriesModel); @@ -37750,6 +37885,7 @@ BarView.prototype.render = function (seriesModel, ecModel, api, payload) { this._model = seriesModel; + this.removeOnRenderedListener(api); this._updateDrawMode(seriesModel); @@ -37786,14 +37922,14 @@ }; BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) { - var that = this; + var _this = this; + var group = this.group; var data = seriesModel.getData(); var oldData = this._data; var coord = seriesModel.coordinateSystem; var baseAxis = coord.getBaseAxis(); var isHorizontalOrRadial; - var lastAnimator = null; if (coord.type === 'cartesian2d') { isHorizontalOrRadial = baseAxis.isHorizontal(); @@ -37803,14 +37939,32 @@ var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null; var axis2DModel = baseAxis.model; - var axisSort = coord.type === 'cartesian2d' && axis2DModel.get('sort') && axis2DModel.get('sortSeriesIndex') === seriesModel.seriesIndex; - var realtimeSort = axisSort && axis2DModel.get('realtimeSort'); + var realtimeSort = seriesModel.get('realtimeSort'); - if (realtimeSort && this._isFirstFrame && data.count()) { - this._initSort(data, isHorizontalOrRadial, baseAxis, api); + if (realtimeSort && data.count()) { + if (this._isFirstFrame) { + this._initSort(data, isHorizontalOrRadial, baseAxis, api); - this._isFirstFrame = false; - return; + this._isFirstFrame = false; + return; + } else { + this._onRendered = function () { + var orderMap = function (idx) { + var el = data.getItemGraphicEl(idx); + + if (el) { + var shape = el.shape; + return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0; + } else { + return 0; + } + }; + + _this._updateSort(data, orderMap, baseAxis, api); + }; + + api.getZr().on('rendered', this._onRendered); + } } var needsClip = seriesModel.get('clip', true) || realtimeSort; @@ -37853,8 +38007,7 @@ if (realtimeSort) { el.disableLabelAnimation = true; - var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false); - animator && (lastAnimator = animator); + updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false); } else if (coord.type === 'cartesian2d') { initProps(el, { shape: layout @@ -37909,8 +38062,7 @@ if (realtimeSort) { el.disableLabelAnimation = true; - var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true); - animator && (lastAnimator = animator); + updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true); } else { updateProps(el, { shape: layout @@ -37934,23 +38086,6 @@ group.add(bgGroup); this._backgroundEls = bgEls; this._data = data; - - if (lastAnimator) { - lastAnimator.during(function () { - var orderMap = function (idx) { - var el = data.getItemGraphicEl(idx); - - if (el) { - var shape = el.shape; - return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0; - } else { - return 0; - } - }; - - that._updateSort(data, orderMap, baseAxis, api); - }); - } }; BarView.prototype._renderLarge = function (seriesModel, ecModel, api) { @@ -38036,6 +38171,7 @@ for (var i = extent[0]; i < extent[1]; ++i) { if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) { + this.removeOnRenderedListener(api); var action = { type: 'changeAxisOrder', componentType: baseAxis.dim + 'Axis', @@ -38061,8 +38197,21 @@ api.dispatchAction(action); }; - BarView.prototype.remove = function () { + BarView.prototype.remove = function (ecModel, api) { this._clear(this._model); + + this.removeOnRenderedListener(api); + }; + + BarView.prototype.dispose = function (ecModel, api) { + this.removeOnRenderedListener(api); + }; + + BarView.prototype.removeOnRenderedListener = function (api) { + if (this._onRendered) { + api.getZr().off('rendered', this._onRendered); + this._onRendered = null; + } }; BarView.prototype._clear = function (model) { @@ -38205,9 +38354,6 @@ (isUpdate ? updateProps : initProps)(el, { shape: seriesTarget }, seriesModel, newIndex, null); - var lastAnimator = el.animators.length ? find(el.animators, function (animator) { - return animator.targetName === 'shape' && !!animator.getTrack('width'); - }) : null; (isUpdate ? updateProps : initProps)(el, { shape: axisTarget }, axisModel, newIndex); @@ -38218,7 +38364,6 @@ var labelModel = seriesModel.getModel('label'); (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter); - return lastAnimator; } } @@ -39147,7 +39292,6 @@ var data = seriesModel.getData(); var oldData = this._data; var group = this.group; - var hasAnimation = ecModel.get('animation'); var startAngle; if (!oldData && data.count() > 0) { @@ -49934,8 +50078,8 @@ var DEFAULT_BRUSH_OPT = { brushStyle: { lineWidth: 2, - stroke: 'rgba(0,0,0,0.3)', - fill: 'rgba(0,0,0,0.1)' + stroke: 'rgba(210,219,238,0.3)', + fill: '#D2DBEE' }, transformable: true, brushMode: 'single', @@ -51313,15 +51457,10 @@ label: { show: true, position: 'right', - color: '#000', fontSize: 12 }, levels: [], nodeAlign: 'justify', - itemStyle: { - borderWidth: 1, - borderColor: '#333' - }, lineStyle: { color: '#314656', opacity: 0.2, @@ -52566,14 +52705,17 @@ var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1); var low = useExtreme ? min : Math.max(min, Q1 - bound); var high = useExtreme ? max : Math.min(max, Q3 + bound); - boxData.push([i, low, Q1, Q2, Q3, high]); + var itemNameFormatter = opt.itemNameFormatter; + var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({ + value: i + }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + ''; + boxData.push([itemName, low, Q1, Q2, Q3, high]); for (var j = 0; j < ascList.length; j++) { var dataItem = ascList[j]; if (dataItem < low || dataItem > high) { - var outlier = [i, dataItem]; - opt.layout === 'vertical' && outlier.reverse(); + var outlier = [itemName, dataItem]; outliers.push(outlier); } } @@ -52589,7 +52731,6 @@ type: 'echarts:boxplot', transform: function transform(params) { var source = params.source; - var config = params.config || {}; var sourceData = source.data; if (!isArray(sourceData) || sourceData[0] && !isArray(sourceData[0])) { @@ -52602,7 +52743,7 @@ throwError(errMsg); } - var result = prepareBoxplotData(source.data, config); + var result = prepareBoxplotData(source.data, params.config); return [{ data: result.boxData }, { @@ -58803,7 +58944,7 @@ hasOwn(richItem, 'fill') && (out.textFill = richItem.fill); hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill); hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth); - hasOwn(richItem, 'font') && (out.textStrokeWidth = richItem.font); + hasOwn(richItem, 'font') && (out.font = richItem.font); hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle); hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight); hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize); @@ -64858,7 +64999,7 @@ brushType: 'auto', brushStyle: { lineWidth: 0, - fill: 'rgba(0,0,0,0.2)' + fill: 'rgba(210,219,238,0.2)' } } : false); } @@ -65026,7 +65167,7 @@ var centerPos = ''; var rotate = 0; - if (['left', 'right'].includes(arrowPos)) { + if (indexOf(['left', 'right'], arrowPos) > -1) { centerPos = arrowPos + ":-6px;top:50%;transform:translateY(-50%)"; rotate = arrowPos === 'left' ? -225 : -45; } else { @@ -65060,7 +65201,7 @@ return cssText.join(';'); } - function assembleCssText(tooltipModel) { + function assembleCssText(tooltipModel, isFirstShow) { var cssText = []; var transitionDuration = tooltipModel.get('transitionDuration'); var backgroundColor = tooltipModel.get('backgroundColor'); @@ -65072,7 +65213,7 @@ var padding = tooltipModel.get('padding'); var boxShadow = shadowOffsetX + "px " + shadowOffsetY + "px " + shadowBlur + "px " + shadowColor; cssText.push('box-shadow:' + boxShadow); - transitionDuration && !['top', 'left', 'bottom', 'right'].includes(tooltipModel.get('position')) && tooltipModel.get('trigger') !== 'item' && cssText.push(assembleTransition(transitionDuration)); + !isFirstShow && transitionDuration && indexOf(['top', 'left', 'bottom', 'right'], tooltipModel.get('position')) > -1 && tooltipModel.get('trigger') !== 'item' && cssText.push(assembleTransition(transitionDuration)); if (backgroundColor) { if (env.canvasSupported) { @@ -65124,6 +65265,7 @@ this._show = false; this._styleCoord = [0, 0]; this._enterable = true; + this._firstShow = true; if (env.wxa) { return null; @@ -65192,10 +65334,11 @@ var styleCoord = this._styleCoord; var offset = el.offsetHeight / 2; nearPointColor = getFinalColor(nearPointColor); - el.style.cssText = gCssText + assembleCssText(tooltipModel) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + ("border-color: " + nearPointColor + ";") + (tooltipModel.get('extraCssText') || ''); + el.style.cssText = gCssText + assembleCssText(tooltipModel, this._firstShow) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + ("border-color: " + nearPointColor + ";") + (tooltipModel.get('extraCssText') || ''); el.style.display = el.innerHTML ? 'block' : 'none'; el.style.pointerEvents = this._enterable ? 'auto' : 'none'; this._show = true; + this._firstShow = false; }; TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) { @@ -66634,8 +66777,8 @@ transformable: true, brushStyle: { borderWidth: 1, - color: 'rgba(120,140,180,0.3)', - borderColor: 'rgba(120,140,180,0.8)' + color: 'rgba(210,219,238,0.3)', + borderColor: '#D2DBEE' }, throttleType: 'fixRate', throttleDelay: 0, diff --git a/dist/echarts.js.map b/dist/echarts.js.map index 606c42451f0f69e6b5382e827f297a50bd9c1740..f51074b610091268e7d3a1d96def1b5d091f9c48 100644 --- a/dist/echarts.js.map +++ b/dist/echarts.js.map @@ -1 +1 @@ -{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__spreadArrays","s","i","il","arguments","length","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","apply","clone","source","result","typeStr","call","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","mergeAll","targetAndSources","extend","assign","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","find","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","concatArray","newArray","offset","createObject","proto","properties","StyleCtor","hasOwn","own","noop","zrUtil","freeze","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","lengthSquare","mul","div","dot","scale","normalize","distance","dist","distanceSquare","distSquare","negate","lerp","t","applyTransform","m","min","max","vector","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","_calcOut","transformLocalCoord","elFrom","elTarget","inX","inY","transformCoordWithViewport","el","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut$1","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","isMiddleOrRightButtonOnMouseUpDown","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","start","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","sort","remaining","ts","minRun","force","invalidZErrorLogged","logInvalidZError","warn","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","traverse","update","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","beforeUpdate","__dirty","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","updateTransform","childrenRef","children","child","markRedraw","disp","__clipPaths","isNaN","textGuide","getTextGuideLine","textEl","getTextContent","addRoot","delRoot","idx","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","cos","PI","sinusoidalOut","sin","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","m1","m2","lerpNumber","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","iv","substr","op","ep","fname","params","split","alpha","pop","hsla2rgba","hsla","rgba","rgba2hsla","R","G","B","vMin","vMax","L","H","S","deltaR","deltaG","deltaB","lift","color","level","colorArr","stringify","toHex","fastLerp","normalizedValue","colors","leftIndex","floor","rightIndex","ceil","leftColor","rightColor","dv","fastMapToColor","lerp$1","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","lum","backgroundLum","random","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","needsAnimate","getAdditiveTrack","_additiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_doneList","_onframeList","_clip","_target","_loop","_additiveAnimator","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","getTrack","lastFinalKf","during","callback","isPaused","_doneCallback","doneList","forceAnimate","clip","animation","addClip","forwardToLast","removeClip","done","getClip","stopTracks","tracksKeys","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","addAnimator","animator","removeAnimator","Date","getTime","nextClip","finished","_startLoop","animate","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","scope","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","__localHandlerScope","__globalHandlerScope","isPointerCapturing","globalHandlerScope","create$1","identity","copy$1","mul$1","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","ct","scale$1","vx","vy","invert","clone$2","matrix","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","setLocalTransform","atan2","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","Point","other","equal","scalar","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","updateInnerText","forceUpdate","_textContent","textConfig","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","previousTextContent","removeTextContent","cfg","setTextGuideLine","guideLine","removeTextGuideLine","refreshHover","refresh","dirty","inHover","textContent","updateDuringAnimation","stopAnimation","leftAnimators","animateTo","animationProps","animateFrom","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","count","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","lastAnimator","revertedSource","reversedTarget","sourceClone","STYLE_MAGIC_KEY","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","rectContain","coord","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","_getAnimationStyleProps","mergedStyle","dispProto","invisible","culling","incremental","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","Q","Z","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","PathProxy","notSaveData","_xi","_yi","_x0","_y0","_saveData","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathData","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","Path","shape","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","buildPath","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","isZeroArea","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","SVGPath","isPathProxy","createPathOptions","pathProxy","innerOpts","createFromString","extendFromString","defaultOpts","mergePath","pathEls","pathList","pathEl","pathBundle","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpRect","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","ZRImage","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","DILIMITER_REG","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","nodeParsers","SVGParser","_defs","_root","_isDefine","_isText","xml","viewBox","getAttribute","parseAttributes","_parseNode","viewBoxRect","viewBoxTransform","viewBoxArr","makeViewBoxTransform","ignoreViewBox","elRoot","ignoreRootClip","xmlNode","parentGroup","defineParsers","def","_parseText","_textX","_textY","inheritStyle","textStyle","fontSize","fontFamily","fontStyle","fontWeight","internalField","circle","line","ellipse","pointsStr","pointsArr","parsePoints","polygon","polyline","img","gradient","_parseGradientColorStops","offsetStr","stopColor","__inheritedStyle","pointsString","attributesMap","defs","onlyInlineStyle","zrStyle","parseTransformAttribute","parseStyleAttribute","svgAttrName","attrValue","getPaint","urlRegex","urlMatch","url","transformRegex","transformOps_1","valueArr","styleRegex","styleList","styleRegResult","exec","parseSVG","CompoundPath","_updatePathDirty","paths","dirtyPath","IncrementalDisplayble","notClear","_displayables","_temporaryDisplayables","_cursor","getCursor","clearDisplaybles","clearTemporalDisplayables","addDisplayable","notPersistent","addDisplayables","displayables","getDisplayables","getTemporalDisplayables","eachPendingDisplayable","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","createOrUpdateImage","cbPayload","__zrImageSrc","pendingWrap","isImageReady","pending","Image","onload","onerror","imageOnLoad","__cachedImgObj","STYLE_REG","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","preparedOpts","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","contentWidth","ellipsisWidth","textLine","subLength","estimateLength","charCode","charCodeAt","parsePlainText","overflow","padding","truncate","calculatedLineHeight","lineHeight","truncateLineOverflow","lineOverflow","lines","wrapText","contentHeight","lineCount","outerHeight","outerWidth","truncateMinChar","maxWidth","RichTextToken","RichTextLine","tokens","RichTextContentBlock","parseRichText","contentBlock","topWidth","topHeight","wrapInfo","accumWidth","breakAll","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","outer","token","tokenStyle","styleName","rich","textPadding","paddingH","tokenHeight","styleTokenWidth","tokenWidthNotSpecified","percentWidth","textBackgroundColor","bgImg","remainTruncWidth","block","isEmptyStr","newLine","strLines","linesWidths","tokenPadding","tokenPaddingH","outerWidth_1","parsePercent$1","isLineHolder","tokensLen","isLatin","ch","code","breakCharMap","isWordBreakChar","isBreakAll","lastAccumWidth","currentWord","currentWordWidth","chWidth","inWord","DEFAULT_RICH_TEXT_COLOR","DEFAULT_STROKE_LINE_WIDTH","DEFAULT_TEXT_ANIMATION_PROPS","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","lineXLeft","lineXRight","_placeToken","parentBgColorDrawn","textWidth","textHeight","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","shadowStyle","makeFont","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","clockwise","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$2","IsogonShape","Isogon","dStep","deg","RingShape","r0","Ring","sin$1","cos$1","radian","RoseShape","Rose","SectorShape","Sector","PI$3","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","dim","proj","proj_1","useVML","painterCtors","instances","delInstance","totalLum","ZRender","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","handerProxy","getViewportRoot","flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","triggerRendered","refreshHoverImmediately","wakeUp","addHover","removeHover","clearHover","clearAnimation","pathToImage","eventHandler","disposeAll","getInstance","registerPainter","zrender","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","asc","getPrecision","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","quantile","ascArr","reformIntervals","littleThan","curr","currClose","close_1","close","lg","isNumeric","number","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","validateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","item","idNum","obj1","obj2","key1","key2","idOrName","isValidIdOrName","isNameSpecified","componentModel","makeInternalComponentId","idSuffix","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","compressBatches","batchA","batchB","mapA","mapB","makeMap","mapToArray","sourceBatch","otherMap","seriesId","dataIndices","dataIndex","otherDataIndices","lenj","isData","queryDataIndex","payload","dataIndexInside","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","defaultMainType","queryOptionMap","parsedKey","queryType","includeMainTypes","queryOption","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","MULTIPLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getTooltipRenderMode","renderModeOption","groupData","getKey","buckets","TYPE_DELIMITER","IS_CONTAINER","IS_EXTENDED_CLASS","parseClassType","componentType","main","typeArr","checkClassType","isExtendedClass","clz","enableClassExtend","rootClz","mandatoryMethods","$constructor","method","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","color$1","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","defaultValue","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","ecIns","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","styleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getterType","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","arg","JSON","toISOString","err","throwError","EMPTY_OBJ","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","normal","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","targetElEmphasisState","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","inheritColor","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","richTextStyle","setTokenTextStyle","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","fillColor","strokeColor","baseline","disableBox","getFont","gTextStyleModel","PATH_COLOR","tmpRichText","TextStyleMixin","getTextColor","isEmphasis","getTextRect","LINE_STYLE_KEY_MAP","getLineStyle","LineStyleMixin","getLineDash","lineType","dotSize","dashSize","ITEM_STYLE_KEY_MAP","getItemStyle","ItemStyleMixin","getBorderLineDash","Model","rest","mergeOption","_doGet","parsePath","hasPath","pathFinal","resolveParentPath","isEmpty","restoreData","isAnimationEnabled","pathArr","base","getUID","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","componentTypeMain","enableTopologicalTravel","entity","dependencyGetter","topologicalTravel","targetNameList","fullNameList","makeDepndencyGraph","graph","stack","noEntryList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","originalDeps","successor","removeEdgeAndAdd","removeEdge","succComponentType","entryCount","thisItem","createDependencyGraphItem","availableDeps","getAvailableDependencies","dependentName","predecessor","thatItem","dep","inheritDefaultOption","superOption","subOption","langEN","month","monthAbbr","dayOfWeek","dayOfWeekAbbr","legend","selector","toolbox","brush","title","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","q","dateGetterName","hoursGetterName","minutesGetterName","secondsGetterName","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","mathMax$3","mathMin$3","_customShapeMap","innerLabel","extendShape","extendPathFromString","extendPath","registerShape","ShapeClass","getShapeClass","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","boundingRect","aspect","mergePath$1","pathRect","subPixelOptimizeLine$1","param","subPixelOptimizeRect$1","subPixelOptimize$1","animateOrSetProps","animationType","animatableModel","isFrom","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","fadeOutDisplayable","removeElementWithFadeOut","doRemove","isElementRemoved","animateOrSetLabel","labelModel","defaultTextGetter","valueAnimationEnabled","precisionOption","precision_1","interpolateValues_1","rawValues_1","getRawValue","isRawValueNumber_1","info","getDimensionInfo","host_1","nextValue","interpolated","startValues","labelText","updateLabel","initLabel","getTransform","ancestor","mat","applyTransform$1","invert$1","transformDirection","direction","hBase","vBase","vertex","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","clipPointsByRect","clipRectByRect","targetRect","createIcon","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","graphic","Text","IncrementalDisplayable","addCommas","parts","toCamelCase","upperCaseFirst","group1","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","concatTooltipHtml","html","dontEncodeHtml","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","isTimeAxis","axisType","axisValue","axisIndex","$vars","alias","formatTplSimple","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","capitalFirst","windowOpen","link","blank","open","opener","href","format$1","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getAvailableSize","positionInfo","containerRect","containerHeight","getLayoutRect","verticalMargin","horizontalMargin","positionElement","hv","boundingMode","sizeCalculable","hvIdx","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","ctor","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","globalDefault","gradientColor","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","useUTC","inner$1","getNearestColorPalette","requestColorNum","paletteNum","ColorPaletteMixin","clearColorPalette","colorIdx","colorNameMap","getColorFromPalette","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","Source","sourceFormat","seriesLayoutBy","startIndex","dimensionsDefine","dimensionsDetectCount","encodeDefine","metaRawOption","seriesDataToSource","BE_ORDINAL","Must","Might","Not","innerGlobalModel","detectSourceFormat","resetSourceDefaulter","datasetMap","createSource","sourceData","thisMetaRawOption","dimInfo","determineSourceDimensions","sourceHeader","dimensions","makeEncodeDefine","inheritSourceMetaRawOption","thisNew","cloneSourceShallow","normalizeDimensionsOption","dataArrayRows","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","nameMap","displayName","exist","maxLoop","firstIndex","dimensions_1","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","dimName","dimType","dimDefItem","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","registerInternalOptionCreator","creator","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeReplaceMergeInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","seriesIndices","mergeTheme","seiresIndex","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","api","coordinateSystems","creater","getCoordinateSystems","register","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","timelineOpt","timeline","media","singleMedia","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","toObj","compatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","toolboxOpt","feature","featureOpt","tooltip","set$1","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","backwardCompat","seriesType","clipOverflow","clockWise","label","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","order","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","ExternalSource","getDimensionInfoAll","getRawHeaderItem","retrieveItemValue","rawItem","convertDataValue","rawVal","createExternalSource","sourceHeaderCount","extSource","dimsByName","dimDef","dimDefExt","rawValueGetter","externalTransformMap","registerExternalTransform","externalTransform","typeParsed","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","transOption","isFinal","applySingleDataTransform","upSourceList","transType","resultList","print","printStrArr","datasetIndex","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSource","upSourceMgr","_createSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","upSourceList_1","upMgr","errMsg","doThrow","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","inner$2","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","getRawData","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","isRichText","formatArrayValue","vertially","dimItem","tooltipDims","setEachItem","otherDims","markName","dimHead","dimHeadStr","valStr","formatSingleValue","mapDimensionsAll","tooltipDimLen","isValueArr","visualDrawType","formattedValue","colorEl","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","tmpArr","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","CHANGABLE_METHODS","wrapMethod","onDataSelfChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$3","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","ORIGIN_METHOD","RATE","THROTTLE_TYPE","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","createOrUpdate","fnAttr","rate","throttleType","originFn","lastThrottleType","lastRate","inner$4","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","colorCallback","setVisual","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","ariaModel","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","getConfig","seriesLabels_1","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","RegExp","userConfig","PI$4","loadingDefault","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","overallProgress","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","axisTick","axisLabel","splitLine","splitArea","crossStyle","iconStyle","controlStyle","timeAxis","logAxis","valueAxis","categoryAxis","symbol","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","symbolSize","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","setItemVisualFromData","PI2$5","CMD$3","DEFAULT_SEARCH_SPACE","getCandidateAnchor","outPt","outDir","projectPointToArc","projectPointToLine","limitToEnds","dx1","dy1","lineLen","projectedLen","projectPointToRect","tmpPt","nearestPointOnRect","pt","nearestPointOnPath","minDist","pt0","pt1","pt2","dir2","updateLabelLinePoints","labelLineModel","labelLine","labelGuideConfig","textGuideLineConfig","searchSpace","candidates","anchorPoint","anchor","targetTransform","targetInversedTransform","candidate","limitTurnAngle","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","tan","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","newAngle","setLabelLineState","isNormal","styleObj","buildLabelLinePath","moveLen","midPoint0","midPoint2","midPoint1","setLabelLineStyle","labelIgnoreNormal","stateShow","isLabelIgnored","getLabelLineStatesModels","labelLineName","prepareLayoutList","defaultAttr","localRect","isAxisAligned","minMargin","globalRect","obb","priority","layoutOption","computedLayoutOption","axisAligned","shiftLayout","xyDim","sizeDim","minBound","maxBound","balanceShift","lastPos","adjusted","totalShifts","shiftList","first","last","minGap","maxGap","updateMinMaxGap","squeezeGaps","takeBoundsGap","squeezeWhenBailout","gapThisBound","gapOtherBound","moveDir","moveFromMaxGap","remained","maxSqeezePercent","gaps","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","labelAttr","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","__image","createPattern","repeat","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","setTransform","viewRect","isDisplayableCulled","isClipPathChanged","prevClipPaths","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","isLast","viewWidth","viewHeight","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","i_1","len_1","returnFalse","createDom","newDom","newDomStyle","Layer","motionBlur","lastFrameAlpha","virtual","__used","__drawIndex","__startIndex","__endIndex","domStyle","onselectstart","webkitUserSelect","userSelect","webkitTapHighlightColor","domBack","ctxBack","getElementCount","initContext","createBackBuffer","clearAll","clearColor","haveMotionBLur","clearRect","clearColorGradientOrPattern","__canvasGradient","__painter","fillRect","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","parseInt10","isLayerValid","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","_opts","_singleCanvas","rootStyle","innerHTML","zlevelList","layers","_width","_getSize","_height","_domRoot","rootCanvas","mainLayer","getType","isSingleCanvas","getViewportRootOffset","viewportRoot","paintAll","_redrawId","_paintList","_paintHoverList","_hoverlayer","getLayer","getHoverLayer","redrawId","_updateLayerStatus","_doPaintList","needsRefreshHover","_compositeManually","self_1","eachBuiltinLayer","layerList","zi","useTimer","now","startTime","firstEl","dTime","draw","insertLayer","layersMap","prevLayer","prevDom","insertBefore","eachLayer","getLayers","updatePrevLayer","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","removeChild","display","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","ctx_1","renderToCanvas","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","canvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","assert$1","each$3","isFunction$1","isObject$2","version$1","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_BRUSH","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","__ECHARTS__DEFAULT__RENDERER__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","getZr","notMerge","lazyUpdate","setTheme","getDevicePixelRatio","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","top_1","right_1","bottom_1","canvasList_1","dpr_1","instances$1","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","statusChanged","newObj","pendingActions","getDispatcher","dispatcher","dirtyList","updateZ","updateStates","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","oldStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","echartsProto","one","wrapped","args2","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","connect","disConnect","disconnect","dispose$1","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","_add","_update","_remove","execute","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","keyArr","keyGetterName","existence","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","otherDim","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","DataDimensionInfo","isObject$3","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getRawValueFromStore","getIndicesCtor","prepareChunks","getRawIndexWithoutIndices","getRawIndexWithIndices","normalizeDimensions","validateDimensions","cloneListForMapAndSample","cloneDimStore","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","chunkSize","dimLen","rawExtent","originalChunkCount","emptyDataItem","sourceIdx","chunkIndex","chunkOffset","dimRawExtent","dimensionInfoMap","idList","nameRepeatCount","nameDimIdx","_nameDimIdx","itemId","_idDimIdx","dimStorage","nameDim","nameDimChunk","getIndices","newIndices","thisCount","buffer","chunkStore","dimStore","_getFast","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","dimExtent","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","mapArray","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","dimension","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","name_2","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","excludeDimensions","allDimensions","originalStorage","originalDimStore","newDimStore","cloneChunk","originalChunk","childECData","thisECData","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","getExtent","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","OrdinalMeta","_needCollect","needCollect","_deduplication","deduplication","createByAxisModel","dedplication","getOrdinal","category","_getOrCreateMap","roundNumber","intervalScaleNiceTicks","splitNumber","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","dataNum","expandSize","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","getLayoutOnAxis","baseAxis","axisKey","bandWidth","getBandWidth","stackId","widthAndOffsets","doCalBarWidthAndOffset","offsetCenter","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cartesian","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","axisExtent","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","size","valueDim","baseDim","stacked","isValueAxisH","isHorizontal","valueAxisStart","getValueAxisStart","baseValue","baseCoord","dataToPoint","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","toGlobalCoord","dataToCoord","bisect","TimeScale","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","tickValue","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","getNeedCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","getCategories","boundaryGap","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","AxisModelCommonMixin","getCoordSysModel","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","createList","dataStack$1","createScale","mixinAxisModelCommonMethods","helper","EPSILON$3","isAroundEqual$1","contain$2","Region","geometries","cp","exterior","loopGeo","interiors","transformTo","newRegion","decode","json","UTF8Encoding","jsonCompressed","encodeScale","UTF8Scale","geometry","coordinates","decodePolygon","encodeOffsets","coordinate","c2","prevX","prevY","parseGeoJson","nameProperty","featureObj","region","inner$5","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","makeCategoryLabelsActually","labels","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","formattedLabel","rawLabel","cache","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","containData","fixExtentWithBands","coordToData","pointToData","getTicksCoords","getTickModel","ticksCoords","tickVal","alignWithLabel","fixOnBandTicksCoords","getMinorTicksCoords","minorTickModel","minorTicksCoords","getViewLabels","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","parseGeoJson$1","ecUtil","GRAPHIC_KEYS","graphic$1","aliasToOpMap","relationalOpEvaluateMap","tarVal","condVal","lte","gt","gte","eq","ne","reg","parseRegCond","valueParserMap","ConstConditionInternal","evaluate","AndConditionInternal","OrConditionInternal","NotConditionInternal","RelationalConditionInternal","getValue","needParse","valueParser","tarValRaw","valueGetterParam","tarValParsed","subCondList","subCond","condValue","parseOption","exprOption","getters","isObjectNotArray","and","parseAndOrOption","or","not","parseNotOption","parseRelationalOption","subOptionArr","prepareGetValue","exprKeys","parserName","keyRaw","valueGetterAttrMap","evaluateHandler","condValueRaw","errMsg_1","ConditionalExpressionParsed","_cond","parseConditionalExpression","filterTransform","dimLoose","dimIdx","resultData","SortOrderValidMap","desc","sampleLog","timeParser","sortTransform","orderExprList","orderDefList","orderExpr","orderReturn","headerPlaceholder","item0","item1","orderDef","LineSeriesModel","legendHoverLink","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","getDefaultLabel","interpolatedValues","labelDims","vals","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","setSymbolScale","emphasisState","fadeOut","keepLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","newIdx","symbolEl","oldIdx","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","valueAxisDim","baseDataOffset","stackResultDim","dataDimsForPoint","getStackedOnPoint","dataCoordInfo","stackedData","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","idxAdd","idxMinus","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","scaleAndAdd$1","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawNonMono","drawMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","ECPolylineShape","ECPolyline","ECPolygonShape","ECPolygon","stackedOnPoints","bbox","stackedOnBBox","stackedOnSmooth","createGridClipPath","hasAnimation","getArea","createPolarClipPath","sectorArea","createClipPath","isPointsSame","points1","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","createLineClipPath","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolyline","_newPolygon","_stackedOnPoints","_points","_updateAnimation","lineJoin","shouldBolderOnEmphasis","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","layoutPoints","isLargeRender","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","showMinLabel","showMaxLabel","minorSplitLine","primary","logBase","axisDefault","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","CartesianAxisModel","extraOption","realtimeSort","sortSeriesIndex","categorySortInfo","PI$5","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labelRotation","rawCategoryData","itemLabelModel","rawCategoryItem","collect","axesInfo","seriesInvolved","coordSysAxesInfo","coordSysMap","collectAxesInfo","collectSeriesInfo","globalTooltipModel","globalAxisPointerModel","linksOption","linkGroups","axisPointerEnabled","coordSysKey","makeKey","axesInfoInCoordSys","coordSysModel","baseTooltipModel","getAxes","saveTooltipAxisInfo","getTooltipAxes","triggerAxis","cross","tooltipAxes","baseAxes","otherAxes","fromTooltip","triggerTooltip","axisPointerModel","axisPointerShow","isHandleTrigger","makeAxisPointerModel","snap","involveSeries","axisInfo","useHandle","linkGroup","groupIndex","getLinkGroupIndex","mapper","tooltipAxisPointerModel","volatileOption","field","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","fixValue","getAxisInfo","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$6","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","addAxis","cartesian2DDimensions","Cartesian2D","axisX","axisY","toLocalCoord","clampData","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","borderType","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","isCoordinateSystemType","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$4","mathMin$4","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","_updateDrawMode","coordinateSystemType","isReorder","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","that","isHorizontalOrRadial","animationModel","axis2DModel","axisSort","_initSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","orderMap","_updateSort","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","__dataIndex","animateProperty","isRadial","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","hasLabelRotate","minShowLabelRadian","setNotShow","labelLineLen","labelLineLen2","midAngle","isLabelInside","notShowLabel","PiePiece","firstCreate","_updateLabel","labelTextEmphasisState","labelHoverModel","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$6","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels","ScatterSeriesModel","BOOST_SIZE_THRESHOLD","LargeSymbolPathShape","LargeSymbolPath","symbolProxy","symbolProxyShape","canBoost","softClipShape","findDataIndex","LargeSymbolDraw","_incremental","_setCommon","endIndex","byteOffset","_clearIncremental","isIncremental","extrudeShadow","ecData_1","ScatterView","_updateSymbolDraw","_getClipShape","clipArea","IndicatorAxis","radiusExtent","Radar","radarModel","_indicatorAxes","getIndicatorModels","indicatorModel","indicatorAxis","getIndicatorAxes","indicatorIndex","coordToPoint","minRadianDiff","closestAxis","closestAxisIdx","viewSize","indicatorAxes","radarSeries","increaseInterval","fixedMin","fixedMax","nicedSplitNumber","pixel","radarList","valueAxisDefault","defaultsShow","RadarModel","showName","nameFormatter","indicatorModels","indicatorOpt","iNameTextStyle","innerIndicatorOpt","indName","_indicatorModels","indicator","axisBuilderAttrs$1","RadarView","_buildAxes","_buildSplitLineAndArea","axisBuilders","showSplitLine","showSplitArea","splitLineColors","splitLineColorsArr","splitAreaColorsArr","splitLines","splitAreas","getColorIndex","areaOrLine","areaOrLineColorList","ticksRadius","realSplitNumber_1","axesTicksPoints","prevPoints","RadarSeriesModel","getTooltipPosition","data_1","radarIndex","normalizeSymbolSize","RadarView$1","createSymbol$1","updateSymbols","oldPoints","symbolGroup","__dimIdx","getInitialPoints","itemGroup","polygonIgnore","stateIgnore","itemHoverStyle","pathEmphasisState","radarLayout","isValidPoint","getValueMissingPoint","firstPoint","backwardCompat$1","polarOptArr","polarNotRadar_1","polarOpt","polarIndex","geoCoord","points$1","fixNanhai","coordsOffsetMap","fixTextCoord","coordFix","geoCoordMap","fixGeoCoord","points$2","fixDiaoyuIsland","inner$7","geoJSONLoader","load","mapRecord","parsed","regionName","specialArea","getBoundingRect$1","regionRect","inner$8","geoSVGLoader","originRoot","buildGraphic","makeGraphic","hostKey","rootMap","originRootHostKey","removeGraphic","svgWidth","svgHeight","loaders","geoSourceManager","regionsMap","nameCoordMap","mapRecords","singleSource","results","mapNotExistsError","MapSeries","needsDrawMap","seriesGroup","getRegion","dataNameMap","toAppendNames","getMapType","getHostGeoModel","geoIndex","getRegionModel","seriesNames","otherIndex","originalData","setZoom","setCenter","aspectScale","showLegendSymbol","boundingCoords","scaleLimit","areaColor","ATTR","take","resourceKey","userKey","getStore","release","uKey","isTaken","RoamController","mousedownHandler","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","controlType","_opt","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","_dragging","isPinching","_pinching","setPointerChecker","pointerChecker","isAvailableBehavior","oldX","oldY","newX","newY","shouldZoom","shouldMove","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","scrollDelta","controller","behaviorToCheck","contollerEvent","settings","updateViewOnPan","controllerHost","updateViewOnZoom","zoomDelta","zoomX","zoomY","zoomLimit","newZoom","zoomMin","zoomMax","zoomScale","IRRELEVANT_EXCLUDES","onIrrelevantElement","targetCoordSysModel","getFixedItemStyle","MapDraw","_controller","_controllerHost","_regionsGroup","mapOrGeoModel","fromView","isGeo","mapSeries","_updateBackground","regionsGroup","transformInfo","getTransformInfo","isFirstDraw","targetScaleX","targetScaleY","roamTransform","isVisualEncodedByVisualMap","regionGroup","compoundPath","regionModel","itemStyleModel","emphasisItemStyleModel","blurItemStyleModel","selectItemStyleModel","rawScaleX","rawScaleY","rawX","rawY","transformPoint","interior","points_1","showLabel","isDataNaN","centerPt","regionModel_1","groupRegions","__regions","_updateController","_updateMapSelectHandler","_mapName","getZoom","makeActionBase","_mouseDownFlag","getViewRectAfterRoam","mapDraw","MapView","mapModel","_mapDraw","_renderSymbols","originalDataIndex","fullData","mainSeries","fullIndex_1","updateCenterAndZoom","previousZoom","getCenter","fixX","fixY","v2ApplyTransform","View","_roamTransformable","_rawTransformable","setViewRect","_viewRect","rawTransform","_updateTransform","centerCoord","_center","_updateCenterAndZoom","_zoom","getDefaultCenter","rawRect","getRoamTransform","rawTransformMatrix","defaultCenter","roamTransformable","rawTransformable","_rawTransform","noRoam","getCoordSys","Geo","invertLongitute","_nameCoordMap","_regionsMap","_invertLongitute","containCoord","getRegionByCoord","addGeoCoord","getGeoCoord","getCoordSys$1","geoModel","resizeGeo","leftTop","rightBottom","useCenterAndSize","boxLayoutOption","setGeoCoords","GeoCreator","geoList","mapModelGroupBySeries","nameMapList","singleMapSeries","getFilledRegions","originRegionArr","regionsArr","geoCreator","mapSymbolLayout","processedMapType","mapSymbolOffsets","subMapSeries","dataStatistics","datas","statisticType","mapKey","mapDataStatistic","seriesGroups","hostGeoModel","seriesList","inner$9","linkList","datasAttr","linkAll","transferInjection","cloneShallowInjection","changeInjection","isMainData","linkSingle","struct","structAttr","TreeNode","hostTree","depth","viewChildren","isExpand","isRemoved","eachNode","suppressVisitSub","updateDepthAndHeight","getNodeById","contains","getAncestors","includeSelf","getAncestorsIndices","currNode","getDescendantIndices","childNode","levelModel","getLevelModel","levelModels","isAncestorOf","isDescendantOf","Tree","levelOptions","_nodes","levelDefine","getNodeByDataIndex","clearLayouts","createTree","dataRoot","treeOptions","beforeLink","listData","dimMax","buildHierarchy","dataNode","addChild","TreeSeriesModel","leavesModel","nodeData","treeDepth","expandAndCollapse","expandTreeDepth","initialTreeDepth","collapsed","getOrient","realRoot","edgeShape","edgeForkPosition","roam","nodeScaleRatio","curveness","init$2","inRoot","hierNode","defaultAncestor","prelim","modifier","change","thread","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","apportion","secondWalk","nodeX","defaultSeparation","radialCoordinate","getViewRect$1","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","nodeInLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","nextRight","nextLeft","moveSubtree","nextAncestor","wl","wr","node1","node2","TreeEdgeShape","parentPoint","childPoints","TreePath","childLen","firstChildPos","lastChildPos","forkDim","forkPosition","tmpPoint","TreeView","_mainGroup","layoutInfo","_updateViewCoordSys","symbolNeedsDraw$1","updateNode","removeNode","_nodeScaleRatio","_updateNodeAndLinkScale","oldMin","_min","oldMax","_max","viewCoordSys","nodeScale","_getNodeGlobalScale","groupZoom","roamZoom","virtualRoot","sourceSymbolEl","sourceLayout","sourceOldLayout","__radialOldRawX","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","rootLayout","length_1","isLeft","normalLabelModel","labelRotateRadian","focusDataIndices","drawEdge","__edge","parentEl","curvature","getEdgeShape","childLayout","sourceEdge","layoutOpt","radialCoor1","radialCoor2","radialCoor3","radialCoor4","eachAfter","eachBefore","treeLayout","commonLayout","separation$1","tx_1","kx_1","ky_1","coorX_1","coorY_1","finalCoor","orient_1","treeVisual","retrieveTargetInfo","validPayloadTypes","targetNode","targetNodeId","getPathToRoot","aboveViewRoot","viewRoot","viewPath","wrapTreePathInfo","treePathInfo","nodeDataIndex","TreemapSeriesModel","completeTreeValue","setDefault","resetViewRoot","setLayoutInfo","mapIdToIndex","idIndexMap","_idIndexMap","_idIndexMapCount","getViewRoot","_viewRoot","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","nodeClick","emptyItemWidth","upperLabel","colorAlpha","colorSaturation","gapWidth","borderColorSaturation","visualDimension","visualMin","visualMax","colorMappingBy","visibleMin","childrenVisibleMin","childValue","thisValue","globalColorList","hasColorDefine","modelColor","level0","TEXT_PADDING","ITEM_GAP","ARRAY_LENGTH","Breadcrumb","containerGroup","onSelect","thisGroup","normalStyleModel","layoutParam","totalWidth","renderList","_prepare","_renderContent","itemWidth","lastX","availableSize","itemNode","makeItemPoints","onclick","packEventData","itemHeight","selfType","createWrap","elExistsMap","doneCallback","Group$1","Rect$1","DRAG_THRESHOLD","PATH_LABEL_NOAMAL","PATH_UPPERLABEL_NORMAL","Z_BASE","Z_BG","Z_CONTENT","getStateItemStyle","getItemStyleNormal","inner$a","TreemapView","_state","createStorage","_oldTree","thisStorage","reRoot","rootNodeGroup","nodeGroup","_giveContainerGroup","renderResult","_doRender","_doAnimation","renderFinally","_resetController","_renderBreadcrumb","_containerGroup","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","doRenderNode","thisNode","oldNode","renderNode","dualTravel","willDeleteEls","clearStorage","thisViewChildren","oldViewChildren","sameTree","processNode","storageName","delEls","willDelete","els","animationWrap","innerStore","nodeWidth","nodeHeight","targetX","targetY","oldShape","fadein","_onPan","_onZoom","_clearController","rootRect","mouseX","mouseY","findTarget","isLeafRoot","_rootToNode","_zoomToNode","linkTarget","_breadcrumb","background","thisLayout","nodeModel","isInView","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","upperHeight","isParent","itemStyleNormalModel","itemStyleEmphasisModel","itemStyleBlurModel","itemStyleSelectModel","giveGraphic","isAboveViewRoot","bg","renderBackground","upperLabelHeight","renderContent","useUpperLabel","processInvisible","visualBorderColor","selectStyle","upperLabelWidth","prepareText","upperLabelRect","iconChar","isShow","addDrillDownIcon","textEmphasisState","lasts","prepareAnimationWhenHasOld","calculateZ","prepareAnimationWhenNoOld","lastCfg","parentOldX","parentOldY","parentOldBg","zInLevel","zb","noop$1","actionTypes","i$1","handleRootToNode","originViewRoot","each$4","isObject$4","CATEGORY_DEFAULT_VISUAL_INDEX","VisualMapping","mappingMethod","_normalizeData","normalizers","visualHandler","applyVisual","getColorMapper","_normalizedToVisual","normalizeVisualRange","preprocessForPiecewise","preprocessForSpecifiedCategory","mapValueToVisual","normalized","getNormalizer","listVisualTypes","isValidType","eachVisual","mapVisual","isPrimary","newVisual","newVal","retrieveVisuals","hasVisual","prepareVisualTypes","visualTypes","types_1","type1","type2","dependsOn","visualType1","visualType2","findPieceIndex","pieceList","findClosestWhenOutside","possibleI","pieceValue","updatePossible","piece","newAbs","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","parsedVisual","piecewise","getSpecifiedVisual","fixed","doMapFixed","colorHue","makePartialColorVisualHandler","colorLightness","createNormalizedToNumericVisual","getter","setter","symbolCfg","doMapToArray","hasSpecialVisual","originIndex","categoryMap","cate","visualArr_1","setVisualToOption","visualArr","doNotNeedPair","applyValue","colorChannel","sourceExtent","pieceIndex","ITEM_STYLE_NORMAL","inner$b","treemapVisual","seriesItemStyleModel","levelItemStyles","travelTree","designatedVisual","viewRootAncestors","nodeLayout","nodeItemStyleModel","levelItemStyle","visuals","buildVisuals","thisNodeColor","calculateColor","calculateBorderColor","mapping_1","buildVisualMapping","childVisual","visualName","getValueVisualDefine","rangeVisual","getRangeVisual","mapping","drColorMappingBy","childVisuals","mappingType","mathMax$5","mathMin$5","retrieveValue","each$5","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","treemapLayout","seriesOption","viewAbovePath","rootSize","estimateRootSize","sort_1","viewRootLayout_1","area","squarify","treeRoot","calculateRootPosition","prunning","hideChildren","halfGapWidth","getUpperLabelHeight","layoutOffset","layoutOffsetUpper","totalArea","initChildren","rowFixedLength","best","score","worst","orderBy","overLeafDepth","sort$1","statistic","filterByThreshold","orderedChildren","deletePoint","ratio","areaMax","areaMin","squareArea","idx0WhenH","idx1WhenH","xy","rowOtherLength","rowLen","wh1","remain","modWH","wh0","defaultSize","viewArea","currNodeValue","defaultPosition","targetCenter","clipRect","nodeInViewAbovePath","childClipRect","generateNodeKey","Graph","directed","_nodesMap","_edgesMap","_directed","isDirected","addNode","nodesMap","GraphNode","hostGraph","getNodeByIndex","addEdge","n1","n2","edgesMap","GraphEdge","outEdges","inEdges","getEdgeByIndex","getEdge","eachEdge","breadthFirstTraverse","startNode","edgeType","__visited","queue","currentNode","otherNode","degree","inDegree","outDegree","getAdjacentDataIndices","adjacentEdge","createGraphDataProxyMixin","hostName","dataName","getGraphicEl","createGraphFromNodeEdge","linkNameList","validEdges","linkCount","coordSysCtor","GraphSeriesModel","getCategoriesData","_categoriesData","_updateCategoriesData","categoriesModels","_categoriesModels","categoryIdx","categoryModel","oldGetModel","newGetModel","newPathArr","getGraph","getEdgeData","sourceName","htmlStr","categoriesData","circular","rotateLabel","initLayout","repulsion","gravity","friction","edgeLength","layoutAnimation","edgeSymbol","edgeSymbolSize","edgeLabel","straightLineProto","bezierCurveProto","StraightLineShape","CurveShape","isStraightLine","ECLinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","lineData","symbolSizeArr","createLine","setLinePoints","Line$1","_createLine","_updateCommonStl","getLinePath","blurLineStyle","selectLineStyle","lineState","lineStateStyle","stateStyle","labelNormalModel","__align","__verticalAlign","__position","__labelDistance","linePath","symbolFrom","symbolTo","invScale","fromPos","toPos","tangent","distanceX","distanceY","halfPercent","LineDraw","LineCtor","_LineCtor","lineDraw","oldLineData","_lineData","makeSeriesScope$1","_doUpdate","isEffectObject","lineNeedsDraw","newLineData","isPointNaN","pts","getNodeGlobalScale","v3","v2DistSquare","mathAbs$1","intersectCurveCircle","curvePoints","radiusSquare","nextDiff","adjustEdge","tmp0","quadraticSubdivide$1","pts2","fromSymbol","toSymbol","__original","originalPoints","isViewCoordSys","GraphView","_lineDraw","_firstRender","groupNewProp","_layoutTimeout","forceLayout","_startForceLayoutIteration","warmUp","_layouting","setFixed","setUnfixed","circularRotateLabel","categoryFilter","graphSeries","categoryNames","categoryVisual","paletteScope","categoryNameIdxMap","symbolVisualList","symbolVisual","categoryStyle","visualList","normalize$2","edgeVisual","nodeStyle","simpleLayout","simpleLayoutEdge","simpleLayout$1","PI$6","_symbolRadiansHalf","circularLayout","basedOn","_layoutNodesBasedOn","x12","y12","unitAngle","radianHalf","sumRadian","symbolRadianHalf","halfRemainRadian","circularLayout$1","scaleAndAdd$2","inNodes","pp","initialFriction","beforeStepCallback","afterStepCallback","beforeStep","afterStep","v12","nLen","ignoreForceLayout","repFact","rep","forceLayout$1","preservedPoints_1","preservedPoints","graph_1","nodeData_1","forceModel","nodeDataExtent_1","edgeDataExtent_1","repulsionArr_1","edgeLengthArr_1","nodes_1","edgeModel","forceInstance","getViewRect$2","createView","coordSysType","positions","bbWidth","bbHeight","GaugeSeriesModel","PointerShape","PointerPath","parsePosition","formatLabel","PI2$7","GaugeView","colorList","posInfo","_renderMain","axisLineModel","angleRangeSpan","prevEndAngle","axisLineWidth","showAxis","getColor","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","autoColor","tickLine","valueExtent","angleExtent","pointerModel","titleModel","detailModel","FunnelSeriesModel","minSize","funnelAlign","opacityAccessPath","FunnelPiece","FunnelView","funnelPiece","getViewRect$3","getSortedIndices","isAscending","labelLayout$1","funnelLayout","sizeExtent","getLinePoints","offY","parallelPreprocessor","createParallelIfNeeded","mergeAxisOptionFromParallel","hasParallelSeries","parallelAxis","axisOption","parallelIndex","parallelOption","ParallelAxis","sliderMove","handleEnds","handleIndex","minSpan","maxSpan","restrict","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","each$6","mathMin$6","mathMax$6","mathFloor$1","mathCeil$1","round$2","PI$7","Parallel","_axesLayout","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","layoutLength","_layoutAxes","layoutExtent","axisCount","axisExpandWidth","restrict$1","axisExpandCount","axisExpandable","axisExpandWindow","winSize","axisExpandCenter","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","layoutAxisWithExpand","layoutAxisWithoutExpand","positionTable","horizontal","vertical","rotationTable","axisCoordToPoint","eachActiveState","dataDimensions","axisModels","hasActiveSet","hasAxisBrushed","activeState","getActiveState","axisLayout","getAxisLayout","getSlidedAxisExpandWindow","behavior","pointCoord","triggerArea","useJump","winSize2","create$2","ParallelAxisModel","activeIntervals","getAreaSelectStyle","setActiveIntervals","intervals","defaultOption$1","areaSelectStyle","realtime","ParallelModel","_initDimensions","setAxisExpand","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","actionInfo$1","parallelAxisModel","BRUSH_PANEL_GLOBAL","mathMin$7","mathMax$7","mathPow$2","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","sw","nw","se","DEFAULT_BRUSH_OPT","brushStyle","transformable","brushMode","removeOnClick","baseUID","BrushController","_covers","_handlers","_uid","pointerHandlers","enableBrush","brushOption","_mounted","_brushType","_doDisableBrush","brushType","_doEnableBrush","_enableGlobalPan","_brushOption","setPanels","panelOpts","panels_1","_panels","panelId","enableGlobalPan","_transform","updateCovers","coverConfigList","coverConfig","tmpIdPrefix","oldCovers","newCovers","creatingCover","_creatingCover","oldGetKey","addOrUpdate","cover","__brushOption","newBrushInternal","endCreating","createCover","updateCoverAfterCreation","unmount","clearCovers","coverRenderers","coverRenderer","getCoverRenderer","updateCoverShape","updateCommon","getPanelByPoint","localCursorPoint","panels","panel","pn","isTargetByCursor","getPanelByCover","covers","originalLength","trigger$1","areas","isEnd","shouldShowCover","getTrackEnds","createBaseRectCover","rectRangeConverter","edgeNameSequences","makeStyle","driftRect","ondragend","nameSequence","updateBaseRect","localRange","handleSize","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection1","getGlobalDirection2","pointsToRect","clipByPanel","formatRectRange","getTransform$1","localDirName","inverseMap","localDirNameSeq","dirNameSequence","rectRange","toRectRange","localDelta","toLocalDelta","dirName","ind","fromRectRange","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","_creatingPanel","thisBrushOption","eventParams","determineBrushType","coverBrushOption","getCreatingRange","defaultBrushType","handleDragEnd","getLineRenderer","returnInput","localTrack","ends","xyIndex","otherExtent","getLinearBrushOtherExtent","makeRectPanelClipPath","normalizeRect","localPoints","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","elementList","ParallelAxisView","_brushController","_onBrush","fromAxisAreaSelect","areaWidth","builderOpt","_refreshBrushController","extentLen","getCoverInfoList","eventParam","coverInfoList","coverInfo","parallelAxisId","CLICK_THRESHOLD","ParallelView","handlers","_throttledDispatchExpand","_dispatchExpand","checkTrigger","_mouseDownPoint","mouseDownPoint","triggerOn","ParallelSeriesModel","makeDefaultEncode","getRawIndicesByActiveState","theActiveState","inactiveOpacity","activeOpacity","dataDimIndex","convertDimNameToNumber","DEFAULT_SMOOTH","ParallelView$1","_dataGroup","dataGroup","makeSeriesScope$2","newDataIndex","addEl","updateElCommon","oldDataIndex","createLinePoints","createGridClipShape","isEmptyValue","opacityAccessPath$1","parallelVisual","opacityMap","active","inactive","itemOpacity","SankeySeriesModel","nodeDepth","setNodePosition","localPosition","localX","localY","rawDataOpt","nodeValue","nodeGap","layoutIterations","nodeAlign","SankeyPathShape","SankeyPath","SankeyView","_focusAdjacencyDisabled","sankeyView","curve","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","sourceColor","targetColor","dragX","dragY","createGridClipShape$1","sankeyLayout","getViewRect$4","computeNodeValues","filteredNodes","iterations","layoutSankey","computeNodeBreadths","computeNodeDepths","computeEdgeDepths","getEdgeValue","nodeRawValue","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","maxNodeDepth","isItemDepth","edgeIdx","indexEdge","nodeIndex","maxDepth","adjustNodeWithNodeAlign","kx","scaleNodeBreadths","isNodeDepth","nextSourceNode","remainNodes","skNodeHeight","moveSinksRight","nodesByBreadth","prepareNodesByBreadth","initializeNodeDepth","resolveCollisions","relaxRightToLeft","relaxLeftToRight","keyAttr","groupResult","minKy","ky","nodeDy","edgeDy","nodeDyAttr","weightedTarget","centerTarget","center$1","nodeY","weightedSource","centerSource","sankeyVisual","minValue_1","maxValue_1","mapValueToColor","customColor","WhiskerBoxCommonMixin","xAxisType","yAxisType","addOrdinal","coordDims","baseAxisDimIndex","_baseAxisDim","baseAxisType","newOptionData_1","newItem","defaultValueDimensions","BoxplotSeriesModel","boxWidth","BoxplotView","constDim","createNormalBox","updateNormalBoxData","BoxPathShape","BoxPath","transInit","initBaseline","boxplotVisual","each$7","boxplotLayout","groupSeriesByAxis","groupItem","calculateBase","layoutSingleSeries","boxOffsetList","boxWidthList","axisList","boundList","maxDataCount_1","boxWidthBound","availableWidth","boxGap","halfWidth","cDimIdx","vDimIdx","cDim","vDims","axisDimVal","median","getPoint","end1","end2","end4","end5","addBodyEnd","layEndLine","point1","point2","endCenter","to","prepareBoxplotData","boxData","outliers","boundIQR","useExtreme","ascList","Q1","Q2","Q3","bound","low","high","outlier","boxplotTransform","CandlestickSeriesModel","getShadowDim","brushRect","SKIP_PROPS","CandlestickView","_incrementalRenderNormal","isSimpleBox","isNormalBoxClipped","createNormalBox$1","setBoxCommon","createLarge$1","NormalBoxPathShape","NormalBoxPath","__simpleBox","transInit$1","LargeBoxPathShape","LargeBoxPath","__sign","elP","elN","setLargeStyle$1","preprocessor","seriesItem","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","candlestickVisual","getBorderColor","LargeArr$1","candlestickLayout","candleWidth","calculateCandleWidth","openDim","closeDim","lowestDim","highestDim","largeProgress","normalProgress","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","ocHighPoint","lowestPoint","highestPoint","subPixelOptimizePoint","getSign","makeBrushRect","pmin","pmax","EffectScatterSeriesModel","effectType","showEffectOn","rippleEffect","period","EFFECT_RIPPLE_NUMBER","normalizeSymbolSize$1","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","EffectSymbol","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","EffectScatterView","effectSymbolDraw","_updateGroupTransform","Uint32Arr","Float64Arr","compatEc2","coords","fromName","toName","LinesSeriesModel","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","_getCoordsFromItemModel","getLineCoordsCount","getLineCoords","startOffset","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","CoordSys","effect","constantSpeed","trailLength","EffectLine","_updateEffectSymbol","effectModel","_symbolScale","_updateEffectAnimation","delayExpr","_updateAnimationPoints","_getLineLength","_period","delayNum","__t","_updateSymbolPosition","__p1","__cp1","__p2","quadraticDerivativeAt$1","__lastT","Polyline$1","_createPolyline","hoverLineStyle","lineEmphasisState","EffectPolyline","accLenArr","_length","_offsets","offsets","LargeLinesPathShape","LargeLinesPath","LargeLineDraw","lineEl","linesLayout","isPolyline","isLarge","lineCoords","totalCoordsCount","LinesView","_updateLineDraw","_lastZlevel","_showEffect","notInIndividual_1","otherSeriesModel","hasEffect","_hasEffet","_isPolyline","normalize$3","linesVisual","HeatmapSeriesModel","blurSize","pointSize","maxOpacity","minOpacity","GRADIENT_LEVELS","HeatmapLayer","_gradientPixels","inRange","outOfRange","colorFunc","isInRange","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","getIsInPiecewiseRange","dataSpan","getIsInContinuousRange","isGeoCoordSys","HeatmapView","visualMapOfThisSeries","eachTargetSeries","targetSeries","_incrementalDisplayable","_renderOnCartesianAndCalendar","_renderOnGeo","dataDimX","dataDimY","dataToRect","contentShape","visualMapModel","inRangeVisuals","targetVisuals","outOfRangeVisuals","hmLayer","_hmLayer","lng","lat","getPieceList","PictorialBarSeriesModel","symbolPosition","symbolMargin","symbolRepeat","symbolRepeatDirection","symbolClip","symbolBoundingData","symbolPatternSize","BAR_BORDER_WIDTH_QUERY$1","LAYOUT_ATTRS","posDesc","pathForLineWidth","PictorialBarView","coordSysRect","ecSize","coordSysExtent","categoryDim","symbolMeta","getSymbolMeta","createBar","updateCommon$1","pictorialShapeStr","getShapeStr","__pictorialShapeStr","updateBar","__pictorialSymbolMeta","removeBar","prepareBarLength","prepareSymbolSize","boundingLength","pxSign","prepareLineWidth","symbolScale","prepareLayoutInfo","valueLineWidth","repeatCutLength","outputSymbolMeta","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","categorySize","parsedSymbolSize","unitLength","pathLen","absBoundingLength","hasEndGap","symbolMarginNumeric","uLenWithMargin","endFix","repeatSpecified","repeatTimes","toIntTimes","mDiff","sizeFix","pathPosition","bundlePosition","barRectShape","createPath","createOrUpdateRepeatSymbols","bundle","__pictorialBundle","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","updateAttr","makeTarget","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","pathes","immediateAttrs","animationAttrs","barPositionOutside","times","roundedTimes","SingleAxis","Single","_axis","_adjustAxis","_updateAxisTransform","extentSum","getCoordSys$2","singleModel","create$3","singles","layout$2","positionMap","directionMap","axisBuilderAttrs$2","selfBuilderAttrs$1","SingleAxisView","axisElementBuilders$1","SingleAxisModel","findPointFromSeries","isStacked","inner$c","axisTrigger","currTrigger","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputPayload","showValueMap","dataByCoordSys","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","noSnap","outputFinder","payloadInfo","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","getAxisTooltipData","nestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","dataByAxis","valueLabelOpt","seriesDataIndices","outputAxesInfo","valItem","tooltipOption","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","inner$d","each$8","initGlobalListeners","initialized","useHandler","doEnter","onLeave","dis","makeDispatchAction","dispatchTooltipFinally","pendings","showLen","showTip","hideLen","hideTip","actuallyPayload","unregister","AxisPointerView","inner$e","clone$3","bind$1","BaseAxisPointer","_axisModel","_axisPointerModel","_lastValue","_lastStatus","_group","handle","_handle","elOption","makeElOption","graphicKey","_lastGraphicKey","moveAnimation","_moveAnimation","determineAnimation","createPointerEl","createLabelEl","doUpdateProps","updateProps$1","updatePointerEl","updateLabelEl","updateMandatoryProps","_renderHandle","isCategoryAxis","useSnap","pointerOption","pointerEl","labelEl","updateLabelShowHide","updateHandleTransform","handleModel","onmousemove","onmousedown","_onHandleDragMove","_onHandleDragEnd","_moveHandleToValue","getHandleTransProps","getHandleTransform","trans","_payloadInfo","lastProp","_doDispatchAxisPointer","cursorPoint","doClear","buildLabel","xDimIndex","propsEqual","lastProps","equals_1","buildElStyle","axisPointerType","buildLabelElOption","labelPos","getValueLabel","paddings","confineInContainer","bgColor","params_1","axisDimension","seriesData","idxItem","getTransformedPosition","buildCartesianSingleLabelElOption","textLayout","makeLineShape","makeRectShape","makeSectorShape","CartesianAxisPointer","pixelValue","elStyle","pointerShapeBuilder","currPosition","cursorOtherValue","tooltipOptions","getAxisDimIndex","shadow","AxisPointerModel","icon","XY","WH","SingleAxisPointer","getPointDimIndex","pointerShapeBuilder$1","DATA_NAME_INDEX","ThemeRiverSeriesModel","fixData","rawDataLength","layData","dataList","layerNum","largestLayer","timeValue","keyIndex","filterData","getLayerSeries","lenCount","indexArr","timeDim","layerSeries","index1","index2","nearestIdx","pointNum","theValue","htmlName","htmlValue","singleAxisIndex","ThemeRiverView","layersSeries","keyGetter","dataDiffer","_layersSeries","newLayersGroups","process","oldLayersGroups","points0","layerGroup","createGridClipShape$2","themeRiverLayout","themeRiverLayout$1","layerPoints","singleLayer","computeBaseline","baseLine","baseY0","layerIndex","sums","temp","SunburstSeriesModel","completeTreeValue$1","treeOption","renderLabelForZeroData","DEFAULT_SECTOR_Z","DEFAULT_TEXT_Z","SunburstPiece","_ecModel","labelStateModel","labelMinAngle","getLabelAttr","sectorState","labelColor","labelPadding","rotateType","stateAttr","ROOT_TO_NODE_ACTION","HIGHLIGHT_ACTION","handleHighlight","UNHIGHLIGHT_ACTION","SunburstView","newRoot","newChildren","oldChildren","_oldChildren","renderRollUp","newNode","virtualPiece","targetFound","RADIAN$2","sunburstLayout","rootDepth","initChildren$1","renderRollupNode","rPerLevel","rStart","rEnd","siblingAngle_1","sortOrder","sort$2","isAsc_1","sunburstVisual","pickColor","treeHeight","dataToCoordSize","dataSize","halfSize","prepareCartesian2d","dataToCoordSize$1","prepareGeo","dataToCoordSize$2","prepareSingleAxis","dataToCoordSize$3","preparePolar","radiusAxis","getRadiusAxis","angleAxis","getAngleAxis","dataToRadius","dataToAngle","prepareCalendar","rangeInfo","getRangeInfo","cellWidth","getCellWidth","cellHeight","getCellHeight","weeks","dayCount","allDay","deprecatedLogs","isEC4CompatibleStyle","elType","hasOwnTextContentOption","hasOwnTextConfig","legacy","convertFromEC4CompatibleStyle","hostStyle","srcStyle","textContentStyle","hasOwnPos","textDistance","convertEC4CompatibleRichItem","richItem","textStrokeWidth","textLineHeight","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","convertToEC4StyleForCustomSerise","itemStl","txStl","txCfg","hostFill","convertToEC4RichItem","textFillNotSet","warnDeprecated","deprecated","insteadApproach","inner$f","TRANSFORM_PROPS","transformPropNamesStr","STYLE_VISUAL_TYPE","VISUAL_PROPS","EMPHASIS","NORMAL","BLUR","SELECT","STATES","PATH_ITEM_STYLE","PATH_LABEL","GROUP_DIFF_PREFIX","attachedTxInfoTmp","LEGACY_TRANSFORM_PROPS","prepareCustoms","CustomSeriesModel","currentZLevel","currentZ","CustomSeriesView","customSeries","renderItem","makeRenderItem","createOrUpdateItem","doRemoveEl","setIncrementalAndHoverLayer","elementName","createEl","graphicType","getPathData","customPathData","customImagePath","customGraphicType","updateElNormal","styleOpt","attachedTxInfo","isTextContent","transFromProps","allProps","elDisplayable","prepareShapeOrExtraUpdate","prepareTransformUpdate","txCfgOpt","textOptionStyle","prepareStyleUpdate","userDuring","cfgDuringCall","duringCall","mainAttr","attrOpt","elPropsInAttr","transFromPropsInAttr","enterFrom","enterFromKeys","transitionKeys","elVal","checkTansitionRefer","allPropsInAttr","keysInAttr","leaveTo","leaveToProps","getOrCreateLeaveToPropsFromEl","leaveToPropsInAttr","leaveToKeys","checkTransformPropRefer","setLagecyProp","setTransProp","transFromStyleProps","leaveToStyleProps","optVal","isArrLike","usedIn","innerEl","tmpDuringScope","customDuringAPI","assertNotReserved","isShapeDirty","getShape","isStyleDirty","setExtra","getExtra","newstUserDuring","scopeUserDuring","updateElOnState","elStateOpt","isRoot","existingEmphasisState","updateZ$1","optZ2","updateZForEachState","retrieveStateOption","targetProps","legacyName","fromEl","legacyArr","xyName","userAPI","styleEmphasis","barLayout","currentSeriesIndices","userParams","dataInsideLength","wrapEncodeDef","currDataIndexInside","currItemModel","currItemStyleModels","currLabelModels","seriesItemStyleModels","seriesLabelModels","getItemStyleModel","userProps","preFetchFromExtra","applyUserPropsAfter","style_1","doCreateOrUpdateEl","toBeReplacedIdx","doesElNeedRecreate","conOpt","isLegacy","doCreateOrUpdateAttachedTx","doCreateOrUpdateClipPath","otherStateOpt","otherStyleOpt","retrieveStyleOptionOnState","mergeChildren","elInner","elOptionType","elOptionShape","elOptionStyle","hasOwnPathData","clipPathOpt","processTxInfo","txConOptNormal","txConOptEmphasis","txConOptBlur","txConOptSelect","txConStlOptNormal","txConOptOtherState","stateOpt","txConOpt","convertResult","txConOptNormal_1","stateOptionNormal","stateOption","newLen","$mergeChildren","byName","diffChildrenByName","diffGroupChildren","processAddUpdate","processRemove","childOption","getSeriesStackId$1","getAxisKey$1","barLayoutPolar","calRadialBar","clampLayout","radiusSpan","angleSpan","PolarModel","foundAxisModel","PolarAxisModel","AngleAxisModel","RadiusAxisModel","angleAxisExtraOption","radiusAxisExtraOption","RadiusAxis","radiusToData","inner$g","AngleAxis","angleToData","Polar","_radiusAxis","_angleAxis","pointToCoord","maxAngle","getCoordSys$3","resizePolar","parsedRadius","updatePolarScale","isAngleAxisModel","setAxis","polarCreator","polarList","elementList$1","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","lastItem","AngleAxisView","ticksAngles","minorTickAngles","angelAxisElementsBuilders","rId","r0Id","tickAngleItem","tickAngles","commonLabelModel","labelTextAlign","labelTextVerticalAlign","prevAngle","axisBuilderAttrs$3","selfBuilderAttrs$2","RadiusAxisView","newAxisGroup","axisAngle","layoutAxis","axisElementBuilders$2","prevRadius","PolarAxisPointer","coordValue","pointerShapeBuilder$2","getLabelPosition","GeoView","_handleRegionClick","updateSelectStatus","geoId","GeoModel","_optionModelMap","optionModelMap","regionOpt","unSelect","toggleSelected","makeAction","PROXIMATE_ONE_DAY","Calendar","calendarModel","_rangeInfo","_sw","_sh","_orient","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","mStr","dStr","getDay","formatedDate","getNextNDay","setDate","_lineWidth","_getRangeInfo","_initRangeOption","whNames","cellSize","getCellSize","layoutParams","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","tl","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","getCoordSys$4","normalizedRange","rangeStr","firstDay","setMonth","parsedRange","reversed","startDateNum","endDateNum","dateNum","fweek","lweek","nthDay","calendarList","calendarSeries","CalendarModel","mergeAndNormalizeLayoutParams","dayLabel","monthLabel","yearLabel","raw","cellSizeArr","MONTH_TEXT","EN","CN","WEEK_TEXT","CalendarView","rangeData","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","sh","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","addPoints","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","parsedDate","tmpD","_formatterLabel","_yearTextPositionControl","aligns","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","vAlign","termPoints","firstDayPoints","yyyy","yy","MM","monthText","_weekTextPositionControl","isStart","firstDayOfWeek","weekText","_nonShapeGraphicElements","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","existList","flattenedList","_flatten","elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","_elMap","_lastGraphicModel","graphicModel","_updateElements","_relocate","rootGroup","existEl","targetElParent","elOptionCleaned","getCleanedElOption","createEl$1","removeEl","__ecGraphicWidthOption","__ecGraphicHeightOption","setEventData","elOptions","apiWidth","apiHeight","isParentRoot","__ecGraphicWidth","__ecGraphicHeight","containerInfo","bounding","__ecGraphicId","existElParent","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","newType","existItem","ToolboxFeature","registerFeature","getFeature","ToolboxModel","featureName","Feature","itemSize","itemGap","showTitle","layout$3","boxLayoutParams","viewportSize","makeBackground","ToolboxView","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","featureModel","newTitle","isUserFeatureName","unusable","createIconPaths","setIconStatus","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconsMap","titlesMap","tooltipModel","__title","hoverStyle","defaultTextPosition","titleText","emphasisTextConfig","emphasisTextState","emphasisTextStyle","needPutOnTop","topOffset","SaveAsImage","MouseEvent","$a","download","evt","bubbles","cancelable","dispatchEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","blob","Blob","tab","write","INNER_STACK_KEYWORD","radioTypes","MagicType","availableIcons","seriesOptGenreator","generateNewSeriesTypes","newSeriesOpt","radio","seriesOptions","tiledLang","titleLang","isStack","currentType","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","assembleSeriesWithCategoryAxis","groups","tables","headers","columns","assembleOtherSeries","getContentFromModel","trim$1","isTSVFormat","firstLine","itemSplitRegex","parseTSVContents","tsv","tsvLines","header","parseListContents","hasName","parseContents","blockMetaList","blocks","blockMeta","DataView","viewMain","textarea","optionToContent","contentToOption","htmlOrDom","readOnly","buttonContainer","buttonStyle","closeButton","refreshButton","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","tryMergeDataOption","newSeriesOptList","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","BrushTargetManager","_targetInfoList","foundCpts","parseFinder$1","targetInfoBuilders","builder","include","setOutputRanges","matchOutputRanges","coordRange","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","setInputRanges","rangeOffset","getScales","makePanelOpts","getDefaultBrushType","getPanelRect","controlSeries","targetInfoList","areaPanelId","targetInfoMatchers","formatMinMax","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","panelRectBuilders","xAxisDeclared","yAxisDeclared","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","getSize","sizeOrigin","each$9","inner$h","newSnapshot","storedSnapshots","getStoreSnapshots","dataZoomId","snapshot","dataZoomModel","percentRange","getPercentRange","clear$1","snapshots","DATA_ZOOM_AXIS_DIMENSIONS","SERIES_COORDS","isCoordSupported","coordType","getAxisMainType","findEffectedDataZooms","axisRecords","effectedModels","effectedModelMap","addToEffected","foundNewLink","processSingle","isLinked","markAxisControlled","isLink","eachTargetAxis","axisIdxArr","collectReferCoordSysModelInfo","coordSysInfoWrap","infoList","infoMap","coordSysUid","DataZoomAxisInfo","indexList","indexMap","axisCmptIdx","DataZoomModel","_autoThrottle","_noTarget","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","_doInit","_setDefaultThrottle","_updateRangeUse","_resetTarget","optionOrient","targetAxisIndexMap","_targetAxisInfoMap","hasAxisSpecified","_fillSpecifiedTargetAxis","_makeAutoOrientByTargetAxis","_fillAutoTargetAxisByOrient","refering","needAuto","setParallelAxis","gridModel_1","axModel","globalOption","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","noTarget","getFirstTargetAxisModel","firstAxisModel","getAxisProxy","getAxisModel","__dzAxisProxy","setRawRange","setCalculatedRange","axisProxy","findRepresentativeAxisProxy","getDataPercentWindow","getValueRange","getDataValueWindow","firstProxy","axisDimList","hostedBy","getRangePropMode","filterMode","DataZoomView","SelectDataZoomModel","SelectDataZoomView","each$a","asc$1","AxisProxy","_dimName","_axisIndex","_dataZoomModel","_valueWindow","_percentWindow","getTargetSeriesModels","axisMainType","getMinMaxSpan","_minMaxSpan","calculateDataWindow","_dataExtent","percentExtent","percentWindow","valueWindow","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","suffix","calculateDataExtent","_updateMinMaxSpan","dataWindow","_setAxisModel","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","minMaxSpan","percentSpan","valueSpan","eachAxisModel","proxyList","valueRange","endValue","each$b","DATA_ZOOM_ID_BASE","DataZoomFeature","brushController","updateZoomBtnStatus","updateBackBtnStatus","handlers$1","brushTargetManager","makeAxisFinder","setBatch","_dispatchZoomAction","findDataZoom","minValueSpan","maxValueSpan","found","dzModel","has","nextActive","isZoomActive","dataZoomSelectActive","dzFeatureModel","xAxisId","yAxisId","zoomActive","dzOptions","finderResult","buildInternalOptions","axisIndexPropName","$fromToolbox","RestoreOption","TooltipModel","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","transitionDuration","enterable","each$c","toCamelCase$1","vendors","gCssText","mirrowPos","getFinalColor","finalNearPointColor","assembleArrow","arrowPosition","arrowPos","centerPos","styleCss","assembleTransition","transitionCurve","transitionText","vendorPrefix","assembleFont","assembleCssText","boxShadow","borderName","camelCase","makeStyleCoord","appendToBody","zrPainter","zrViewportRoot","body","viewportRootOffset","TooltipHTMLContent","_show","_styleCoord","_enterable","_appendToBody","_container","onmouseenter","_hideTimeout","_inContent","onmouseleave","hideLater","_hideDelay","currentStyle","nearPointColor","styleCoord","offsetHeight","pointerEvents","setContent","setEnterable","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","TooltipRichContent","markerRich","startId","endId","bind$2","each$d","parsePercent$3","proxyRect","TooltipView","_renderMode","tooltipContent","_newLine","_tooltipContent","_tooltipModel","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","makeDispatchAction$1","_ticket","_manuallyAxisShowTip","pointInfo","manuallyHideTip","tooltipCascadedModel","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleDefaultHTML","singleParamsList","singleTooltipModel","itemCoordSys","seriesDefaultHTML","valueLabel","axisValueLabel","seriesTooltip","newMarkers","singleDefaultHTMLStr","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","tooltipTrigger","tooltipOrder","defaultHtml","asyncTicket","subTooltipModel","nearPoint","_getNearestPoint","cbTicket","tooltipDataParams","contentSize","boxLayoutPosition","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","indexAxis","lastIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","DEFAULT_TOOLBOX_BTNS","preprocessor$1","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolboxFeature","toolboxBrush","brushTypes","removeDuplicate","flag","each$e","hasKeys","createVisualMappings","stateList","supplementVisualOption","visualMappings","mappings","createMappings","visualData","mappingOption","__hidden","__alphaForOpacity","Creater","replaceVisualOption","getValueState","visualTypesMap","eachItem","valueOrIndex","rawDataItem","valueState","incrementalApplyVisual","makeBrushCommonSelectorForSeries","getLineSelectors","inLineRange","layoutRange","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","layoutCovers","brushModel","brushSelected","throttleDelay","setBrushOption","brushIndex","thisBrushSelected","brushId","brushName","brushLink","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","boundingRectBuilders","selectableArea","linkOthers","brushed","rangeInfoList","stepAParallel","stepAOthers","brushModelNotControll","checkInRange","seriesBrushSelected","doDispatch","getBoundingRectFromMinMax","rg","DEFAULT_OUT_OF_BRUSH_COLOR","BrushModel","inBrush","outOfBrush","setAreas","generateBrushOption","BrushView","$from","modelId","ICON_TYPES","BrushFeature","isBrushed","_brushMode","command","TitleModel","subtext","subtarget","subtextStyle","TitleView","subtextStyleModel","subText","subTextEl","sublink","groupRect","alignStyle","preprocessor$2","compatibleEC2","ec2Types","transferItem","controlPosition","itemStyleEmphasis","labelNormal","excludeLabelAttr","currentIndex","setCurrentIndex","isIndexMax","setPlayState","playState","TimelineModel","_initData","autoPlay","getPlayState","dataArr","_names","processedDataArr","rewind","playInterval","SliderTimelineModel","checkpointStyle","showPlayBtn","showPrevBtn","showNextBtn","playIcon","stopIcon","nextIcon","prevIcon","prevBtnSize","nextBtnSize","TimelineView","TimelineAxis","PI$8","labelDataIndexStore","SliderTimelineView","layoutInfo_1","mainGroup_1","_createGroup","labelGroup","axis_1","_createAxis","_renderAxisLabel","_position","_doPlayStop","_updateTicksStatus","_clearTimer","labelPosOpt","getViewRect$5","parsedLabelPos","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","playPosition","prevBtnPosition","nextBtnPosition","labelAlign","labelBaseline","mainGroup","_labelGroup","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","targetGroup","boundIdx","createScaleByModel$1","newGroup","_renderAxisLine","progressLine","_progressLine","_currentPointer","_renderAxisTick","_tickSymbols","hoverStyleModel","progressStyleModel","symbolOpt","_changeTimeline","giveSymbol","_tickLabels","hoverLabelModel","progressLabelModel","_renderControl","makeBtn","_handlePlayClick","willRotate","iconSize","btn","makeControlIcon","_renderCurrentPointer","me","onCreate","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","toCoord","_toAxisCoord","targetDataIndex","_findNearestTick","_timer","axisCoord","nextIndex","tickSymbols","tickLabels","objPath","noAnimation","fillLabel","inner$i","MarkerModel","createdBySelf","hostSeries","__hostSeries","markerOpt","markerModel","createMarkerModelFromSeries","getMarkerModelFromSeries","MarkPointModel","masterMarkerModel","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","markerType","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","numCalculate","coordArrValue","markerTypeCalculator","dataTransform","getAxisInfo$1","coordInfo","baseDataDim","valueDataDim","valueIndex","dataDimToCoordDim","dataFilter$1","sum_1","count_1","inner$j","MarkerView","markerGroupMap","markKeep","drawGroup","seriesModelList","updateMarkerLayout","xPx","yPx","MarkPointView","markPointModel","mpModel","symbolDrawMap","createList$1","coordDimsInfos","dataOpt","MarkLineModel","inner$k","markLineTransform","mlModel","itemArray","mlType","mlFrom","mlTo","normalizedItem","isInifinity","ifMarkLineHasOnlyDim","fromCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","MarkLineView","markLineModel","mlData_1","fromData_1","toData_1","lineDrawMap","createList$2","fromData","toData","updateDataVisualAndLayout","fromSymbolSize","toSymbolSize","optData","dimValueGetter$1","MarkAreaModel","inner$l","markAreaTransform","maModel","ltCoord","rbCoord","isInifinity$1","ifMarkAreaHasOnlyDim","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","MarkAreaView","markAreaModel","areaData_1","areaGroupMap","polygonGroup","areaData","createList$3","getDefaultSelectorOptions","LegendModel","_updateSelector","_updateData","legendData","hasSelected","potentialData","availableNames","isPotential","_availableNames","allSelect","inverseSelect","inactiveColor","inactiveBorderColor","selectorLabel","selectorPosition","selectorItemGap","selectorButtonGap","legendSelectActionHandler","isToggleSelect","legendModel","isItemSelected","curry$1","each$f","Group$2","LegendView","newlineDisabled","_contentGroup","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","isFirstRender","resetInner","itemAlign","renderInner","mainRect","layoutInner","_backgroundEl","contentGroup","legendDrawnMap","selectMode","legendSymbolType","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","_createSelector","selectorGroup","createSelectorButton","selectorItem","emphasisLabelModel","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","legendIndex","__legendDataIndex","contentRect","contentPos","selectorRect","selectorPos","orientIdx","hw","yx","isUseHoverLayer","legendFilter","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","mergeAndNormalizeLayoutParams$1","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","Group$3","WH$1","XY$1","ScrollableLegendView","_currentIndex","_controllerGroup","__rectSize","controllerGroup","pageIconSizeArr","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","processMaxSize","_layoutContentAndController","controllerRect","showController","_showController","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","legendId","canJump","pageText","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","itemRect","itemInfo","winStart","defaultIndex","legendDataIdx","SliderZoomModel","dataBackground","selectedDataBackground","fillerColor","handleIcon","handleStyle","moveHandleSize","moveHandleIcon","moveHandleStyle","showDetail","showDataShadow","zoomLock","brushSelect","Rect$2","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","SliderZoomView","_onBrushEnd","_buildView","_updateView","_brushing","_resetLocation","_resetInterval","barGroup","sliderGroup","_renderDataShadow","_positionGroup","showMoveHandle","coordRect","_findCoordRect","_location","_size","targetAxisModel","otherAxisInverse","_dataShadowInfo","_getViewExtent","clickPanel","_onClickPanel","_onBrushStart","_prepareDataShadowInfo","dataShadowSegs","otherDataExtent","otherOffset","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","lastIsEmpty","otherCoord","createDataShadowGroup","isSelectedArea","thisAxis","getOtherDim","thisDim","handles","handleLabels","filler","_onDragMove","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","_handleHeight","_handleWidth","handleColor","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","moveZoneExpandSize","moveZone","ondragstart","_range","viewExtent","_handleEnds","_updateInterval","viewExtend","lastRange","nonRealtime","displaybles","handleInterval","handleHeight","segIntervals","segGroup","_updateDataInfo","labelTexts","dataInterval","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelPrecision","valueStr","showOrHide","changed","localPoint","_brushStart","_brushStartTime","brushShape","brushEndTime","_updateBrushRect","brushStart","endPoint","coordSysInfoList","InsideZoomModel","disabled","inner$m","apiInner","coordSysRecordMap","coordSysRecord","dataZoomInfoMap","dzReferCoordSysWrap","dzCoordSysInfo","createCoordSysRecord","dzReferCoordSysInfo","getRange","firstDzInfo","firstDzKey","disposeCoordSysRecord","controllerParams","mergeControllerParams","containsPoint","setViewInfoToCoordSysRecord","dzInfo","disposeCoordSysRecordIfNeeded","coordSysKeyArr","dzUid","dispatchAction$1","typePriority","dataZoomInfo","oneType","InsideZoomView","pan","getRangeHandlers","scrollMove","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","makeMover","getPercentDelta","percentDelta","oldPoint","newPoint","each$g","preprocessor$3","has$1","pieces","splitList","calculable","VISUAL_PRIORITY","isTargetSeries","getDataDimension","getVisualMeta","getColorVisual","concreteDim","resultVisual","visualDefault","defaultOption$2","mapVisual$1","isArray$1","each$h","asc$2","linearMap$1","VisualMapModel","replacableOptionKeys","dataBound","controllerVisuals","resetItemSize","completeVisualOption","resetVisual","getTargetSeriesIndices","optionSeriesIndex","is","formatValueText","edgeSymbols","isMinMax","textValue","resetExtent","optDim","listDimensions","completeSingle","completeInactive","completeController","stateExist","stateAbsent","optExist","optAbsent","defa","symbolExists","symbolSizeExists","max_1","setSelected","getSelected","contentColor","textGap","DEFAULT_BAR_BOUND","ContinuousModel","_resetRange","auto","findTargetDataIndices","oVals","getColorStopValues","iVals","setStop","iIdx","oIdx","iLen","oLen","stopsLen","hoverLink","indicatorIcon","indicatorSize","indicatorStyle","stopValues","VisualMapView","autoPositionValues","doRender","getControllerVisual","targetValue","visualCluster","forceState","visualObj","defaultColor","visualMapping","convertOpacityToAlpha","positionGroup","paramsSet","getItemAlign","modelOption","realIndex","reals","fakeValue","layoutInput","rParam","makeHighDownBatch","linearMap$2","each$i","mathMin$8","mathMax$8","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_hoverLinkDataIndices","_useHandle","_renderBar","dataRangeText","_renderEndsText","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","shapes","_createBarGroup","gradientBarGroup","createPolygon","getCursor$1","_dragHandle","textSize","handleThumbs","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","handleLabel","handleLabelPoint","indicatorLabel","indicatorLabelPoint","_firstShowIndicator","_hideIndicator","visualMapId","_hovering","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","_makeColorGradient","symbolSizes","_createBarPoints","handlesColor","sampleNumber","currValue","_showIndicator","cursorValue","rangeSymbol","halfHoverLinkSize","oldIndicatorPos","indicatorNewProps","labelNewProps","_hoverLinkFromSeriesMouseOver","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","getHalfHoverLinkSize","hoverRange","oldBatch","newBatch","resultBatches","_dispatchHighDown","hoverLinkDataSize","hoverLinkOnHandle","actionInfo$2","PiecewiseModel","_pieceList","_mode","_determineMode","resetMethods","_resetSelected","visualTypesInPieces","exists","getSelectedMapKey","hasSel_1","pIdx","getRepresentValue","representValue","pieceInterval","minOpen","maxOpen","itemSymbol","outPieceList","splitStep","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","PiecewiseVisualMapView","_getItemAlign","viewData","_getViewData","endsText","viewPieceList","_onItemClick","_enableHoverLink","indexInModelPieceList","_createItemSymbol","visualState","onHoverLink","shapeParam","newKey","createElementNS","CMD$4","NONE","mathRound","mathSin$3","mathCos$3","PI$9","PI2$8","EPSILON$4","round4","isAroundZero$1","pathHasFill","pathHasStroke","reduceNumberString","toPrecision","svgEl","attrXLink","setAttributeNS","bindStyle","strokeWidth","strokeScale_1","pathDataToString","dataLength","nData","dThetaPositive","isCircle","unifiedTheta","wrapSVGBuildPath","__svgBuildPath","oldBuildPath_1","__svgPathStr","svgPath","__svgEl","svgImage","HTMLImageElement","__imageSrc","TEXT_ALIGN_TO_ANCHOR","adjustTextY$1","svgText","textSvgEl","textSvgElStyle","equals","oldLen","editLength","maxEditLength","bestPath","newPos","oldPos","extractCommon","added","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","clonePath","pushComponent","buildValues","commonCount","componentPos","componentLen","arrayDiff","MARK_UNUSED","MARK_USED","Definable","zrId","svgRoot","tagNames","markLabel","domName","nextId","_domName","_zrId","_svgRoot","_tagNames","_markLabel","getDefs","isForceCreating","getElementsByTagName","defs_1","doUpdate","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","markDomUsed","removeUnused","getSvgProxy","getSvgElement","isLinearGradient","isRadialGradient","GradientManager","addWithoutUpdate","svgElement","that_1","__dom","markUsed","updateDom","stop_1","hex","ClippathManager","isText","clipPathEl","domKey","svgProxy","cloneNode","_textDom","ShadowManager","_shadowDom","_shadowDomId","domChildArr","domChild","stdDx","stdDy","stdDeviation","parseInt10$1","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","createMethodNotSupport","svgDom","bgRoot","_gradientManager","_clipPathManager","_shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","_backgroundNode","bgNode","visibleList","listLen","newVisibleList","prevSvgElement","_getDefs","viewportStyle","encodeURIComponent","outerHTML","parseGeoJSON","util"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function mergeAll(targetAndSources, overwrite) {\r\n var result = targetAndSources[0];\r\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\r\n result = merge(result, targetAndSources[i], overwrite);\r\n }\r\n return result;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function find(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n return arr[i];\r\n }\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function concatArray(a, b) {\r\n var newArray = new a.constructor(a.length + b.length);\r\n for (var i = 0; i < a.length; i++) {\r\n newArray[i] = a[i];\r\n }\r\n var offset = a.length;\r\n for (var i = 0; i < b.length; i++) {\r\n newArray[i + offset] = b[i];\r\n }\r\n return newArray;\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n var zrUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $override: $override,\n guid: guid,\n logError: logError,\n clone: clone,\n merge: merge,\n mergeAll: mergeAll,\n extend: extend,\n defaults: defaults,\n createCanvas: createCanvas,\n indexOf: indexOf,\n inherits: inherits,\n mixin: mixin,\n isArrayLike: isArrayLike,\n each: each,\n map: map,\n reduce: reduce,\n filter: filter,\n find: find,\n keys: keys,\n bind: bind,\n curry: curry,\n isArray: isArray,\n isFunction: isFunction,\n isString: isString,\n isStringSafe: isStringSafe,\n isNumber: isNumber,\n isObject: isObject,\n isBuiltInObject: isBuiltInObject,\n isTypedArray: isTypedArray,\n isDom: isDom,\n isGradientObject: isGradientObject,\n isPatternObject: isPatternObject,\n isRegExp: isRegExp,\n eqNaN: eqNaN,\n retrieve: retrieve,\n retrieve2: retrieve2,\n retrieve3: retrieve3,\n slice: slice,\n normalizeCssArray: normalizeCssArray,\n assert: assert,\n trim: trim,\n setAsPrimitive: setAsPrimitive,\n isPrimitive: isPrimitive,\n HashMap: HashMap,\n createHashMap: createHashMap,\n concatArray: concatArray,\n createObject: createObject,\n hasOwn: hasOwn,\n noop: noop\n });\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function set(out, a, b) {\r\n out[0] = a;\r\n out[1] = b;\r\n return out;\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n var length = len;\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n var lengthSquare = lenSquare;\r\n function mul(out, v1, v2) {\r\n out[0] = v1[0] * v2[0];\r\n out[1] = v1[1] * v2[1];\r\n return out;\r\n }\r\n function div(out, v1, v2) {\r\n out[0] = v1[0] / v2[0];\r\n out[1] = v1[1] / v2[1];\r\n return out;\r\n }\r\n function dot(v1, v2) {\r\n return v1[0] * v2[0] + v1[1] * v2[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function negate(out, v) {\r\n out[0] = -v[0];\r\n out[1] = -v[1];\r\n return out;\r\n }\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var vector = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create,\n copy: copy,\n clone: clone$1,\n set: set,\n add: add,\n scaleAndAdd: scaleAndAdd,\n sub: sub,\n len: len,\n length: length,\n lenSquare: lenSquare,\n lengthSquare: lengthSquare,\n mul: mul,\n div: div,\n dot: dot,\n scale: scale,\n normalize: normalize,\n distance: distance,\n dist: dist,\n distanceSquare: distanceSquare,\n distSquare: distSquare,\n negate: negate,\n lerp: lerp,\n applyTransform: applyTransform,\n min: min,\n max: max\n });\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len;) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n var _calcOut = [];\r\n function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\r\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\r\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\r\n }\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut$1 = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut$1, el, ex, ey)) {\r\n out.zrX = _calcOut$1[0];\r\n out.zrY = _calcOut$1[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\r\n function isMiddleOrRightButtonOnMouseUpDown(e) {\r\n return e.which === 2 || e.which === 3;\r\n }\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n while (el) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n if (el.__dirty) {\r\n el.update();\r\n }\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.markRedraw();\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n if (typeof window !== 'undefined') {\r\n requestAnimationFrame = (window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame;\r\n }\r\n else {\r\n requestAnimationFrame = function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n }\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssAngle(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 360 ? 360 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function lerpNumber(a, b, p) {\r\n return a + (b - a) * p;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n if (str.charAt(0) === '#') {\r\n if (str.length === 4) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (str.length === 7) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === str.length) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function rgba2hsla(rgba) {\r\n if (!rgba) {\r\n return;\r\n }\r\n var R = rgba[0] / 255;\r\n var G = rgba[1] / 255;\r\n var B = rgba[2] / 255;\r\n var vMin = Math.min(R, G, B);\r\n var vMax = Math.max(R, G, B);\r\n var delta = vMax - vMin;\r\n var L = (vMax + vMin) / 2;\r\n var H;\r\n var S;\r\n if (delta === 0) {\r\n H = 0;\r\n S = 0;\r\n }\r\n else {\r\n if (L < 0.5) {\r\n S = delta / (vMax + vMin);\r\n }\r\n else {\r\n S = delta / (2 - vMax - vMin);\r\n }\r\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\r\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\r\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\r\n if (R === vMax) {\r\n H = deltaB - deltaG;\r\n }\r\n else if (G === vMax) {\r\n H = (1 / 3) + deltaR - deltaB;\r\n }\r\n else if (B === vMax) {\r\n H = (2 / 3) + deltaG - deltaR;\r\n }\r\n if (H < 0) {\r\n H += 1;\r\n }\r\n if (H > 1) {\r\n H -= 1;\r\n }\r\n }\r\n var hsla = [H * 360, S, L];\r\n if (rgba[3] != null) {\r\n hsla.push(rgba[3]);\r\n }\r\n return hsla;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function toHex(color) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\r\n }\r\n }\r\n function fastLerp(normalizedValue, colors, out) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n out = out || [];\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = colors[leftIndex];\r\n var rightColor = colors[rightIndex];\r\n var dv = value - leftIndex;\r\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\r\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\r\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\r\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\r\n return out;\r\n }\r\n var fastMapToColor = fastLerp;\r\n function lerp$1(normalizedValue, colors, fullOutput) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = parse(colors[leftIndex]);\r\n var rightColor = parse(colors[rightIndex]);\r\n var dv = value - leftIndex;\r\n var color = stringify([\r\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\r\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\r\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\r\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\r\n ], 'rgba');\r\n return fullOutput\r\n ? {\r\n color: color,\r\n leftIndex: leftIndex,\r\n rightIndex: rightIndex,\r\n value: value\r\n }\r\n : color;\r\n }\r\n var mapToColor = lerp$1;\r\n function modifyHSL(color, h, s, l) {\r\n var colorArr = parse(color);\r\n if (color) {\r\n colorArr = rgba2hsla(colorArr);\r\n h != null && (colorArr[0] = clampCssAngle(h));\r\n s != null && (colorArr[1] = parseCssFloat(s));\r\n l != null && (colorArr[2] = parseCssFloat(l));\r\n return stringify(hsla2rgba(colorArr), 'rgba');\r\n }\r\n }\r\n function modifyAlpha(color, alpha) {\r\n var colorArr = parse(color);\r\n if (colorArr && alpha != null) {\r\n colorArr[3] = clampCssFloat(alpha);\r\n return stringify(colorArr, 'rgba');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\r\n function random() {\r\n var r = Math.round(Math.random() * 255);\r\n var g = Math.round(Math.random() * 255);\r\n var b = Math.round(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\n\n var color = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse,\n lift: lift,\n toHex: toHex,\n fastLerp: fastLerp,\n fastMapToColor: fastMapToColor,\n lerp: lerp$1,\n mapToColor: mapToColor,\n modifyHSL: modifyHSL,\n modifyAlpha: modifyAlpha,\n stringify: stringify,\n lum: lum,\n random: random\n });\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.interpolable\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, this._additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + this._additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._doneList = [];\r\n this._onframeList = [];\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimator = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.during = function (callback) {\r\n this._onframeList.push(callback);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._tracks = null;\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n if (self._additiveAnimator && !self._additiveAnimator._clip) {\r\n self._additiveAnimator = null;\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n for (var i = 0; i < self._onframeList.length; i++) {\r\n self._onframeList[i](self._target, percent);\r\n }\r\n },\r\n ondestroy: function () {\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].setFinished();\r\n }\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n var animation = this.animation;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n if (animation) {\r\n animation.removeClip(clip);\r\n }\r\n this._clip = null;\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted && this.animation) {\r\n this.animation.removeClip(this._clip);\r\n this._clip = null;\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function () {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n if (this.stage.update) {\r\n this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this.__localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this.__globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this.__localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this.__localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this.__globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this.__globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul$1(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\r\n function clone$2(a) {\r\n var b = create$1();\r\n copy$1(b, a);\r\n return b;\r\n }\n\n var matrix = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create$1,\n identity: identity,\n copy: copy$1,\n mul: mul$1,\n translate: translate,\n rotate: rotate,\n scale: scale$1,\n invert: invert,\n clone: clone$2\n });\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul$1(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul$1(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul$1(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n this.updateInnerText();\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + 255 * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function () {\r\n this.useState(PRESERVED_NORMAL_STATE, false);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var count = animators.length;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n }\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n if (animators.length > 0 && typeof cfg.during === 'function') {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i]\r\n .done(done)\r\n .start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0 || cfg.force) {\r\n var existsAnimators = animatable.animators;\r\n var lastAnimator = void 0;\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n lastAnimator = existsAnimators[i];\r\n }\r\n }\r\n if (!additive && lastAnimator) {\r\n var allAborted = lastAnimator.stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, lastAnimator);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? lastAnimator : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this._getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n var delta = endAngle - startAngle;\r\n endAngle = startAngle + delta;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = 1 - data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, !!anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n if (i === 1) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var scaleX = (rx > ry) ? 1 : rx / ry;\r\n var scaleY = (rx > ry) ? ry / rx : 1;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse) {\r\n ctx.translate(cx, cy);\r\n ctx.rotate(psi);\r\n ctx.scale(scaleX, scaleY);\r\n ctx.arc(0, 0, r, startAngle, endAngle, anticlockwise);\r\n ctx.scale(1 / scaleX, 1 / scaleY);\r\n ctx.rotate(-psi);\r\n ctx.translate(-cx, -cy);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta % PI2$4 < 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (anticlockwise) {\r\n var tmp_1 = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp_1);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(data, lineWidth, isStroke, x, y) {\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i > 1) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathData, x, y) {\r\n return containPath(pathData, 0, false, x, y);\r\n }\r\n function containStroke$4(pathData, lineWidth, x, y) {\r\n return containPath(pathData, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.6) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke()) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n w = Math.max(w, this.strokeContainThreshold || 4);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathData = this.path.data;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathData, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathData, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath (path, m) {\r\n var data = path.data;\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < data.length;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\r\n function extendFromString(str, defaultOpts) {\r\n var innerOpts = createPathOptions(str, defaultOpts);\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.applyTransform = innerOpts.applyTransform;\r\n _this.buildPath = innerOpts.buildPath;\r\n return _this;\r\n }\r\n return Sub;\r\n }(SVGPath));\r\n return Sub;\r\n }\r\n function mergePath(pathEls, opts) {\r\n var pathList = [];\r\n var len = pathEls.length;\r\n for (var i = 0; i < len; i++) {\r\n var pathEl = pathEls[i];\r\n if (!pathEl.path) {\r\n pathEl.createPathProxy();\r\n }\r\n if (pathEl.shapeChanged()) {\r\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\r\n }\r\n pathList.push(pathEl.path);\r\n }\r\n var pathBundle = new Path(opts);\r\n pathBundle.createPathProxy();\r\n pathBundle.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.appendPath(pathList);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n };\r\n return pathBundle;\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline (points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier (points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top'\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n var DILIMITER_REG = /[\\s,]+/;\r\n function parseXML(svg) {\r\n if (isString(svg)) {\r\n var parser = new DOMParser();\r\n svg = parser.parseFromString(svg, 'text/xml');\r\n }\r\n var svgNode = svg;\r\n if (svgNode.nodeType === 9) {\r\n svgNode = svgNode.firstChild;\r\n }\r\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\r\n svgNode = svgNode.nextSibling;\r\n }\r\n return svgNode;\r\n }\r\n var nodeParsers;\r\n var SVGParser = (function () {\r\n function SVGParser() {\r\n this._defs = {};\r\n this._root = null;\r\n this._isDefine = false;\r\n this._isText = false;\r\n }\r\n SVGParser.prototype.parse = function (xml, opt) {\r\n opt = opt || {};\r\n var svg = parseXML(xml);\r\n if (!svg) {\r\n throw new Error('Illegal svg');\r\n }\r\n var root = new Group();\r\n this._root = root;\r\n var viewBox = svg.getAttribute('viewBox') || '';\r\n var width = parseFloat((svg.getAttribute('width') || opt.width));\r\n var height = parseFloat((svg.getAttribute('height') || opt.height));\r\n isNaN(width) && (width = null);\r\n isNaN(height) && (height = null);\r\n parseAttributes(svg, root, null, true);\r\n var child = svg.firstChild;\r\n while (child) {\r\n this._parseNode(child, root);\r\n child = child.nextSibling;\r\n }\r\n var viewBoxRect;\r\n var viewBoxTransform;\r\n if (viewBox) {\r\n var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\r\n if (viewBoxArr.length >= 4) {\r\n viewBoxRect = {\r\n x: parseFloat((viewBoxArr[0] || 0)),\r\n y: parseFloat((viewBoxArr[1] || 0)),\r\n width: parseFloat(viewBoxArr[2]),\r\n height: parseFloat(viewBoxArr[3])\r\n };\r\n }\r\n }\r\n if (viewBoxRect && width != null && height != null) {\r\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\r\n if (!opt.ignoreViewBox) {\r\n var elRoot = root;\r\n root = new Group();\r\n root.add(elRoot);\r\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\r\n elRoot.x = viewBoxTransform.x;\r\n elRoot.y = viewBoxTransform.y;\r\n }\r\n }\r\n if (!opt.ignoreRootClip && width != null && height != null) {\r\n root.setClipPath(new Rect({\r\n shape: { x: 0, y: 0, width: width, height: height }\r\n }));\r\n }\r\n return {\r\n root: root,\r\n width: width,\r\n height: height,\r\n viewBoxRect: viewBoxRect,\r\n viewBoxTransform: viewBoxTransform\r\n };\r\n };\r\n SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\r\n var nodeName = xmlNode.nodeName.toLowerCase();\r\n if (nodeName === 'defs') {\r\n this._isDefine = true;\r\n }\r\n else if (nodeName === 'text') {\r\n this._isText = true;\r\n }\r\n var el;\r\n if (this._isDefine) {\r\n var parser = defineParsers[nodeName];\r\n if (parser) {\r\n var def = parser.call(this, xmlNode);\r\n var id = xmlNode.getAttribute('id');\r\n if (id) {\r\n this._defs[id] = def;\r\n }\r\n }\r\n }\r\n else {\r\n var parser = nodeParsers[nodeName];\r\n if (parser) {\r\n el = parser.call(this, xmlNode, parentGroup);\r\n parentGroup.add(el);\r\n }\r\n }\r\n if (el) {\r\n var child = xmlNode.firstChild;\r\n while (child) {\r\n if (child.nodeType === 1) {\r\n this._parseNode(child, el);\r\n }\r\n if (child.nodeType === 3 && this._isText) {\r\n this._parseText(child, el);\r\n }\r\n child = child.nextSibling;\r\n }\r\n }\r\n if (nodeName === 'defs') {\r\n this._isDefine = false;\r\n }\r\n else if (nodeName === 'text') {\r\n this._isText = false;\r\n }\r\n };\r\n SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\r\n if (xmlNode.nodeType === 1) {\r\n var dx = xmlNode.getAttribute('dx') || 0;\r\n var dy = xmlNode.getAttribute('dy') || 0;\r\n this._textX += parseFloat(dx);\r\n this._textY += parseFloat(dy);\r\n }\r\n var text = new TSpan({\r\n style: {\r\n text: xmlNode.textContent\r\n },\r\n x: this._textX || 0,\r\n y: this._textY || 0\r\n });\r\n inheritStyle(parentGroup, text);\r\n parseAttributes(xmlNode, text, this._defs);\r\n var textStyle = text.style;\r\n var fontSize = textStyle.fontSize;\r\n if (fontSize && fontSize < 9) {\r\n textStyle.fontSize = 9;\r\n text.scaleX *= fontSize / 9;\r\n text.scaleY *= fontSize / 9;\r\n }\r\n var font = (textStyle.fontSize || textStyle.fontFamily) && [\r\n textStyle.fontStyle,\r\n textStyle.fontWeight,\r\n (textStyle.fontSize || 12) + 'px',\r\n textStyle.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n textStyle.font = font;\r\n var rect = text.getBoundingRect();\r\n this._textX += rect.width;\r\n parentGroup.add(text);\r\n return text;\r\n };\r\n SVGParser.internalField = (function () {\r\n nodeParsers = {\r\n 'g': function (xmlNode, parentGroup) {\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n return g;\r\n },\r\n 'rect': function (xmlNode, parentGroup) {\r\n var rect = new Rect();\r\n inheritStyle(parentGroup, rect);\r\n parseAttributes(xmlNode, rect, this._defs);\r\n rect.setShape({\r\n x: parseFloat(xmlNode.getAttribute('x') || '0'),\r\n y: parseFloat(xmlNode.getAttribute('y') || '0'),\r\n width: parseFloat(xmlNode.getAttribute('width') || '0'),\r\n height: parseFloat(xmlNode.getAttribute('height') || '0')\r\n });\r\n return rect;\r\n },\r\n 'circle': function (xmlNode, parentGroup) {\r\n var circle = new Circle();\r\n inheritStyle(parentGroup, circle);\r\n parseAttributes(xmlNode, circle, this._defs);\r\n circle.setShape({\r\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\r\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\r\n r: parseFloat(xmlNode.getAttribute('r') || '0')\r\n });\r\n return circle;\r\n },\r\n 'line': function (xmlNode, parentGroup) {\r\n var line = new Line();\r\n inheritStyle(parentGroup, line);\r\n parseAttributes(xmlNode, line, this._defs);\r\n line.setShape({\r\n x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\r\n y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\r\n x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\r\n y2: parseFloat(xmlNode.getAttribute('y2') || '0')\r\n });\r\n return line;\r\n },\r\n 'ellipse': function (xmlNode, parentGroup) {\r\n var ellipse = new Ellipse();\r\n inheritStyle(parentGroup, ellipse);\r\n parseAttributes(xmlNode, ellipse, this._defs);\r\n ellipse.setShape({\r\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\r\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\r\n rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\r\n ry: parseFloat(xmlNode.getAttribute('ry') || '0')\r\n });\r\n return ellipse;\r\n },\r\n 'polygon': function (xmlNode, parentGroup) {\r\n var pointsStr = xmlNode.getAttribute('points');\r\n var pointsArr;\r\n if (pointsStr) {\r\n pointsArr = parsePoints(pointsStr);\r\n }\r\n var polygon = new Polygon({\r\n shape: {\r\n points: pointsArr || []\r\n }\r\n });\r\n inheritStyle(parentGroup, polygon);\r\n parseAttributes(xmlNode, polygon, this._defs);\r\n return polygon;\r\n },\r\n 'polyline': function (xmlNode, parentGroup) {\r\n var path = new Path();\r\n inheritStyle(parentGroup, path);\r\n parseAttributes(xmlNode, path, this._defs);\r\n var pointsStr = xmlNode.getAttribute('points');\r\n var pointsArr;\r\n if (pointsStr) {\r\n pointsArr = parsePoints(pointsStr);\r\n }\r\n var polyline = new Polyline({\r\n shape: {\r\n points: pointsArr || []\r\n }\r\n });\r\n return polyline;\r\n },\r\n 'image': function (xmlNode, parentGroup) {\r\n var img = new ZRImage();\r\n inheritStyle(parentGroup, img);\r\n parseAttributes(xmlNode, img, this._defs);\r\n img.setStyle({\r\n image: xmlNode.getAttribute('xlink:href'),\r\n x: +xmlNode.getAttribute('x'),\r\n y: +xmlNode.getAttribute('y'),\r\n width: +xmlNode.getAttribute('width'),\r\n height: +xmlNode.getAttribute('height')\r\n });\r\n return img;\r\n },\r\n 'text': function (xmlNode, parentGroup) {\r\n var x = xmlNode.getAttribute('x') || '0';\r\n var y = xmlNode.getAttribute('y') || '0';\r\n var dx = xmlNode.getAttribute('dx') || '0';\r\n var dy = xmlNode.getAttribute('dy') || '0';\r\n this._textX = parseFloat(x) + parseFloat(dx);\r\n this._textY = parseFloat(y) + parseFloat(dy);\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n return g;\r\n },\r\n 'tspan': function (xmlNode, parentGroup) {\r\n var x = xmlNode.getAttribute('x');\r\n var y = xmlNode.getAttribute('y');\r\n if (x != null) {\r\n this._textX = parseFloat(x);\r\n }\r\n if (y != null) {\r\n this._textY = parseFloat(y);\r\n }\r\n var dx = xmlNode.getAttribute('dx') || 0;\r\n var dy = xmlNode.getAttribute('dy') || 0;\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n this._textX += dx;\r\n this._textY += dy;\r\n return g;\r\n },\r\n 'path': function (xmlNode, parentGroup) {\r\n var d = xmlNode.getAttribute('d') || '';\r\n var path = createFromString(d);\r\n inheritStyle(parentGroup, path);\r\n parseAttributes(xmlNode, path, this._defs);\r\n return path;\r\n }\r\n };\r\n })();\r\n return SVGParser;\r\n }());\r\n var defineParsers = {\r\n 'lineargradient': function (xmlNode) {\r\n var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\r\n var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\r\n var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\r\n var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\r\n var gradient = new LinearGradient(x1, y1, x2, y2);\r\n _parseGradientColorStops(xmlNode, gradient);\r\n return gradient;\r\n }\r\n };\r\n function _parseGradientColorStops(xmlNode, gradient) {\r\n var stop = xmlNode.firstChild;\r\n while (stop) {\r\n if (stop.nodeType === 1) {\r\n var offsetStr = stop.getAttribute('offset');\r\n var offset = void 0;\r\n if (offsetStr.indexOf('%') > 0) {\r\n offset = parseInt(offsetStr, 10) / 100;\r\n }\r\n else if (offsetStr) {\r\n offset = parseFloat(offsetStr);\r\n }\r\n else {\r\n offset = 0;\r\n }\r\n var stopColor = stop.getAttribute('stop-color') || '#000000';\r\n gradient.colorStops.push({\r\n offset: offset,\r\n color: stopColor\r\n });\r\n }\r\n stop = stop.nextSibling;\r\n }\r\n }\r\n function inheritStyle(parent, child) {\r\n if (parent && parent.__inheritedStyle) {\r\n if (!child.__inheritedStyle) {\r\n child.__inheritedStyle = {};\r\n }\r\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\r\n }\r\n }\r\n function parsePoints(pointsString) {\r\n var list = trim(pointsString).split(DILIMITER_REG);\r\n var points = [];\r\n for (var i = 0; i < list.length; i += 2) {\r\n var x = parseFloat(list[i]);\r\n var y = parseFloat(list[i + 1]);\r\n points.push([x, y]);\r\n }\r\n return points;\r\n }\r\n var attributesMap = {\r\n 'fill': 'fill',\r\n 'stroke': 'stroke',\r\n 'stroke-width': 'lineWidth',\r\n 'opacity': 'opacity',\r\n 'fill-opacity': 'fillOpacity',\r\n 'stroke-opacity': 'strokeOpacity',\r\n 'stroke-dasharray': 'lineDash',\r\n 'stroke-dashoffset': 'lineDashOffset',\r\n 'stroke-linecap': 'lineCap',\r\n 'stroke-linejoin': 'lineJoin',\r\n 'stroke-miterlimit': 'miterLimit',\r\n 'font-family': 'fontFamily',\r\n 'font-size': 'fontSize',\r\n 'font-style': 'fontStyle',\r\n 'font-weight': 'fontWeight',\r\n 'text-align': 'textAlign',\r\n 'alignment-baseline': 'textBaseline'\r\n };\r\n function parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\r\n var disp = el;\r\n var zrStyle = disp.__inheritedStyle || {};\r\n if (xmlNode.nodeType === 1) {\r\n parseTransformAttribute(xmlNode, el);\r\n extend(zrStyle, parseStyleAttribute(xmlNode));\r\n if (!onlyInlineStyle) {\r\n for (var svgAttrName in attributesMap) {\r\n if (attributesMap.hasOwnProperty(svgAttrName)) {\r\n var attrValue = xmlNode.getAttribute(svgAttrName);\r\n if (attrValue != null) {\r\n zrStyle[attributesMap[svgAttrName]] = attrValue;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n disp.style = disp.style || {};\r\n zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\r\n zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\r\n each([\r\n 'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\r\n ], function (propName) {\r\n zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\r\n });\r\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\r\n zrStyle.textBaseline = 'alphabetic';\r\n }\r\n if (zrStyle.textBaseline === 'alphabetic') {\r\n zrStyle.textBaseline = 'bottom';\r\n }\r\n if (zrStyle.textAlign === 'start') {\r\n zrStyle.textAlign = 'left';\r\n }\r\n if (zrStyle.textAlign === 'end') {\r\n zrStyle.textAlign = 'right';\r\n }\r\n each(['lineDashOffset', 'lineCap', 'lineJoin',\r\n 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\r\n ], function (propName) {\r\n zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\r\n });\r\n if (zrStyle.lineDash) {\r\n disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\r\n return parseFloat(str);\r\n });\r\n }\r\n disp.__inheritedStyle = zrStyle;\r\n }\r\n var urlRegex = /url\\(\\s*#(.*?)\\)/;\r\n function getPaint(str, defs) {\r\n var urlMatch = defs && str && str.match(urlRegex);\r\n if (urlMatch) {\r\n var url = trim(urlMatch[1]);\r\n var def = defs[url];\r\n return def;\r\n }\r\n return str;\r\n }\r\n var transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\r\n function parseTransformAttribute(xmlNode, node) {\r\n var transform = xmlNode.getAttribute('transform');\r\n if (transform) {\r\n transform = transform.replace(/,/g, ' ');\r\n var transformOps_1 = [];\r\n var m = null;\r\n transform.replace(transformRegex, function (str, type, value) {\r\n transformOps_1.push(type, value);\r\n return '';\r\n });\r\n for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\r\n var value = transformOps_1[i];\r\n var type = transformOps_1[i - 1];\r\n var valueArr = void 0;\r\n m = m || create$1();\r\n switch (type) {\r\n case 'translate':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\r\n break;\r\n case 'scale':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n scale$1(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\r\n break;\r\n case 'rotate':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n rotate(m, m, parseFloat(valueArr[0]));\r\n break;\r\n case 'skew':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n console.warn('Skew transform is not supported yet');\r\n break;\r\n case 'matrix':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n m[0] = parseFloat(valueArr[0]);\r\n m[1] = parseFloat(valueArr[1]);\r\n m[2] = parseFloat(valueArr[2]);\r\n m[3] = parseFloat(valueArr[3]);\r\n m[4] = parseFloat(valueArr[4]);\r\n m[5] = parseFloat(valueArr[5]);\r\n break;\r\n }\r\n }\r\n node.setLocalTransform(m);\r\n }\r\n }\r\n var styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\r\n function parseStyleAttribute(xmlNode) {\r\n var style = xmlNode.getAttribute('style');\r\n var result = {};\r\n if (!style) {\r\n return result;\r\n }\r\n var styleList = {};\r\n styleRegex.lastIndex = 0;\r\n var styleRegResult;\r\n while ((styleRegResult = styleRegex.exec(style)) != null) {\r\n styleList[styleRegResult[1]] = styleRegResult[2];\r\n }\r\n for (var svgAttrName in attributesMap) {\r\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\r\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\r\n }\r\n }\r\n return result;\r\n }\r\n function makeViewBoxTransform(viewBoxRect, width, height) {\r\n var scaleX = width / viewBoxRect.width;\r\n var scaleY = height / viewBoxRect.height;\r\n var scale = Math.min(scaleX, scaleY);\r\n return {\r\n scale: scale,\r\n x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\r\n y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\r\n };\r\n }\r\n function parseSVG(xml, opt) {\r\n var parser = new SVGParser();\r\n return parser.parse(xml, opt);\r\n }\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: cb, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.opacity = retrieve2(style.opacity, 1);\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var shadowStyle = (rectEl || imgEl).style;\r\n shadowStyle.shadowBlur = style.shadowBlur || 0;\r\n shadowStyle.shadowColor = style.shadowColor || 'transparent';\r\n shadowStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n shadowStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$2 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$2 / n;\r\n var deg = -PI$2 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var SectorShape = (function () {\r\n function SectorShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SectorShape;\r\n }());\r\n var Sector = (function (_super) {\r\n __extends(Sector, _super);\r\n function Sector(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Sector.prototype.getDefaultShape = function () {\r\n return new SectorShape();\r\n };\r\n Sector.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r0 + x, unitY * r0 + y);\r\n ctx.lineTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n }\r\n ctx.closePath();\r\n };\r\n Sector.prototype.isZeroArea = function () {\r\n return this.shape.startAngle === this.shape.endAngle\r\n || this.shape.r === this.shape.r0;\r\n };\r\n return Sector;\r\n }(Path));\r\n Sector.prototype.type = 'sector';\n\n var PI$3 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$3 / n) / cos$2(PI$3 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n var instances = {};\r\n function delInstance(id) {\r\n delete instances[id];\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: bind(this.flush, this)\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this._needsRefresh = true;\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update();\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n var triggerRendered;\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(true);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered');\r\n }\r\n else {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > 10) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover) {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n instances[zr.id] = zr;\r\n return zr;\r\n }\r\n function dispose(zr) {\r\n zr.dispose();\r\n }\r\n function disposeAll() {\r\n for (var key in instances) {\r\n if (instances.hasOwnProperty(key)) {\r\n instances[key].dispose();\r\n }\r\n }\r\n instances = {};\r\n }\r\n function getInstance(id) {\r\n return instances[id];\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\r\n var version = '5.0.0-alpha.1';\n\n var zrender = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init,\n dispose: dispose,\n disposeAll: disposeAll,\n getInstance: getInstance,\n registerPainter: registerPainter,\n version: version\n });\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function asc(arr) {\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n return arr;\r\n }\r\n function getPrecision(val) {\r\n val = +val;\r\n if (isNaN(val)) {\r\n return 0;\r\n }\r\n var e = 1;\r\n var count = 0;\r\n while (Math.round(val * e) / e !== val) {\r\n e *= 10;\r\n count++;\r\n }\r\n return count;\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n var MAX_SAFE_INTEGER = 9007199254740991;\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function quantile(ascArr, p) {\r\n var H = (ascArr.length - 1) * p + 1;\r\n var h = Math.floor(H);\r\n var v = +ascArr[h - 1];\r\n var e = H - h;\r\n return e ? v + e * (ascArr[h] - v) : v;\r\n }\r\n function reformIntervals(list) {\r\n list.sort(function (a, b) {\r\n return littleThan(a, b, 0) ? -1 : 1;\r\n });\r\n var curr = -Infinity;\r\n var currClose = 1;\r\n for (var i = 0; i < list.length;) {\r\n var interval = list[i].interval;\r\n var close_1 = list[i].close;\r\n for (var lg = 0; lg < 2; lg++) {\r\n if (interval[lg] <= curr) {\r\n interval[lg] = curr;\r\n close_1[lg] = (!lg ? 1 - currClose : 1);\r\n }\r\n curr = interval[lg];\r\n currClose = close_1[lg];\r\n }\r\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\r\n list.splice(i, 1);\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return list;\r\n function littleThan(a, b, lg) {\r\n return a.interval[lg] < b.interval[lg]\r\n || (a.interval[lg] === b.interval[lg]\r\n && ((a.close[lg] - b.close[lg] === (!lg ? 1 : -1))\r\n || (!lg && littleThan(a, b, 1))));\r\n }\r\n }\r\n function isNumeric(v) {\r\n return v - parseFloat(v) >= 0;\r\n }\n\n var number = /*#__PURE__*/Object.freeze({\n __proto__: null,\n linearMap: linearMap,\n parsePercent: parsePercent$2,\n round: round$1,\n asc: asc,\n getPrecision: getPrecision,\n getPrecisionSafe: getPrecisionSafe,\n getPixelPrecision: getPixelPrecision,\n getPercentWithPrecision: getPercentWithPrecision,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,\n remRadian: remRadian,\n isRadianAroundZero: isRadianAroundZero,\n parseDate: parseDate,\n quantity: quantity,\n quantityExponent: quantityExponent,\n nice: nice,\n quantile: quantile,\n reformIntervals: reformIntervals,\n isNumeric: isNumeric\n });\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n cmptOption.id == null || validateIdOrName(cmptOption.id);\r\n cmptOption.name == null || validateIdOrName(cmptOption.name);\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n var nextIdx = 0;\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = obj1[attr];\r\n var key2 = obj2[attr];\r\n return key1 != null && key2 != null && key1 + '' === key2 + '';\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return val + '';\r\n }\r\n function validateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n assert(isValidIdOrName(idOrName), '`' + idOrName + '` is invalid id or name. Must be a string.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function makeInternalComponentId(idSuffix) {\r\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function compressBatches(batchA, batchB) {\r\n var mapA = {};\r\n var mapB = {};\r\n makeMap(batchA || [], mapA);\r\n makeMap(batchB || [], mapB, mapA);\r\n return [mapToArray(mapA), mapToArray(mapB)];\r\n function makeMap(sourceBatch, map, otherMap) {\r\n for (var i = 0, len = sourceBatch.length; i < len; i++) {\r\n var seriesId = sourceBatch[i].seriesId;\r\n var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\r\n var otherDataIndices = otherMap && otherMap[seriesId];\r\n for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\r\n var dataIndex = dataIndices[j];\r\n if (otherDataIndices && otherDataIndices[dataIndex]) {\r\n otherDataIndices[dataIndex] = null;\r\n }\r\n else {\r\n (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\r\n }\r\n }\r\n }\r\n }\r\n function mapToArray(map, isData) {\r\n var result = [];\r\n for (var i in map) {\r\n if (map.hasOwnProperty(i) && map[i] != null) {\r\n if (isData) {\r\n result.push(+i);\r\n }\r\n else {\r\n var dataIndices = mapToArray(map[i], true);\r\n dataIndices.length && result.push({ seriesId: i, dataIndex: dataIndices });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = Math.round(Math.random() * 5);\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (mainType !== defaultMainType && value == null)\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: mainType === defaultMainType,\r\n enableAll: true,\r\n enableNone: true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n var MULTIPLE_REFERRING = { useDefault: false, enableAll: true, enableNone: true };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\r\n function getTooltipRenderMode(renderModeOption) {\r\n if (renderModeOption === 'auto') {\r\n return env.domSupported ? 'html' : 'richText';\r\n }\r\n else {\r\n return renderModeOption || 'html';\r\n }\r\n }\r\n function groupData(array, getKey) {\r\n var buckets = createHashMap();\r\n var keys = [];\r\n each(array, function (item) {\r\n var key = getKey(item);\r\n (buckets.get(key)\r\n || (keys.push(key), buckets.set(key, []))).push(item);\r\n });\r\n return {\r\n keys: keys,\r\n buckets: buckets\r\n };\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper (properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color$1) {\r\n if (typeof color$1 !== 'string') {\r\n return color$1;\r\n }\r\n var liftedColor = liftedColorCache.get(color$1);\r\n if (!liftedColor) {\r\n liftedColor = lift(color$1, -0.1);\r\n liftedColorCache.put(color$1, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange) {\r\n if ((el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(ecIns) {\r\n var model = ecIns.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? ecIns.getViewOfSeriesModel(componentModel)\r\n : ecIns.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, ecIns, isBlur) {\r\n var ecModel = ecIns.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(ecIns);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = ecIns.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = ecIns.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, ecIns) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, ecIns, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, ecIns, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, ecIns) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n if (focus != null) {\r\n var ecData = getECData(el);\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var styleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getterType) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = model[getterType || styleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : val;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\r\n function throwError(msg) {\r\n throw new Error(msg);\r\n }\n\n var EMPTY_OBJ = {};\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : null;\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n textContent = targetEl.getTextContent();\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n stateObj.ignore = !retrieve2(stateModel.getShallow('show'), showNormal);\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'opacity',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var lineWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (lineWidth != null) {\r\n textStyle.lineWidth = lineWidth;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n var style = getLineStyle(this, excludes);\r\n style.lineDash = this.getLineDash(style.lineWidth);\r\n return style;\r\n };\r\n LineStyleMixin.prototype.getLineDash = function (lineWidth) {\r\n if (lineWidth == null) {\r\n lineWidth = 1;\r\n }\r\n var lineType = this.get('type');\r\n var dotSize = Math.max(lineWidth, 2);\r\n var dashSize = lineWidth * 4;\r\n return (lineType === 'solid' || lineType == null)\r\n ? false\r\n : lineType === 'dashed'\r\n ? [dashSize, dashSize]\r\n : [dotSize, dotSize];\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n var style = getItemStyle(this, excludes, includes);\r\n var lineDash = this.getBorderLineDash();\r\n lineDash && (style.lineDash = lineDash);\r\n return style;\r\n };\r\n ItemStyleMixin.prototype.getBorderLineDash = function () {\r\n var lineType = this.get('borderType');\r\n return (lineType === 'solid' || lineType == null) ? null\r\n : (lineType === 'dashed' ? [5, 5] : [1, 1]);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var stack = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (stack.length) {\r\n var currComponentType = stack.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n throw new Error('Circle dependency may exists');\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n stack.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}:{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, lang, isUTC) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, lang, isUTC);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n var time = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ONE_SECOND: ONE_SECOND,\n ONE_MINUTE: ONE_MINUTE,\n ONE_HOUR: ONE_HOUR,\n ONE_DAY: ONE_DAY,\n ONE_YEAR: ONE_YEAR,\n defaultLeveledFormatter: defaultLeveledFormatter,\n fullLeveledFormatter: fullLeveledFormatter,\n primaryTimeUnits: primaryTimeUnits,\n timeUnits: timeUnits,\n pad: pad,\n getPrimaryTimeUnit: getPrimaryTimeUnit,\n isPrimaryTimeUnit: isPrimaryTimeUnit,\n getDefaultFormatPrecisionOfInterval: getDefaultFormatPrecisionOfInterval,\n format: format,\n leveledFormat: leveledFormat,\n getUnitFromValue: getUnitFromValue,\n getUnitValue: getUnitValue,\n fullYearGetterName: fullYearGetterName,\n monthGetterName: monthGetterName,\n dateGetterName: dateGetterName,\n hoursGetterName: hoursGetterName,\n minutesGetterName: minutesGetterName,\n secondsGetterName: secondsGetterName,\n millisecondsGetterName: millisecondsGetterName,\n fullYearSetterName: fullYearSetterName,\n monthSetterName: monthSetterName,\n dateSetterName: dateSetterName,\n hoursSetterName: hoursSetterName,\n minutesSetterName: minutesSetterName,\n secondsSetterName: secondsSetterName,\n millisecondsSetterName: millisecondsSetterName\n });\n\n var mathMax$3 = Math.max;\r\n var mathMin$3 = Math.min;\r\n var _customShapeMap = {};\r\n var innerLabel = makeInner();\r\n function extendShape(opts) {\r\n return Path.extend(opts);\r\n }\r\n var extendPathFromString = extendFromString;\r\n function extendPath(pathData, opts) {\r\n return extendPathFromString(pathData, opts);\r\n }\r\n function registerShape(name, ShapeClass) {\r\n _customShapeMap[name] = ShapeClass;\r\n }\r\n function getShapeClass(name) {\r\n if (_customShapeMap.hasOwnProperty(name)) {\r\n return _customShapeMap[name];\r\n }\r\n }\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n var mergePath$1 = mergePath;\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function subPixelOptimizeLine$1(param) {\r\n subPixelOptimizeLine(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n function subPixelOptimizeRect$1(param) {\r\n subPixelOptimizeRect(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n var subPixelOptimize$1 = subPixelOptimize;\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n duration = 200;\r\n animationEasing = 'cubicOut';\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n }\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(), el.attr(props), cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, function (percent) {\r\n during && during(percent);\r\n });\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function animateOrSetLabel(animationType, el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n var valueAnimationEnabled = labelModel && labelModel.get('valueAnimation');\r\n if (valueAnimationEnabled) {\r\n var precisionOption = labelModel.get('precision');\r\n var precision_1 = !precisionOption || precisionOption === 'auto'\r\n ? 0\r\n : precisionOption;\r\n var interpolateValues_1;\r\n var rawValues_1 = seriesModel.getRawValue(dataIndex);\r\n var isRawValueNumber_1 = false;\r\n if (typeof rawValues_1 === 'number') {\r\n isRawValueNumber_1 = true;\r\n interpolateValues_1 = rawValues_1;\r\n }\r\n else {\r\n interpolateValues_1 = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type !== 'ordinal') {\r\n interpolateValues_1.push(rawValues_1[i]);\r\n }\r\n }\r\n }\r\n var text = el.getTextContent();\r\n var host_1 = text && innerLabel(text);\r\n host_1 && (host_1.startValue = host_1.nextValue);\r\n var during = function (percent) {\r\n var text = el.getTextContent();\r\n if (!text || !host_1) {\r\n return;\r\n }\r\n var interpolated;\r\n if (isRawValueNumber_1) {\r\n var value = interpolateNumber(host_1.startValue || 0, interpolateValues_1, percent);\r\n interpolated = round$1(value, precision_1);\r\n }\r\n else {\r\n interpolated = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = rawValues_1[i];\r\n }\r\n else {\r\n var startValues = host_1.startValue;\r\n var value = startValues == null\r\n ? rawValues_1[i]\r\n : interpolateNumber(startValues && startValues[i] ? startValues[i] : 0, interpolateValues_1[i], percent);\r\n interpolated[i] = round$1(value), precision_1;\r\n }\r\n }\r\n }\r\n host_1.nextValue = interpolated;\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n labelFetcher: seriesModel,\r\n defaultText: defaultTextGetter\r\n ? defaultTextGetter(interpolated)\r\n : interpolated + ''\r\n }, { normal: labelModel }, interpolated);\r\n text.style.text = labelText.normal;\r\n text.dirty();\r\n };\r\n var props = {};\r\n animateOrSetProps(animationType, el, props, animatableModel, dataIndex, null, during);\r\n }\r\n }\r\n function updateLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('update', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function initLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('init', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function getTransform(target, ancestor) {\r\n var mat = identity([]);\r\n while (target && target !== ancestor) {\r\n mul$1(mat, target.getLocalTransform(), mat);\r\n target = target.parent;\r\n }\r\n return mat;\r\n }\r\n function applyTransform$1(target, transform, invert$1) {\r\n if (transform && !isArrayLike(transform)) {\r\n transform = Transformable.getLocalTransform(transform);\r\n }\r\n if (invert$1) {\r\n transform = invert([], transform);\r\n }\r\n return applyTransform([], target, transform);\r\n }\r\n function transformDirection(direction, transform, invert) {\r\n var hBase = (transform[4] === 0 || transform[5] === 0 || transform[0] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[0]);\r\n var vBase = (transform[4] === 0 || transform[5] === 0 || transform[2] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[2]);\r\n var vertex = [\r\n direction === 'left' ? -hBase : direction === 'right' ? hBase : 0,\r\n direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0\r\n ];\r\n vertex = applyTransform$1(vertex, transform, invert);\r\n return Math.abs(vertex[0]) > Math.abs(vertex[1])\r\n ? (vertex[0] > 0 ? 'right' : 'left')\r\n : (vertex[1] > 0 ? 'bottom' : 'top');\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\r\n function clipPointsByRect(points, rect) {\r\n return map(points, function (point) {\r\n var x = point[0];\r\n x = mathMax$3(x, rect.x);\r\n x = mathMin$3(x, rect.x + rect.width);\r\n var y = point[1];\r\n y = mathMax$3(y, rect.y);\r\n y = mathMin$3(y, rect.y + rect.height);\r\n return [x, y];\r\n });\r\n }\r\n function clipRectByRect(targetRect, rect) {\r\n var x = mathMax$3(targetRect.x, rect.x);\r\n var x2 = mathMin$3(targetRect.x + targetRect.width, rect.x + rect.width);\r\n var y = mathMax$3(targetRect.y, rect.y);\r\n var y2 = mathMin$3(targetRect.y + targetRect.height, rect.y + rect.height);\r\n if (x2 >= x && y2 >= y) {\r\n return {\r\n x: x,\r\n y: y,\r\n width: x2 - x,\r\n height: y2 - y\r\n };\r\n }\r\n }\r\n function createIcon(iconStr, opt, rect) {\r\n var innerOpts = extend({ rectHover: true }, opt);\r\n var style = innerOpts.style = { strokeNoScale: true };\r\n rect = rect || { x: -1, y: -1, width: 2, height: 2 };\r\n if (iconStr) {\r\n return iconStr.indexOf('image://') === 0\r\n ? (style.image = iconStr.slice(8),\r\n defaults(style, rect),\r\n new ZRImage(innerOpts))\r\n : (makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center'));\r\n }\r\n }\r\n function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\r\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\r\n var p = points[i];\r\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\r\n return true;\r\n }\r\n p2 = p;\r\n }\r\n }\r\n function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\r\n var mx = a2x - a1x;\r\n var my = a2y - a1y;\r\n var nx = b2x - b1x;\r\n var ny = b2y - b1y;\r\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\r\n if (nearZero(nmCrossProduct)) {\r\n return false;\r\n }\r\n var b1a1x = a1x - b1x;\r\n var b1a1y = a1y - b1y;\r\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\r\n if (q < 0 || q > 1) {\r\n return false;\r\n }\r\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\r\n if (p < 0 || p > 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function crossProduct2d(x1, y1, x2, y2) {\r\n return x1 * y2 - x2 * y1;\r\n }\r\n function nearZero(val) {\r\n return val <= (1e-6) && val >= -(1e-6);\r\n }\r\n registerShape('circle', Circle);\r\n registerShape('ellipse', Ellipse);\r\n registerShape('sector', Sector);\r\n registerShape('ring', Ring);\r\n registerShape('polygon', Polygon);\r\n registerShape('polyline', Polyline);\r\n registerShape('rect', Rect);\r\n registerShape('line', Line);\r\n registerShape('bezierCurve', BezierCurve);\r\n registerShape('arc', Arc);\n\n var graphic = /*#__PURE__*/Object.freeze({\n __proto__: null,\n extendShape: extendShape,\n extendPath: extendPath,\n registerShape: registerShape,\n getShapeClass: getShapeClass,\n makePath: makePath,\n makeImage: makeImage,\n mergePath: mergePath$1,\n resizePath: resizePath,\n subPixelOptimizeLine: subPixelOptimizeLine$1,\n subPixelOptimizeRect: subPixelOptimizeRect$1,\n subPixelOptimize: subPixelOptimize$1,\n updateProps: updateProps,\n initProps: initProps,\n removeElement: removeElement,\n removeElementWithFadeOut: removeElementWithFadeOut,\n isElementRemoved: isElementRemoved,\n updateLabel: updateLabel,\n initLabel: initLabel,\n getTransform: getTransform,\n applyTransform: applyTransform$1,\n transformDirection: transformDirection,\n groupTransition: groupTransition,\n clipPointsByRect: clipPointsByRect,\n clipRectByRect: clipRectByRect,\n createIcon: createIcon,\n linePolygonIntersect: linePolygonIntersect,\n lineLineIntersect: lineLineIntersect,\n Group: Group,\n Image: ZRImage,\n Text: ZRText,\n Circle: Circle,\n Ellipse: Ellipse,\n Sector: Sector,\n Ring: Ring,\n Polygon: Polygon,\n Polyline: Polyline,\n Rect: Rect,\n Line: Line,\n BezierCurve: BezierCurve,\n Arc: Arc,\n IncrementalDisplayable: IncrementalDisplayble,\n CompoundPath: CompoundPath,\n LinearGradient: LinearGradient,\n RadialGradient: RadialGradient,\n BoundingRect: BoundingRect,\n OrientedBoundingRect: OrientedBoundingRect,\n Point: Point,\n Path: Path\n });\n\n function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\r\n deprecateLog('getTextRect is deprecated.');\r\n var textEl = new ZRText({\r\n style: {\r\n text: text,\r\n font: font,\r\n align: align,\r\n verticalAlign: verticalAlign,\r\n padding: padding,\r\n rich: rich,\r\n overflow: truncate ? 'truncate' : null,\r\n lineHeight: lineHeight\r\n }\r\n });\r\n return textEl.getBoundingRect();\r\n }\n\n function addCommas(x) {\r\n if (isNaN(x)) {\r\n return '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n function toCamelCase(str, upperCaseFirst) {\r\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (upperCaseFirst && str) {\r\n str = str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n return str;\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': '''\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n function concatTooltipHtml(html, value, dontEncodeHtml) {\r\n return (dontEncodeHtml ? html : \"\" + encodeHTML(html) + \"\")\r\n + (value ? '' : '')\r\n + encodeHTML(value)\r\n + (value ? '' : '');\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var isTimeAxis = paramsList[0].axisType && paramsList[0].axisType.indexOf('time') >= 0;\r\n if (isTimeAxis) {\r\n var axisValue = paramsList[0].data[paramsList[0].axisIndex];\r\n var date = parseDate(axisValue);\r\n return format(date, tpl);\r\n }\r\n else {\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n }\r\n return tpl;\r\n }\r\n function formatTplSimple(tpl, param, encode) {\r\n each(param, function (value, key) {\r\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\r\n });\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n var markerId = opt.markerId || 'X';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? ''\r\n : '';\r\n }\r\n else {\r\n return {\r\n renderMode: renderMode,\r\n content: '{marker' + markerId + '|} ',\r\n style: {\r\n color: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\r\n function capitalFirst(str) {\r\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\r\n }\r\n function windowOpen(link, target) {\r\n if (target === '_blank' || target === 'blank') {\r\n var blank = window.open();\r\n blank.opener = null;\r\n blank.location.href = link;\r\n }\r\n else {\r\n window.open(link, target);\r\n }\r\n }\n\n var format$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addCommas: addCommas,\n toCamelCase: toCamelCase,\n normalizeCssArray: normalizeCssArray$1,\n encodeHTML: encodeHTML,\n concatTooltipHtml: concatTooltipHtml,\n formatTpl: formatTpl,\n formatTplSimple: formatTplSimple,\n getTooltipMarker: getTooltipMarker,\n formatTime: formatTime,\n capitalFirst: capitalFirst,\n windowOpen: windowOpen,\n truncateText: truncateText,\n getTextRect: getTextRect\n });\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var box = boxLayout;\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getAvailableSize(positionInfo, containerRect, margin) {\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var x = parsePercent$2(positionInfo.left, containerWidth);\r\n var y = parsePercent$2(positionInfo.top, containerHeight);\r\n var x2 = parsePercent$2(positionInfo.right, containerWidth);\r\n var y2 = parsePercent$2(positionInfo.bottom, containerHeight);\r\n (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\r\n (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\r\n (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\r\n (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\r\n margin = normalizeCssArray$1(margin || 0);\r\n return {\r\n width: Math.max(x2 - x - margin[1] - margin[3], 0),\r\n height: Math.max(y2 - y - margin[0] - margin[2], 0)\r\n };\r\n }\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function positionElement(el, positionInfo, containerRect, margin, opt) {\r\n var h = !opt || !opt.hv || opt.hv[0];\r\n var v = !opt || !opt.hv || opt.hv[1];\r\n var boundingMode = opt && opt.boundingMode || 'all';\r\n if (!h && !v) {\r\n return;\r\n }\r\n var rect;\r\n if (boundingMode === 'raw') {\r\n rect = el.type === 'group'\r\n ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0)\r\n : el.getBoundingRect();\r\n }\r\n else {\r\n rect = el.getBoundingRect();\r\n if (el.needLocalTransform()) {\r\n var transform = el.getLocalTransform();\r\n rect = rect.clone();\r\n rect.applyTransform(transform);\r\n }\r\n }\r\n var layoutRect = getLayoutRect(defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin);\r\n var dx = h ? layoutRect.x - rect.x : 0;\r\n var dy = v ? layoutRect.y - rect.y : 0;\r\n if (boundingMode === 'raw') {\r\n el.x = dx;\r\n el.y = dy;\r\n }\r\n else {\r\n el.x += dx;\r\n el.y += dy;\r\n }\r\n el.markRedraw();\r\n }\r\n function sizeCalculable(option, hvIdx) {\r\n return option[HV_NAMES[hvIdx][0]] != null\r\n || (option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null);\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#ffbf25',\r\n '#ef6868',\r\n '#ffa086',\r\n '#b25790',\r\n '#fe719b',\r\n '#59d9d2',\r\n '#46a9ee'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var inner$1 = makeInner();\r\n function getNearestColorPalette(colors, requestColorNum) {\r\n var paletteNum = colors.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (colors[i].length > requestColorNum) {\r\n return colors[i];\r\n }\r\n }\r\n return colors[paletteNum - 1];\r\n }\r\n var ColorPaletteMixin = (function () {\r\n function ColorPaletteMixin() {\r\n }\r\n ColorPaletteMixin.prototype.clearColorPalette = function () {\r\n inner$1(this).colorIdx = 0;\r\n inner$1(this).colorNameMap = {};\r\n };\r\n ColorPaletteMixin.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n scope = scope || this;\r\n var scopeFields = inner$1(scope);\r\n var colorIdx = scopeFields.colorIdx || 0;\r\n var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {};\r\n if (colorNameMap.hasOwnProperty(name)) {\r\n return colorNameMap[name];\r\n }\r\n var defaultColorPalette = normalizeToArray(this.get('color', true));\r\n var layeredColorPalette = this.get('colorLayer', true);\r\n var colorPalette = ((requestColorNum == null || !layeredColorPalette)\r\n ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum));\r\n colorPalette = colorPalette || defaultColorPalette;\r\n if (!colorPalette || !colorPalette.length) {\r\n return;\r\n }\r\n var color = colorPalette[colorIdx];\r\n if (name) {\r\n colorNameMap[name] = color;\r\n }\r\n scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\r\n return color;\r\n };\r\n return ColorPaletteMixin;\r\n }());\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var Source = (function () {\r\n function Source(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectCount = fields.dimensionsDetectCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n Source.seriesDataToSource = function (data) {\r\n return new Source({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n };\r\n return Source;\r\n }());\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var dimInfo = determineSourceDimensions(sourceData, sourceFormat, thisMetaRawOption.seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new Source({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: thisMetaRawOption.seriesLayoutBy,\r\n dimensionsDefine: dimInfo.dimensionsDefine,\r\n startIndex: dimInfo.startIndex,\r\n dimensionsDetectCount: dimInfo.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function inheritSourceMetaRawOption(opt) {\r\n return defaults(opt.thisNew, opt.parent);\r\n }\r\n function cloneSourceShallow(source) {\r\n return new Source({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectCount: source.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (item, index) {\r\n item = extend({}, isObject(item) ? item : { name: item });\r\n if (item.name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function registerInternalOptionCreator(mainType, creator) {\r\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\r\n internalOptionCreatorMap.set(mainType, creator);\r\n }\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeReplaceMergeInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeReplaceMergeInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (!newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.name === name; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n componentTypes.push(componentType);\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seiresIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap(idOrName);\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n validateIdOrName(idOrNameItem);\r\n keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n validateIdOrName(idOrName);\r\n return filter(cmpts, function (cmpt) { return cmpt && cmpt[attr] === idOrName + ''; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeReplaceMergeInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, ColorPaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getModel',\r\n 'getOption',\r\n 'getViewOfComponentModel',\r\n 'getViewOfSeriesModel',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var timelineOptions = [];\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var timelineOpt = rawOption.timeline;\r\n if (rawOption.baseOption) {\r\n baseOption = rawOption.baseOption;\r\n }\r\n if (timelineOpt || rawOption.options) {\r\n baseOption = baseOption || {};\r\n timelineOptions = (rawOption.options || []).slice();\r\n }\r\n if (rawOption.media) {\r\n baseOption = baseOption || {};\r\n var media = rawOption.media;\r\n each(media, function (singleMedia) {\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n if (!baseOption) {\r\n baseOption = rawOption;\r\n }\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOpt;\r\n }\r\n each([baseOption].concat(timelineOptions)\r\n .concat(map(mediaList, function (media) {\r\n return media.option;\r\n })), function (option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n });\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptions,\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function compatStyle (option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set$1(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function backwardCompat (option, isTheme) {\r\n compatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set$1(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack (ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !(sourceParam instanceof Source)\r\n ? Source.seriesDataToSource(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var offset = this._dimSize * idx;\r\n for (var i = 0; i < this._dimSize; i++) {\r\n out[i] = this._data[offset + i];\r\n }\r\n return out;\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var col = rawData[dimsDef[i].name];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfoAll = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawHeaderItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveItemValue = function (rawItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertDataValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(data, sourceFormat, dimsDef, sourceHeaderCount) {\r\n var extSource = new ExternalSource();\r\n extSource.data = data;\r\n extSource.sourceFormat = sourceFormat;\r\n extSource.sourceHeaderCount = sourceHeaderCount;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n assert(!hasOwn(dimsByName, name), 'dimension name \"' + name + '\" duplicated.');\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.getRawDataItem = bind(rawItemGetter, null, data, sourceHeaderCount, dimensions);\r\n extSource.getRawHeaderItem = function (dataIndex) {\r\n if (dataIndex < sourceHeaderCount) {\r\n return rawItemGetter(data, 0, dimensions, dataIndex);\r\n }\r\n };\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveItemValue = function (rawItem, dimIndex) {\r\n if (rawItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(rawItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.getDimensionInfoAll = bind(getDimensionInfoAll, null, dimensions);\r\n return extSource;\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function getDimensionInfoAll(dimensions) {\r\n return dimensions;\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n assert(type, 'Must have a `type` when `registerTransform`.');\r\n var typeParsed = type.split(':');\r\n assert(typeParsed.length === 2, 'Name must include namespace like \"ns:regression\".');\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n }\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n for (var i = 0, len = pipedTransOption.length; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n var isFinal = i === len - 1;\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, isFinal);\r\n if (!isFinal) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(rawTransOption, upSourceList, infoForPrint, isFinal) {\r\n assert(upSourceList.length, 'Must have at least one upstream dataset.');\r\n var transOption = rawTransOption;\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n assert(externalTransform, 'Can not find transform on type \"' + transType + '\".');\r\n var sourceList = map(upSourceList, function (source) {\r\n return createExternalSource(source.data, source.sourceFormat, source.dimensionsDefine, source.startIndex);\r\n });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n source: sourceList[0],\r\n sourceList: sourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (isFinal && transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n return [\r\n '--- datasetIndex: ' + infoForPrint.datasetIndex + '---',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions),\r\n '- transform result sourceHeader: ' + extSource.sourceHeader,\r\n '------'\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n assert(isObject(result), 'A transform should not return some empty results.');\r\n assert(isObject(result.data) || isArrayLike(result.data), 'Result data should be object or array in data transform.');\r\n var resultMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSourceList[0].metaRawOption,\r\n thisNew: {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: result.sourceHeader,\r\n dimensions: result.dimensions\r\n }\r\n });\r\n return createSource(result.data, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSource ? upSource.metaRawOption : null,\r\n thisNew: this._createSourceMetaRawOption()\r\n });\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._createSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n var sourceList;\r\n var upstreamSignList;\r\n if (transformOption) {\r\n var upSourceList_1 = [];\r\n upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n upSourceList_1.push(upMgr.getSource());\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n sourceList = applyDataTransform(transformOption, upSourceList_1, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n if (upMgrList.length !== 1) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n var upMgr = upMgrList[0];\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult);\r\n upstreamSignList = [upMgr._getVersionSign()];\r\n sourceList = [cloneSourceShallow(upSource)];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._createSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var inner$2 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$2(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$2(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$2(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$2(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$2(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$2(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var series = this;\r\n renderMode = renderMode || 'html';\r\n var newLine = renderMode === 'html' ? '' : '\\n';\r\n var isRichText = renderMode === 'richText';\r\n var markers = {};\r\n var markerId = 0;\r\n function formatArrayValue(value) {\r\n var vertially = reduce(value, function (vertially, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return vertially |= (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, 0);\r\n var result = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n var dimType = dimInfo.type;\r\n var markName = 'sub' + series.seriesIndex + 'at' + markerId;\r\n var dimHead = getTooltipMarker({\r\n color: colorStr,\r\n type: 'subItem',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content;\r\n var valStr = (vertially\r\n ? ''\r\n + dimHeadStr + encodeHTML(dimInfo.displayName || '-')\r\n + ''\r\n : '')\r\n + ''\r\n + encodeHTML(dimType === 'ordinal'\r\n ? val + ''\r\n : dimType === 'time'\r\n ? (multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val))\r\n : addCommas(val))\r\n + '';\r\n valStr && result.push(\"
\" + valStr + \"
\");\r\n if (isRichText) {\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n }\r\n }\r\n var newLine = vertially ? (isRichText ? '\\n' : '') : '';\r\n var content = newLine + result.join(newLine || '');\r\n return {\r\n renderMode: renderMode,\r\n content: content,\r\n style: markers\r\n };\r\n }\r\n function formatSingleValue(val) {\r\n return {\r\n renderMode: renderMode,\r\n content: encodeHTML(addCommas(val)),\r\n style: markers\r\n };\r\n }\r\n var data = this.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = this.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style[this.visualDrawType];\r\n var colorStr;\r\n if (isString(color)) {\r\n colorStr = color;\r\n }\r\n else if (color && color.colorStops) {\r\n colorStr = (color.colorStops[0] || {}).color;\r\n }\r\n colorStr = colorStr || 'transparent';\r\n var formattedValue = (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? formatArrayValue(value)\r\n : tooltipDimLen\r\n ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0]))\r\n : formatSingleValue(isValueArr ? value[0] : value);\r\n var content = isRichText\r\n ? formattedValue.content\r\n : (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? '
'\r\n + formattedValue.content + '
'\r\n : ''\r\n + formattedValue.content + '';\r\n var markName = series.seriesIndex + 'at' + markerId;\r\n var colorEl = getTooltipMarker({\r\n color: colorStr,\r\n type: 'item',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n var name = data.getName(dataIndex);\r\n var seriesName = this.name;\r\n if (!isNameSpecified(this)) {\r\n seriesName = '';\r\n }\r\n seriesName = seriesName\r\n ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ' ')\r\n : '';\r\n colorStr = isString(colorEl) ? colorEl : colorEl.content;\r\n var html = '';\r\n if (!isRichText) {\r\n seriesName = seriesName\r\n ? !multipleSeries\r\n ? \"
\" + seriesName + \"
\"\r\n : \"\" + seriesName + \"\"\r\n : '';\r\n html = !multipleSeries\r\n ? seriesName + (\"
\")\r\n + colorStr\r\n + (name\r\n ? \"\" + encodeHTML(name) + \"\" + content\r\n : content) + '
'\r\n : \"
\" + colorStr + seriesName + content + \"
\";\r\n }\r\n else {\r\n html = !multipleSeries\r\n ? seriesName + (seriesName ? '\\n' : '') + ''\r\n + colorStr\r\n + (name\r\n ? encodeHTML(name) + \": \" + content\r\n : content) + ''\r\n : \"\" + colorStr + seriesName + \": \" + content;\r\n }\r\n return { html: html, markers: markers };\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = ColorPaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, ColorPaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(data.CHANGABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataSelfChange, seriesModel));\r\n });\r\n }\r\n function onDataSelfChange(seriesModel) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd(this.count());\r\n }\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner () {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = fields.large;\r\n var originalProgressive = fields.progressiveRender;\r\n var large = fields.large = pipelineContext && pipelineContext.large;\r\n var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;\r\n return (!!((originalLarge ^ large) || (originalProgressive ^ progressive)) && 'reset');\r\n };\r\n }\n\n var inner$3 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$3(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$3(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n var ORIGIN_METHOD = '\\0__throttleOriginMethod';\r\n var RATE = '\\0__throttleRate';\r\n var THROTTLE_TYPE = '\\0__throttleType';\r\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\r\n function createOrUpdate(obj, fnAttr, rate, throttleType) {\r\n var fn = obj[fnAttr];\r\n if (!fn) {\r\n return;\r\n }\r\n var originFn = fn[ORIGIN_METHOD] || fn;\r\n var lastThrottleType = fn[THROTTLE_TYPE];\r\n var lastRate = fn[RATE];\r\n if (lastRate !== rate || lastThrottleType !== throttleType) {\r\n if (rate == null || !throttleType) {\r\n return (obj[fnAttr] = originFn);\r\n }\r\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\r\n fn[ORIGIN_METHOD] = originFn;\r\n fn[THROTTLE_TYPE] = throttleType;\r\n fn[RATE] = rate;\r\n }\r\n return fn;\r\n }\r\n function clear(obj, fnAttr) {\r\n var fn = obj[fnAttr];\r\n if (fn && fn[ORIGIN_METHOD]) {\r\n obj[fnAttr] = fn[ORIGIN_METHOD];\r\n }\r\n }\n\n var inner$4 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$4(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$4(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || (rawIdx + ''), colorScope, dataAll.count());\r\n }\r\n });\r\n });\r\n }\r\n };\n\n function aria (dom, ecModel) {\r\n var ariaModel = ecModel.getModel('aria');\r\n if (!ariaModel.get('show')) {\r\n return;\r\n }\r\n else if (ariaModel.get('description')) {\r\n dom.setAttribute('aria-label', ariaModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = 0;\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n ++seriesCnt;\r\n }, this);\r\n var maxDataCnt = ariaModel.get('data.maxCount') || 10;\r\n var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n ariaLabel = replace(getConfig('general.withTitle'), {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = getConfig('general.withoutTitle');\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? 'series.multiple.prefix'\r\n : 'series.single.prefix';\r\n ariaLabel += replace(getConfig(prefix), { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var seriesTpl = 'series.'\r\n + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\r\n seriesLabel = getConfig(seriesName\r\n ? seriesTpl + 'withName'\r\n : seriesTpl + 'withoutName');\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n window.data = data;\r\n if (data.count() > maxDataCnt) {\r\n seriesLabel += replace(getConfig('data.partialData'), {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += getConfig('data.allData');\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n dataLabels.push(replace(name_1\r\n ? getConfig('data.withName')\r\n : getConfig('data.withoutName'), {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n seriesLabel += dataLabels\r\n .join(getConfig('data.separator.middle'))\r\n + getConfig('data.separator.end');\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n ariaLabel += seriesLabels_1\r\n .join(getConfig('series.multiple.separator.middle'))\r\n + getConfig('series.multiple.separator.end');\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getConfig(path) {\r\n var userConfig = ariaModel.get(path);\r\n if (userConfig == null) {\r\n var pathArr = path.split('.');\r\n var result = ecModel.getLocale('aria');\r\n for (var i = 0; i < pathArr.length; ++i) {\r\n result = result[pathArr[i]];\r\n }\r\n return result;\r\n }\r\n else {\r\n return userConfig;\r\n }\r\n }\r\n function getTitle() {\r\n var title = ecModel.getModel('title').option;\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocale(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n var PI$4 = Math.PI;\r\n function loadingDefault (api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#c23531',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$4 / 2,\r\n endAngle: -PI$4 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$4 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$4 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.ecInstance.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap\r\n || (stageHandlerRecord.seriesTaskMap = createHashMap());\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = seriesTaskMap.get(pipelineId)\r\n || seriesTaskMap.set(pipelineId, createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n task.dispose();\r\n seriesTaskMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap\r\n || createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = agentStubMap.get(pipelineId);\r\n if (!stub) {\r\n stub = agentStubMap.set(pipelineId, createTask({ reset: stubReset, onDirty: stubOnDirty }));\r\n overallTask.dirty();\r\n }\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n agentStubMap.each(function (stub, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n stub.dispose();\r\n overallTask.dirty();\r\n agentStubMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#eee';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n axisTick: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n axisLabel: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n type: 'dashed',\r\n color: '#aaa'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53',\r\n '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: '#333',\r\n tooltip: {\r\n axisPointer: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n crossStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n color: '#000'\r\n }\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n normal: {\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n dataZoom: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n itemStyle: {\r\n normal: {\r\n color: colorPalette[1]\r\n }\r\n },\r\n label: {\r\n normal: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n controlStyle: {\r\n normal: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function setItemVisualFromData(data, dataIndex, key, value) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n style[data.getVisual('drawType')] = value;\r\n data.setItemVisual(dataIndex, 'colorFromPalette', false);\r\n break;\r\n case 'opacity':\r\n data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\r\n break;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n data.setItemVisual(dataIndex, key, value);\r\n break;\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\n\n var PI2$5 = Math.PI * 2;\r\n var CMD$3 = PathProxy.CMD;\r\n var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\r\n function getCandidateAnchor(pos, distance, rect, outPt, outDir) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n switch (pos) {\r\n case 'top':\r\n outPt.set(rect.x + width / 2, rect.y - distance);\r\n outDir.set(0, -1);\r\n break;\r\n case 'bottom':\r\n outPt.set(rect.x + width / 2, rect.y + height + distance);\r\n outDir.set(0, 1);\r\n break;\r\n case 'left':\r\n outPt.set(rect.x - distance, rect.y + height / 2);\r\n outDir.set(-1, 0);\r\n break;\r\n case 'right':\r\n outPt.set(rect.x + width + distance, rect.y + height / 2);\r\n outDir.set(1, 0);\r\n break;\r\n }\r\n }\r\n function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n x /= d;\r\n y /= d;\r\n var ox = x * r + cx;\r\n var oy = y * r + cy;\r\n if (Math.abs(startAngle - endAngle) % PI2$5 < 1e-4) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$5;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$5;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$5 >= startAngle && angle + PI2$5 <= endAngle)) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n var x1 = r * Math.cos(startAngle) + cx;\r\n var y1 = r * Math.sin(startAngle) + cy;\r\n var x2 = r * Math.cos(endAngle) + cx;\r\n var y2 = r * Math.sin(endAngle) + cy;\r\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\r\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\r\n if (d1 < d2) {\r\n out[0] = x1;\r\n out[1] = y1;\r\n return Math.sqrt(d1);\r\n }\r\n else {\r\n out[0] = x2;\r\n out[1] = y2;\r\n return Math.sqrt(d2);\r\n }\r\n }\r\n function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\r\n var dx = x - x1;\r\n var dy = y - y1;\r\n var dx1 = x2 - x1;\r\n var dy1 = y2 - y1;\r\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n dx1 /= lineLen;\r\n dy1 /= lineLen;\r\n var projectedLen = dx * dx1 + dy * dy1;\r\n var t = projectedLen / lineLen;\r\n if (limitToEnds) {\r\n t = Math.min(Math.max(t, 0), 1);\r\n }\r\n t *= lineLen;\r\n var ox = out[0] = x1 + t * dx1;\r\n var oy = out[1] = y1 + t * dy1;\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n function projectPointToRect(x1, y1, width, height, x, y, out) {\r\n if (width < 0) {\r\n x1 = x1 + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y1 = y1 + height;\r\n height = -height;\r\n }\r\n var x2 = x1 + width;\r\n var y2 = y1 + height;\r\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\r\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n var tmpPt = [];\r\n function nearestPointOnRect(pt, rect, out) {\r\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\r\n out.set(tmpPt[0], tmpPt[1]);\r\n return dist;\r\n }\r\n function nearestPointOnPath(pt, path, out) {\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n var minDist = Infinity;\r\n var data = path.data;\r\n var x = pt.x;\r\n var y = pt.y;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var d = minDist;\r\n switch (cmd) {\r\n case CMD$3.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$3.L:\r\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.C:\r\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.Q:\r\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i <= 1) {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\r\n break;\r\n case CMD$3.Z:\r\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n if (d < minDist) {\r\n minDist = d;\r\n out.set(tmpPt[0], tmpPt[1]);\r\n }\r\n }\r\n return minDist;\r\n }\r\n var pt0 = new Point();\r\n var pt1 = new Point();\r\n var pt2 = new Point();\r\n var dir = new Point();\r\n var dir2 = new Point();\r\n function updateLabelLinePoints(target, labelLineModel) {\r\n if (!target) {\r\n return;\r\n }\r\n var labelLine = target.getTextGuideLine();\r\n var label = target.getTextContent();\r\n if (!(label && labelLine)) {\r\n return;\r\n }\r\n var labelGuideConfig = target.textGuideLineConfig || {};\r\n var points = [[0, 0], [0, 0], [0, 0]];\r\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\r\n var labelRect = label.getBoundingRect().clone();\r\n labelRect.applyTransform(label.getComputedTransform());\r\n var minDist = Infinity;\r\n var anchorPoint = labelGuideConfig && labelGuideConfig.anchor;\r\n var targetTransform = target.getComputedTransform();\r\n var targetInversedTransform = targetTransform && invert([], targetTransform);\r\n var len = labelLineModel.get('length2') || 0;\r\n if (anchorPoint) {\r\n pt2.copy(anchorPoint);\r\n }\r\n for (var i = 0; i < searchSpace.length; i++) {\r\n var candidate = searchSpace[i];\r\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\r\n Point.scaleAndAdd(pt1, pt0, dir, len);\r\n pt1.transform(targetInversedTransform);\r\n var boundingRect = target.getBoundingRect();\r\n var dist = anchorPoint ? anchorPoint.distance(pt1)\r\n : (target instanceof Path\r\n ? nearestPointOnPath(pt1, target.path, pt2)\r\n : nearestPointOnRect(pt1, boundingRect, pt2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n pt1.transform(targetTransform);\r\n pt2.transform(targetTransform);\r\n pt2.toArray(points[0]);\r\n pt1.toArray(points[1]);\r\n pt0.toArray(points[2]);\r\n }\r\n }\r\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\r\n labelLine.setShape({ points: points });\r\n }\r\n var tmpArr = [];\r\n var tmpProjPoint = new Point();\r\n function limitTurnAngle(linePoints, minTurnAngle) {\r\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\r\n return;\r\n }\r\n minTurnAngle = minTurnAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt0, pt1);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(dir2);\r\n var minTurnAngleCos = Math.cos(minTurnAngle);\r\n if (minTurnAngleCos < angleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\r\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\r\n return;\r\n }\r\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt1, pt0);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(surfaceNormal);\r\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\r\n if (angleCos < maxSurfaceAngleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n label.hide();\r\n labelLine && labelLine.hide();\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var labelAttr = labelItem.defaultAttr;\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelAttr.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n rect: labelRect,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null && !textEl.disableLabelLayout) {\r\n _this._addLabel(dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n var itemModel = data.getItemModel(labelItem.dataIndex);\r\n label.on('drag', createDragHandler(hostEl, itemModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shift-x';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shift-y';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel);\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n var ecModel = ecIns.getModel();\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n return ctx.createPattern(image, pattern.repeat || 'repeat');\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = style.width;\r\n var height = style.height;\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n }\r\n ctx.setLineDash(lineDash || []);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (el.invisible\r\n || el.style.opacity === 0\r\n || (el.culling && isDisplayableCulled(el, scope.viewWidth, scope.viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n el.__dirty = 0;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length - 1; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.__dirty = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n ctx.clearRect(0, 0, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(0, 0, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n var domBack = this.domBack;\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, 0, 0, width, height);\r\n ctx.restore();\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, paintAll, redrawId);\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, paintAll) {\r\n var layerList = [];\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n for (var k = 0; k < layerList.length; k++) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this._zlevelList[0]\r\n ? this._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i = void 0;\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n brush(ctx, el, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n ctx.restore();\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version$1 = '5.0.0-alpha.1';\r\n var dependencies = {\r\n zrender: '5.0.0-alpha.1'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var defaultRenderer = 'canvas';\r\n if (__DEV__) {\r\n defaultRenderer = (typeof window === 'undefined' ? global : window).__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && backwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances$1, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '' + item.dom + '';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n var ecData = el && getECData(el);\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n }\r\n else if (el && ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances$1[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap(normalizeToArray(excludeSeriesId));\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (payload.statusChanged) {\r\n markStatusToUpdate(this);\r\n }\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n function getDispatcher(target, det) {\r\n while (target && !det(target)) {\r\n if (target.__hostTarget) {\r\n target = target.__hostTarget;\r\n }\r\n else {\r\n target = target.parent;\r\n }\r\n }\r\n return target;\r\n }\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateZ(seriesModel, chartView);\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n aria(ecIns._zr.dom, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 1;\r\n }\r\n if (labelLine) {\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 - 1;\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances$1, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances$1 = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances$1[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose$1(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances$1[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances$1[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances$1[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerPreprocessor(backwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', loadingDefault);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n var i;\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (i = 0; i < oldArr.length; i++) {\r\n var key = oldDataKeyArr[i];\r\n var idx = newDataIndexMap[key];\r\n if (idx != null) {\r\n var len = idx.length;\r\n if (len) {\r\n len === 1 && (newDataIndexMap[key] = null);\r\n idx = idx.shift();\r\n }\r\n else {\r\n newDataIndexMap[key] = null;\r\n }\r\n this._update && this._update(idx, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n for (i = 0; i < newDataKeyArr.length; i++) {\r\n var key = newDataKeyArr[i];\r\n if (newDataIndexMap.hasOwnProperty(key)) {\r\n var idx = newDataIndexMap[key];\r\n if (idx == null) {\r\n continue;\r\n }\r\n if (!idx.length) {\r\n this._add && this._add(idx);\r\n }\r\n else {\r\n for (var j = 0, len = idx.length; j < len; j++) {\r\n this._add && this._add(idx[j]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n var existence = map[key];\r\n if (existence == null) {\r\n keyArr.push(key);\r\n map[key] = i;\r\n }\r\n else {\r\n if (!existence.length) {\r\n map[key] = existence = [existence];\r\n }\r\n existence.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var isObject$3 = isObject;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getRawValueFromStore;\r\n var getIndicesCtor;\r\n var prepareChunks;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var cloneDimStore;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._chunkSize = 1e5;\r\n this._chunkCount = 0;\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = data instanceof Source || isArrayLike(data);\r\n if (notProvider) {\r\n data = new DefaultDataProvider(data, this.dimensions.length);\r\n }\r\n if (__DEV__) {\r\n if (!notProvider\r\n && (typeof data.getItem !== 'function' || typeof data.count !== 'function')) {\r\n throw new Error('Inavlid data provider.');\r\n }\r\n }\r\n this._rawData = data;\r\n this._storage = {};\r\n this._indices = null;\r\n this._nameList = nameList || [];\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, data.count());\r\n if (data.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var chunkSize = this._chunkSize;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, this._dimensionInfos[dim], chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var emptyDataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, k);\r\n storage[dim][chunkIndex][chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var chunkSize = this._chunkSize;\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var nameRepeatCount = this._nameRepeatCount = {};\r\n var nameDimIdx;\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n var dimInfo = dimensionInfoMap[dim];\r\n if (dimInfo.otherDims.itemName === 0) {\r\n nameDimIdx = this._nameDimIdx = i;\r\n }\r\n if (dimInfo.otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, dimInfo, chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var dataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var dimStorage = storage[dim][chunkIndex];\r\n var val = this._dimValueGetter(dataItem, dim, idx, k);\r\n dimStorage[chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (!rawData.pure) {\r\n var name_1 = nameList[idx];\r\n if (dataItem && name_1 == null) {\r\n if (dataItem.name != null) {\r\n nameList[idx] = name_1 = dataItem.name;\r\n }\r\n else if (nameDimIdx != null) {\r\n var nameDim = dimensions[nameDimIdx];\r\n var nameDimChunk = storage[nameDim][chunkIndex];\r\n if (nameDimChunk) {\r\n name_1 = nameDimChunk[chunkOffset];\r\n var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n name_1 = ordinalMeta.categories[name_1];\r\n }\r\n }\r\n }\r\n }\r\n var id = dataItem == null ? null : dataItem.id;\r\n if (id == null && name_1 != null) {\r\n nameRepeatCount[name_1] = nameRepeatCount[name_1] || 0;\r\n id = name_1;\r\n if (nameRepeatCount[name_1] > 0) {\r\n id += '__ec__' + nameRepeatCount[name_1];\r\n }\r\n nameRepeatCount[name_1]++;\r\n }\r\n id != null && (idList[idx] = id);\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var storage = this._storage;\r\n if (!storage[dim]) {\r\n return NaN;\r\n }\r\n idx = this.getRawIndex(idx);\r\n var chunkIndex = Math.floor(idx / this._chunkSize);\r\n var chunkOffset = idx % this._chunkSize;\r\n var chunkStore = storage[dim][chunkIndex];\r\n var value = chunkStore[chunkOffset];\r\n return value;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n if (!dimStore) {\r\n return NaN;\r\n }\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = dimStore[chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype._getFast = function (dim, rawIdx) {\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = this._storage[dim][chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var value = this._getFast(dim, this.getRawIndex(i));\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var diff = value - this.get(dim, i);\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n return this._nameList[rawIndex]\r\n || getRawValueFromStore(this, this._nameDimIdx, rawIndex)\r\n || '';\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n for (var i = 0; i < this.count(); i++) {\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, this.get(dimNames[0], i), i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, this.get(dimNames[0], i), this.get(dimNames[1], i), i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = this.get(dimNames[k], i);\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dim0 = dimNames[0];\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = this._getFast(dim0, rawIdx);\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = this._getFast(dim0, rawIdx);\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n if (!this._count) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = this._storage[dimensions[0]];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = this._storage[dim0];\r\n var dimStorage2 = this._storage[dimensions[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var chunkStorage2 = dimStorage2[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n var val2 = chunkStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = this._getFast(dim0, rawIndex);\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = this._getFast(dimk, rawIndex);\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var storage = list._storage;\r\n var tmpRetValue = [];\r\n var chunkSize = this._chunkSize;\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[chunkIndex][chunkOffset] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = Math.floor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var chunkSize = this._chunkSize;\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n var originalChunkIndex = Math.floor(dataIdx / chunkSize);\r\n var originalChunkOffset = dataIdx % chunkSize;\r\n frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize);\r\n var sampleChunkOffset = sampleFrameIdx % chunkSize;\r\n dimStore[sampleChunkIndex][sampleChunkOffset] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (!val) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_2 in key) {\r\n if (key.hasOwnProperty(name_2)) {\r\n this.setLayout(name_2, key[name_2]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getRawValueFromStore = function (list, dimIndex, rawIndex) {\r\n var val;\r\n if (dimIndex != null) {\r\n var chunkSize = list._chunkSize;\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n var dim = list.dimensions[dimIndex];\r\n var chunk = list._storage[dim][chunkIndex];\r\n if (chunk) {\r\n val = chunk[chunkOffset];\r\n var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n }\r\n return val;\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareChunks = function (storage, dimInfo, chunkSize, chunkCount, end) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var lastChunkIndex = chunkCount - 1;\r\n var dim = dimInfo.name;\r\n var resizeChunkArray = storage[dim][lastChunkIndex];\r\n if (resizeChunkArray && resizeChunkArray.length < chunkSize) {\r\n var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize));\r\n for (var j = 0; j < resizeChunkArray.length; j++) {\r\n newStore[j] = resizeChunkArray[j];\r\n }\r\n storage[dim][lastChunkIndex] = newStore;\r\n }\r\n for (var k = chunkCount * chunkSize; k < end; k += chunkSize) {\r\n storage[dim].push(new DataCtor(Math.min(end - k, chunkSize)));\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null) {\r\n id = getRawValueFromStore(list, list._idDimIdx, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = [dimensions];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneDimStore(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n cloneDimStore = function (originalDimStore) {\r\n var newDimStore = new Array(originalDimStore.length);\r\n for (var j = 0; j < originalDimStore.length; j++) {\r\n newDimStore[j] = cloneChunk(originalDimStore[j]);\r\n }\r\n return newDimStore;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions (source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n result.firstCategoryDimIndex = index;\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta || isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({ categories: ordinalMeta });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function getLayoutOnAxis(opt) {\r\n var params = [];\r\n var baseAxis = opt.axis;\r\n var axisKey = 'axis0';\r\n if (baseAxis.type !== 'category') {\r\n return;\r\n }\r\n var bandWidth = baseAxis.getBandWidth();\r\n for (var i = 0; i < opt.count || 0; i++) {\r\n params.push(defaults({\r\n bandWidth: bandWidth,\r\n axisKey: axisKey,\r\n stackId: STACK_PREFIX + i\r\n }, opt));\r\n }\r\n var widthAndOffsets = doCalBarWidthAndOffset(params);\r\n var result = [];\r\n for (var i = 0; i < opt.count; i++) {\r\n var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\r\n item.offsetCenter = item.offset + item.width / 2;\r\n result.push(item);\r\n }\r\n return result;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC);\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\r\n var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n function createList(seriesModel) {\r\n return createListFromArray(seriesModel.getSource(), seriesModel);\r\n }\r\n var dataStack$1 = {\r\n isDimensionStacked: isDimensionStacked,\r\n enableDataStack: enableDataStack,\r\n getStackedDimension: getStackedDimension\r\n };\r\n function createScale(dataExtent, option) {\r\n var axisModel = option;\r\n if (!(option instanceof Model)) {\r\n axisModel = new Model(option);\r\n }\r\n var scale = createScaleByModel(axisModel);\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n niceScaleExtent(scale, axisModel);\r\n return scale;\r\n }\r\n function mixinAxisModelCommonMethods(Model) {\r\n mixin(Model, AxisModelCommonMixin);\r\n }\n\n var helper = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createList: createList,\n getLayoutRect: getLayoutRect,\n dataStack: dataStack$1,\n createScale: createScale,\n mixinAxisModelCommonMethods: mixinAxisModelCommonMethods,\n createDimensions: createDimensions,\n createSymbol: createSymbol\n });\n\n var EPSILON$3 = 1e-8;\r\n function isAroundEqual$1(a, b) {\r\n return Math.abs(a - b) < EPSILON$3;\r\n }\r\n function contain$2(points, x, y) {\r\n var w = 0;\r\n var p = points[0];\r\n if (!p) {\r\n return false;\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n var p2 = points[i];\r\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\r\n p = p2;\r\n }\r\n var p0 = points[0];\r\n if (!isAroundEqual$1(p[0], p0[0]) || !isAroundEqual$1(p[1], p0[1])) {\r\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\r\n }\r\n return w !== 0;\r\n }\n\n var Region = (function () {\r\n function Region(name, geometries, cp) {\r\n this.name = name;\r\n this.geometries = geometries;\r\n if (!cp) {\r\n var rect = this.getBoundingRect();\r\n cp = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n else {\r\n cp = [cp[0], cp[1]];\r\n }\r\n this.center = cp;\r\n }\r\n Region.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n if (rect) {\r\n return rect;\r\n }\r\n var MAX_NUMBER = Number.MAX_VALUE;\r\n var min$1 = [MAX_NUMBER, MAX_NUMBER];\r\n var max$1 = [-MAX_NUMBER, -MAX_NUMBER];\r\n var min2 = [];\r\n var max2 = [];\r\n var geometries = this.geometries;\r\n var i = 0;\r\n for (; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n fromPoints(exterior, min2, max2);\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return (this._rect = new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]));\r\n };\r\n Region.prototype.contain = function (coord) {\r\n var rect = this.getBoundingRect();\r\n var geometries = this.geometries;\r\n if (!rect.contain(coord[0], coord[1])) {\r\n return false;\r\n }\r\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n if (contain$2(exterior, coord[0], coord[1])) {\r\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\r\n if (contain$2(interiors[k], coord[0], coord[1])) {\r\n continue loopGeo;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Region.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var aspect = rect.width / rect.height;\r\n if (!width) {\r\n width = aspect * height;\r\n }\r\n else if (!height) {\r\n height = width / aspect;\r\n }\r\n var target = new BoundingRect(x, y, width, height);\r\n var transform = rect.calculateTransform(target);\r\n var geometries = this.geometries;\r\n for (var i = 0; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n for (var p = 0; p < exterior.length; p++) {\r\n applyTransform(exterior[p], exterior[p], transform);\r\n }\r\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\r\n for (var p = 0; p < interiors[h].length; p++) {\r\n applyTransform(interiors[h][p], interiors[h][p], transform);\r\n }\r\n }\r\n }\r\n rect = this._rect;\r\n rect.copy(target);\r\n this.center = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n };\r\n Region.prototype.cloneShallow = function (name) {\r\n name == null && (name = this.name);\r\n var newRegion = new Region(name, this.geometries, this.center);\r\n newRegion._rect = this._rect;\r\n newRegion.transformTo = null;\r\n return newRegion;\r\n };\r\n return Region;\r\n }());\n\n function decode(json) {\r\n if (!json.UTF8Encoding) {\r\n return json;\r\n }\r\n var jsonCompressed = json;\r\n var encodeScale = jsonCompressed.UTF8Scale;\r\n if (encodeScale == null) {\r\n encodeScale = 1024;\r\n }\r\n var features = jsonCompressed.features;\r\n for (var f = 0; f < features.length; f++) {\r\n var feature = features[f];\r\n var geometry = feature.geometry;\r\n if (geometry.type === 'Polygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\r\n }\r\n }\r\n else if (geometry.type === 'MultiPolygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n var coordinate = coordinates[c];\r\n for (var c2 = 0; c2 < coordinate.length; c2++) {\r\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\r\n }\r\n }\r\n }\r\n }\r\n jsonCompressed.UTF8Encoding = false;\r\n return jsonCompressed;\r\n }\r\n function decodePolygon(coordinate, encodeOffsets, encodeScale) {\r\n var result = [];\r\n var prevX = encodeOffsets[0];\r\n var prevY = encodeOffsets[1];\r\n for (var i = 0; i < coordinate.length; i += 2) {\r\n var x = coordinate.charCodeAt(i) - 64;\r\n var y = coordinate.charCodeAt(i + 1) - 64;\r\n x = (x >> 1) ^ (-(x & 1));\r\n y = (y >> 1) ^ (-(y & 1));\r\n x += prevX;\r\n y += prevY;\r\n prevX = x;\r\n prevY = y;\r\n result.push([x / encodeScale, y / encodeScale]);\r\n }\r\n return result;\r\n }\r\n function parseGeoJson (geoJson, nameProperty) {\r\n geoJson = decode(geoJson);\r\n return map(filter(geoJson.features, function (featureObj) {\r\n return featureObj.geometry\r\n && featureObj.properties\r\n && featureObj.geometry.coordinates.length > 0;\r\n }), function (featureObj) {\r\n var properties = featureObj.properties;\r\n var geo = featureObj.geometry;\r\n var geometries = [];\r\n if (geo.type === 'Polygon') {\r\n var coordinates = geo.coordinates;\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: coordinates[0],\r\n interiors: coordinates.slice(1)\r\n });\r\n }\r\n if (geo.type === 'MultiPolygon') {\r\n var coordinates = geo.coordinates;\r\n each(coordinates, function (item) {\r\n if (item[0]) {\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: item[0],\r\n interiors: item.slice(1)\r\n });\r\n }\r\n });\r\n }\r\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\r\n region.properties = properties;\r\n return region;\r\n });\r\n }\n\n var inner$5 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$5(axis)[prop] || (inner$5(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$5(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$5(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$5(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var parseGeoJson$1 = parseGeoJson;\r\n var ecUtil = {};\r\n each([\r\n 'map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter',\r\n 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction',\r\n 'extend', 'defaults', 'clone', 'merge'\r\n ], function (name) {\r\n ecUtil[name] = zrUtil[name];\r\n });\r\n var GRAPHIC_KEYS = [\r\n 'extendShape', 'extendPath', 'makePath', 'makeImage',\r\n 'mergePath', 'resizePath', 'createIcon',\r\n 'updateProps', 'initProps', 'getTransform',\r\n 'clipPointsByRect', 'clipRectByRect',\r\n 'registerShape', 'getShapeClass',\r\n 'Group',\r\n 'Image',\r\n 'Text',\r\n 'Circle',\r\n 'Ellipse',\r\n 'Sector',\r\n 'Ring',\r\n 'Polygon',\r\n 'Polyline',\r\n 'Rect',\r\n 'Line',\r\n 'BezierCurve',\r\n 'Arc',\r\n 'IncrementalDisplayable',\r\n 'CompoundPath',\r\n 'LinearGradient',\r\n 'RadialGradient',\r\n 'BoundingRect'\r\n ];\r\n var graphic$1 = {};\r\n each(GRAPHIC_KEYS, function (name) {\r\n graphic$1[name] = graphic[name];\r\n });\n\n var aliasToOpMap = createHashMap({\r\n value: 'eq',\r\n '<': 'lt',\r\n '<=': 'lte',\r\n '>': 'gt',\r\n '>=': 'gte',\r\n '=': 'eq',\r\n '!=': 'ne',\r\n '<>': 'ne'\r\n });\r\n var relationalOpEvaluateMap = createHashMap({\r\n lt: function (tarVal, condVal) {\r\n return tarVal < condVal;\r\n },\r\n lte: function (tarVal, condVal) {\r\n return tarVal <= condVal;\r\n },\r\n gt: function (tarVal, condVal) {\r\n return tarVal > condVal;\r\n },\r\n gte: function (tarVal, condVal) {\r\n return tarVal >= condVal;\r\n },\r\n eq: function (tarVal, condVal) {\r\n return tarVal === condVal;\r\n },\r\n ne: function (tarVal, condVal) {\r\n return tarVal !== condVal;\r\n },\r\n reg: function (tarVal, condVal) {\r\n var type = typeof tarVal;\r\n return type === 'string' ? condVal.test(tarVal)\r\n : type === 'number' ? condVal.test(tarVal + '')\r\n : false;\r\n }\r\n });\r\n function parseRegCond(condVal) {\r\n return isString(condVal) ? new RegExp(condVal)\r\n : isRegExp(condVal) ? condVal\r\n : null;\r\n }\r\n var valueParserMap = createHashMap({\r\n time: function (val) {\r\n return +parseDate(val);\r\n },\r\n trim: function (val) {\r\n return typeof val === 'string' ? trim(val) : val;\r\n }\r\n });\r\n var ConstConditionInternal = (function () {\r\n function ConstConditionInternal() {\r\n }\r\n ConstConditionInternal.prototype.evaluate = function () {\r\n return this.value;\r\n };\r\n return ConstConditionInternal;\r\n }());\r\n var AndConditionInternal = (function () {\r\n function AndConditionInternal() {\r\n }\r\n AndConditionInternal.prototype.evaluate = function () {\r\n var children = this.children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (!children[i].evaluate()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return AndConditionInternal;\r\n }());\r\n var OrConditionInternal = (function () {\r\n function OrConditionInternal() {\r\n }\r\n OrConditionInternal.prototype.evaluate = function () {\r\n var children = this.children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].evaluate()) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return OrConditionInternal;\r\n }());\r\n var NotConditionInternal = (function () {\r\n function NotConditionInternal() {\r\n }\r\n NotConditionInternal.prototype.evaluate = function () {\r\n return !this.child.evaluate();\r\n };\r\n return NotConditionInternal;\r\n }());\r\n var RelationalConditionInternal = (function () {\r\n function RelationalConditionInternal() {\r\n }\r\n RelationalConditionInternal.prototype.evaluate = function () {\r\n var getValue = this.getValue;\r\n var needParse = !!this.valueParser;\r\n var tarValRaw = getValue(this.valueGetterParam);\r\n var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\r\n for (var i = 0; i < this.subCondList.length; i++) {\r\n var subCond = this.subCondList[i];\r\n if (!subCond.evaluate(needParse ? tarValParsed : tarValRaw, subCond.condValue)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return RelationalConditionInternal;\r\n }());\r\n function parseOption(exprOption, getters) {\r\n if (exprOption === true || exprOption === false) {\r\n var cond = new ConstConditionInternal();\r\n cond.value = exprOption;\r\n return cond;\r\n }\r\n var errMsg = '';\r\n if (!isObjectNotArray(exprOption)) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n if (exprOption.and) {\r\n return parseAndOrOption('and', exprOption, getters);\r\n }\r\n else if (exprOption.or) {\r\n return parseAndOrOption('or', exprOption, getters);\r\n }\r\n else if (exprOption.not) {\r\n return parseNotOption(exprOption, getters);\r\n }\r\n return parseRelationalOption(exprOption, getters);\r\n }\r\n function parseAndOrOption(op, exprOption, getters) {\r\n var subOptionArr = exprOption[op];\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\r\n }\r\n if (!isArray(subOptionArr)) {\r\n throwError(errMsg);\r\n }\r\n if (!subOptionArr.length) {\r\n throwError(errMsg);\r\n }\r\n var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\r\n cond.children = map(subOptionArr, function (subOption) { return parseOption(subOption, getters); });\r\n if (!cond.children.length) {\r\n throwError(errMsg);\r\n }\r\n return cond;\r\n }\r\n function parseNotOption(exprOption, getters) {\r\n var subOption = exprOption.not;\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\r\n }\r\n if (!isObjectNotArray(subOption)) {\r\n throwError(errMsg);\r\n }\r\n var cond = new NotConditionInternal();\r\n cond.child = parseOption(subOption, getters);\r\n if (!cond.child) {\r\n throwError(errMsg);\r\n }\r\n return cond;\r\n }\r\n function parseRelationalOption(exprOption, getters) {\r\n var errMsg = '';\r\n var valueGetterParam = getters.prepareGetValue(exprOption);\r\n var subCondList = [];\r\n var exprKeys = keys(exprOption);\r\n var parserName = exprOption.parse;\r\n var valueParser = parserName ? valueParserMap.get(parserName) : null;\r\n for (var i = 0; i < exprKeys.length; i++) {\r\n var keyRaw = exprKeys[i];\r\n if (keyRaw === 'parse' || getters.valueGetterAttrMap.get(keyRaw)) {\r\n continue;\r\n }\r\n var op = aliasToOpMap.get(keyRaw)\r\n || keyRaw;\r\n var evaluateHandler = relationalOpEvaluateMap.get(op);\r\n if (!evaluateHandler) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n var condValueRaw = exprOption[keyRaw];\r\n var condValue = void 0;\r\n if (keyRaw === 'reg') {\r\n condValue = parseRegCond(condValueRaw);\r\n if (condValue == null) {\r\n var errMsg_1 = '';\r\n if (__DEV__) {\r\n errMsg_1 = makePrintable('Illegal regexp', condValueRaw, 'in', exprOption);\r\n }\r\n throwError(errMsg_1);\r\n }\r\n }\r\n else {\r\n condValue = valueParser ? valueParser(condValueRaw) : condValueRaw;\r\n }\r\n subCondList.push({\r\n condValue: condValue,\r\n evaluate: evaluateHandler\r\n });\r\n }\r\n if (!subCondList.length) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n var cond = new RelationalConditionInternal();\r\n cond.valueGetterParam = valueGetterParam;\r\n cond.valueParser = valueParser;\r\n cond.getValue = getters.getValue;\r\n cond.subCondList = subCondList;\r\n return cond;\r\n }\r\n function isObjectNotArray(val) {\r\n return isObject(val) && !isArrayLike(val);\r\n }\r\n var ConditionalExpressionParsed = (function () {\r\n function ConditionalExpressionParsed(exprOption, getters) {\r\n this._cond = parseOption(exprOption, getters);\r\n }\r\n ConditionalExpressionParsed.prototype.evaluate = function () {\r\n return this._cond.evaluate();\r\n };\r\n return ConditionalExpressionParsed;\r\n }());\r\n function parseConditionalExpression(exprOption, getters) {\r\n return new ConditionalExpressionParsed(exprOption, getters);\r\n }\n\n var filterTransform = {\r\n type: 'echarts:filter',\r\n transform: function transform(params) {\r\n var source = params.source;\r\n var rawItem;\r\n var condition = parseConditionalExpression(params.config, {\r\n valueGetterAttrMap: createHashMap({ dimension: true }),\r\n prepareGetValue: function (exprOption) {\r\n var errMsg = '';\r\n var dimLoose = exprOption.dimension;\r\n if (!hasOwn(exprOption, 'dimension')) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n var dimInfo = source.getDimensionInfo(dimLoose);\r\n if (!dimInfo) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Can not find dimension info via: \"' + dimLoose + '\".\\n', 'Existing dimensions: ', source.getDimensionInfoAll(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n return { dimIdx: dimInfo.index };\r\n },\r\n getValue: function (param) {\r\n return source.retrieveItemValue(rawItem, param.dimIdx);\r\n }\r\n });\r\n var sourceHeaderCount = source.sourceHeaderCount;\r\n var resultData = [];\r\n for (var i = 0; i < sourceHeaderCount; i++) {\r\n resultData.push(source.getRawHeaderItem(i));\r\n }\r\n for (var i = 0, len = source.count(); i < len; i++) {\r\n rawItem = source.getRawDataItem(i);\r\n if (condition.evaluate()) {\r\n resultData.push(rawItem);\r\n }\r\n }\r\n return {\r\n data: resultData\r\n };\r\n }\r\n };\n\n var SortOrderValidMap = { asc: true, desc: true };\r\n var sampleLog = '';\r\n if (__DEV__) {\r\n sampleLog = [\r\n 'Valid config is like:',\r\n '{ dimension: \"age\", order: \"asc\" }',\r\n 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'\r\n ].join('');\r\n }\r\n var timeParser = function (val) {\r\n return +parseDate(val);\r\n };\r\n var sortTransform = {\r\n type: 'echarts:sort',\r\n transform: function transform(params) {\r\n var source = params.source;\r\n var config = params.config;\r\n var errMsg = '';\r\n var orderExprList = normalizeToArray(config);\r\n if (!orderExprList.length) {\r\n if (__DEV__) {\r\n errMsg = 'Empty `config` in sort transform.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var orderDefList = [];\r\n each(orderExprList, function (orderExpr) {\r\n var dimLoose = orderExpr.dimension;\r\n var order = orderExpr.order;\r\n var parserName = orderExpr.parse;\r\n if (dimLoose == null) {\r\n if (__DEV__) {\r\n errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\r\n }\r\n throwError(errMsg);\r\n }\r\n if (!hasOwn(SortOrderValidMap, order)) {\r\n if (__DEV__) {\r\n errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\r\n }\r\n throwError(errMsg);\r\n }\r\n var dimInfo = source.getDimensionInfo(dimLoose);\r\n if (!dimInfo) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Can not find dimension info via: \"' + dimLoose + '\".\\n', 'Existing dimensions: ', source.getDimensionInfoAll(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n var parser;\r\n if (parserName) {\r\n if (parserName !== 'time') {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Invalid parser name' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n parser = timeParser;\r\n }\r\n orderDefList.push({\r\n dimIdx: dimInfo.index,\r\n orderReturn: order === 'asc' ? -1 : 1,\r\n parser: parser\r\n });\r\n });\r\n if (!isArray(source.data)) {\r\n if (__DEV__) {\r\n errMsg = source.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS\r\n ? 'sourceFormat ' + SOURCE_FORMAT_KEYED_COLUMNS + ' is not supported yet'\r\n : source.data == null\r\n ? 'Upstream source data is null/undefined'\r\n : 'Unsupported source format.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var sourceHeaderCount = source.sourceHeaderCount;\r\n var resultData = [];\r\n var headerPlaceholder = {};\r\n for (var i = 0; i < sourceHeaderCount; i++) {\r\n resultData.push(headerPlaceholder);\r\n }\r\n for (var i = 0, len = source.count(); i < len; i++) {\r\n resultData.push(source.getRawDataItem(i));\r\n }\r\n resultData.sort(function (item0, item1) {\r\n if (item0 === headerPlaceholder) {\r\n return -1;\r\n }\r\n if (item1 === headerPlaceholder) {\r\n return 1;\r\n }\r\n if (item0 == null) {\r\n return 1;\r\n }\r\n if (item1 == null) {\r\n return -1;\r\n }\r\n for (var i = 0; i < orderDefList.length; i++) {\r\n var orderDef = orderDefList[i];\r\n var val0 = source.retrieveItemValue(item0, orderDef.dimIdx);\r\n var val1 = source.retrieveItemValue(item1, orderDef.dimIdx);\r\n if (orderDef.parser) {\r\n val0 = orderDef.parser(val0);\r\n val1 = orderDef.parser(val1);\r\n }\r\n if (val0 < val1) {\r\n return orderDef.orderReturn;\r\n }\r\n else if (val0 > val1) {\r\n return -orderDef.orderReturn;\r\n }\r\n }\r\n return 0;\r\n });\r\n for (var i = 0; i < sourceHeaderCount; i++) {\r\n resultData[i] = source.getRawHeaderItem(i);\r\n }\r\n return {\r\n data: resultData\r\n };\r\n }\r\n };\n\n registerTransform(filterTransform);\r\n registerTransform(sortTransform);\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n function getDefaultLabel(data, dataIndex, interpolatedValues) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[0])\r\n : interpolatedValues;\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var val = interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[i])\r\n : interpolatedValues;\r\n vals.push(val);\r\n }\r\n return vals.join(' ');\r\n }\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n updateProps(symbolPath, {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n }, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n symbolPath.ensureState('emphasis').style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n this.ensureState('emphasis');\r\n this.setSymbolScale(1);\r\n }\r\n else {\r\n this.states.emphasis = null;\r\n }\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n var emphasisState = this.states.emphasis;\r\n if (emphasisState) {\r\n var hoverScale = Math.max(scale * 1.1, 3 / this._sizeY + scale);\r\n emphasisState.scaleX = hoverScale;\r\n emphasisState.scaleY = hoverScale;\r\n }\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n this.silent = symbolPath.silent = true;\r\n !(opt && opt.keepLabel) && (symbolPath.removeTextContent());\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, this._seriesModel, getECData(this).dataIndex, cb);\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var seriesScope = makeSeriesScope(data);\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = data.getItemLayout(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = data.getItemLayout(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope);\r\n updateProps(symbolEl, {\r\n x: point[0],\r\n y: point[1]\r\n }, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = data.getItemLayout(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff (oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n var currentPt = oldData.getItemLayout(diffItem.idx);\r\n var nextPt = newData.getItemLayout(diffItem.idx1);\r\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\r\n currentPt = nextPt.slice();\r\n }\r\n currPoints.push(currentPt);\r\n nextPoints.push(nextPt);\r\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\r\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var idxAdd = diffItem.idx;\r\n currPoints.push(oldCoordSys.dataToPoint([\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idxAdd),\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idxAdd)\r\n ]));\r\n nextPoints.push(newData.getItemLayout(idxAdd).slice());\r\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idxAdd));\r\n nextStackedPoints.push(newStackedOnPoints[idxAdd]);\r\n rawIndices.push(newData.getRawIndex(idxAdd));\r\n break;\r\n case '-':\r\n var idxMinus = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(idxMinus);\r\n if (rawIndex !== idxMinus) {\r\n currPoints.push(oldData.getItemLayout(idxMinus));\r\n nextPoints.push(newCoordSys.dataToPoint([\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idxMinus),\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idxMinus)\r\n ]));\r\n currStackedPoints.push(oldStackedOnPoints[idxMinus]);\r\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idxMinus));\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var sortedCurrPoints = [];\r\n var sortedNextPoints = [];\r\n var sortedCurrStackedPoints = [];\r\n var sortedNextStackedPoints = [];\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n sortedCurrPoints[i] = currPoints[idx];\r\n sortedNextPoints[i] = nextPoints[idx];\r\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\r\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var vec2Min = min;\r\n var vec2Max = max;\r\n var scaleAndAdd$1 = scaleAndAdd;\r\n var v2Copy = copy;\r\n var v = [];\r\n var cp0 = [];\r\n var cp1 = [];\r\n function isPointNull(p) {\r\n return isNaN(p[0]) || isNaN(p[1]);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n return ((smoothMonotone === 'none' || !smoothMonotone) ? drawNonMono : drawMono)(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls);\r\n }\r\n function drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var prevP = points[prevIdx];\r\n var dim = smoothMonotone === 'y' ? 1 : 0;\r\n var ctrlLen = (p[dim] - prevP[dim]) * smooth;\r\n v2Copy(cp0, prevP);\r\n cp0[dim] = prevP[dim] + ctrlLen;\r\n v2Copy(cp1, p);\r\n cp1[dim] = p[dim] - ctrlLen;\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n v2Copy(cp0, p);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextP = points[nextIdx];\r\n if (connectNulls) {\r\n while (nextP && isPointNull(points[nextIdx])) {\r\n nextIdx += dir;\r\n nextP = points[nextIdx];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var prevP = points[prevIdx];\r\n nextP = points[nextIdx];\r\n if (!nextP || isPointNull(nextP)) {\r\n v2Copy(cp1, p);\r\n }\r\n else {\r\n if (isPointNull(nextP) && !connectNulls) {\r\n nextP = p;\r\n }\r\n sub(v, nextP, prevP);\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x' || smoothMonotone === 'y') {\r\n var dim = smoothMonotone === 'x' ? 0 : 1;\r\n lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\r\n lenNextSeg = Math.abs(p[dim] - nextP[dim]);\r\n }\r\n else {\r\n lenPrevSeg = dist(p, prevP);\r\n lenNextSeg = dist(p, nextP);\r\n }\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n scaleAndAdd$1(cp1, p, v, -smooth * (1 - ratioNextSeg));\r\n }\r\n vec2Min(cp0, cp0, smoothMax);\r\n vec2Max(cp0, cp0, smoothMin);\r\n vec2Min(cp1, cp1, smoothMax);\r\n vec2Max(cp1, cp1, smoothMin);\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n scaleAndAdd$1(cp0, p, v, smooth * ratioNextSeg);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function getBoundingBox(points, smoothConstraint) {\r\n var ptMin = [Infinity, Infinity];\r\n var ptMax = [-Infinity, -Infinity];\r\n if (smoothConstraint) {\r\n for (var i = 0; i < points.length; i++) {\r\n var pt = points[i];\r\n if (pt[0] < ptMin[0]) {\r\n ptMin[0] = pt[0];\r\n }\r\n if (pt[1] < ptMin[1]) {\r\n ptMin[1] = pt[1];\r\n }\r\n if (pt[0] > ptMax[0]) {\r\n ptMax[0] = pt[0];\r\n }\r\n if (pt[1] > ptMax[1]) {\r\n ptMax[1] = pt[1];\r\n }\r\n }\r\n }\r\n return {\r\n min: smoothConstraint ? ptMin : ptMax,\r\n max: smoothConstraint ? ptMax : ptMin\r\n };\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n this.connectNulls = false;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length;\r\n var result = getBoundingBox(points, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length;\r\n var smoothMonotone = shape.smoothMonotone;\r\n var bbox = getBoundingBox(points, shape.smoothConstraint);\r\n var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel) {\r\n var rect = cartesian.getArea();\r\n var isHorizontal = cartesian.getBaseAxis().isHorizontal();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: round$1(sectorArea.r0, 1),\r\n r: round$1(sectorArea.r, 1),\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n return null;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n var p1 = points1[i];\r\n var p2 = points2[i];\r\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var min1 = [];\r\n var max1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n fromPoints(points1, min1, max1);\r\n fromPoints(points2, min2, max2);\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var points = [];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n for (; i < points.length - 1; i++) {\r\n var nextPt = points[i + 1];\r\n var pt = points[i];\r\n stepPoints.push(pt);\r\n var stepPt = [];\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n stepPoints.push(stepPt2);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n }\r\n }\r\n points[i] && stepPoints.push(points[i]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function createLineClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.mapArray(data.getItemLayout);\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n data.eachItemGraphicEl(function (el) {\r\n el && el.stopAnimation(null, true);\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n var shouldBolderOnEmphasis = seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder';\r\n if (shouldBolderOnEmphasis) {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel'\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var pt = data.getItemLayout(dataIndex);\r\n if (!pt) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.setPosition(pt);\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._updateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n polyline.stopAnimation();\r\n updateProps(polyline, {\r\n shape: {\r\n points: next\r\n }\r\n }, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n el.setPosition(polyline.shape.__points[updatedDataInfo[i].ptIdx]);\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function layoutPoints (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeRender = pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = isLargeRender && new Float32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.get(dims[0], i);\r\n point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n var x = tmpIn[0] = data.get(dims[0], i);\r\n var y = tmpIn[1] = data.get(dims[1], i);\r\n point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (isLargeRender) {\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n else {\r\n data.setItemLayout(i, (point && point.slice()) || [NaN, NaN]);\r\n }\r\n }\r\n isLargeRender && data.setLayout('symbolPoints', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var size = extent[1] - extent[0];\r\n var rate = Math.round(data.count() / size);\r\n if (rate > 1) {\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator (axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n sort: false,\r\n realtimeSort: false,\r\n sortSeriesIndex: null,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var PI$5 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$5) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$5 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$5 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$5 * 1.5 && rotationDiff > PI$5 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul$1([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul$1([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$5 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function collect(ecModel, api) {\r\n var result = {\r\n axesInfo: {},\r\n seriesInvolved: false,\r\n coordSysAxesInfo: {},\r\n coordSysMap: {}\r\n };\r\n collectAxesInfo(result, ecModel, api);\r\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\r\n return result;\r\n }\r\n function collectAxesInfo(result, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\r\n var linksOption = globalAxisPointerModel.get('link', true) || [];\r\n var linkGroups = [];\r\n each(api.getCoordinateSystems(), function (coordSys) {\r\n if (!coordSys.axisPointerEnabled) {\r\n return;\r\n }\r\n var coordSysKey = makeKey(coordSys.model);\r\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\r\n result.coordSysMap[coordSysKey] = coordSys;\r\n var coordSysModel = coordSys.model;\r\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\r\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\r\n if (coordSys.getTooltipAxes\r\n && globalTooltipModel\r\n && baseTooltipModel.get('show')) {\r\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\r\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\r\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\r\n if (triggerAxis || cross) {\r\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\r\n }\r\n if (cross) {\r\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\r\n }\r\n }\r\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\r\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\r\n var axisPointerShow = axisPointerModel.get('show');\r\n if (!axisPointerShow || (axisPointerShow === 'auto'\r\n && !fromTooltip\r\n && !isHandleTrigger(axisPointerModel))) {\r\n return;\r\n }\r\n if (triggerTooltip == null) {\r\n triggerTooltip = axisPointerModel.get('triggerTooltip');\r\n }\r\n axisPointerModel = fromTooltip\r\n ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip)\r\n : axisPointerModel;\r\n var snap = axisPointerModel.get('snap');\r\n var axisKey = makeKey(axis.model);\r\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\r\n var axisInfo = result.axesInfo[axisKey] = {\r\n key: axisKey,\r\n axis: axis,\r\n coordSys: coordSys,\r\n axisPointerModel: axisPointerModel,\r\n triggerTooltip: triggerTooltip,\r\n involveSeries: involveSeries,\r\n snap: snap,\r\n useHandle: isHandleTrigger(axisPointerModel),\r\n seriesModels: [],\r\n linkGroup: null\r\n };\r\n axesInfoInCoordSys[axisKey] = axisInfo;\r\n result.seriesInvolved = result.seriesInvolved || involveSeries;\r\n var groupIndex = getLinkGroupIndex(linksOption, axis);\r\n if (groupIndex != null) {\r\n var linkGroup = linkGroups[groupIndex]\r\n || (linkGroups[groupIndex] = { axesInfo: {} });\r\n linkGroup.axesInfo[axisKey] = axisInfo;\r\n linkGroup.mapper = linksOption[groupIndex].mapper;\r\n axisInfo.linkGroup = linkGroup;\r\n }\r\n }\r\n });\r\n }\r\n function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\r\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\r\n var fields = [\r\n 'type', 'snap', 'lineStyle', 'shadowStyle', 'label',\r\n 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'\r\n ];\r\n var volatileOption = {};\r\n each(fields, function (field) {\r\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\r\n });\r\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\r\n if (tooltipAxisPointerModel.get('type') === 'cross') {\r\n volatileOption.type = 'line';\r\n }\r\n var labelOption = volatileOption.label || (volatileOption.label = {});\r\n labelOption.show == null && (labelOption.show = false);\r\n if (fromTooltip === 'cross') {\r\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\r\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\r\n if (!triggerTooltip) {\r\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\r\n crossStyle && defaults(labelOption, crossStyle.textStyle);\r\n }\r\n }\r\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\r\n }\r\n function collectSeriesInfo(result, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\r\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\r\n if (!coordSys\r\n || seriesTooltipTrigger === 'none'\r\n || seriesTooltipTrigger === false\r\n || seriesTooltipTrigger === 'item'\r\n || seriesTooltipShow === false\r\n || seriesModel.get(['axisPointer', 'show'], true) === false) {\r\n return;\r\n }\r\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\r\n var axis = axisInfo.axis;\r\n if (coordSys.getAxis(axis.dim) === axis) {\r\n axisInfo.seriesModels.push(seriesModel);\r\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\r\n axisInfo.seriesDataCount += seriesModel.getData().count();\r\n }\r\n });\r\n });\r\n }\r\n function getLinkGroupIndex(linksOption, axis) {\r\n var axisModel = axis.model;\r\n var dim = axis.dim;\r\n for (var i = 0; i < linksOption.length; i++) {\r\n var linkOption = linksOption[i] || {};\r\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id)\r\n || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex)\r\n || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\r\n return i;\r\n }\r\n }\r\n }\r\n function checkPropInLink(linkPropValue, axisPropValue) {\r\n return linkPropValue === 'all'\r\n || (isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0)\r\n || linkPropValue === axisPropValue;\r\n }\r\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$6 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$6(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$6(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$6(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 60,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(layoutPoints('line'));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (!ignoreContainLabel && gridModel.get('containLabel')) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$4 = Math.max;\r\n var mathMin$4 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea;\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n coordSysClipArea = coord.getArea && coord.getArea();\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n var isReorder = payload && payload.type === 'changeAxisOrder';\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, isReorder);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) {\r\n var that = this;\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 var lastAnimator = null;\r\n if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var axisSort = coord.type === 'cartesian2d' && axis2DModel.get('sort')\r\n && axis2DModel.get('sortSeriesIndex') === seriesModel.seriesIndex;\r\n var realtimeSort = axisSort && axis2DModel.get('realtimeSort');\r\n if (realtimeSort && this._isFirstFrame && data.count()) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\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 data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false);\r\n animator && (lastAnimator = animator);\r\n }\r\n else if (coord.type === 'cartesian2d') {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\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 if (drawBackground) {\r\n var bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\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 }\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true);\r\n animator && (lastAnimator = animator);\r\n }\r\n else {\r\n updateProps(el, { shape: layout }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n if (lastAnimator) {\r\n lastAnimator.during(function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n that._updateSort(data, orderMap, baseAxis, api);\r\n });\r\n }\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function () {\r\n this._clear(this._model);\r\n };\r\n BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var 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;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$4(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$4(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$4(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$4(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function () {\r\n return false;\r\n }\r\n };\r\n var 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 if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\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\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, data, newIndex, isHorizontal, isUpdate) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\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 }\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 (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n var lastAnimator = el.animators.length\r\n ? find(el.animators, function (animator) { return animator.targetName === 'shape' && !!animator.getTrack('width'); })\r\n : null;\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n var defaultTextGetter = function (values) {\r\n return getDefaultLabel(seriesModel.getData(), newIndex, values);\r\n };\r\n var labelModel = seriesModel.getModel('label');\r\n (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter);\r\n return lastAnimator;\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\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 };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n el.ignore = isZeroOnPolar(layout);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n setLabelStyle(el, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\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 }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\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 var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var 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 function 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 barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function 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 }\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 function 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 ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\n\n function createListSimply (seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function labelLayout (seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.x -= margin / 2;\r\n textRect.y -= margin / 2;\r\n textRect.width += margin;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend({}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = {\r\n r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0)\r\n };\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var labelText = sector.getTextContent();\r\n var itemModel = data.getItemModel(idx);\r\n var labelTextEmphasisState = labelText.ensureState('emphasis');\r\n var labelModel = itemModel.getModel('label');\r\n var labelHoverModel = itemModel.getModel(['emphasis', 'label']);\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n }, { normal: {\r\n opacity: style && style.opacity\r\n } });\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n labelText.ignore = !labelModel.get('show');\r\n labelTextEmphasisState.ignore = !labelHoverModel.get('show');\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: style && style.opacity\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var hasAnimation = ecModel.get('animation');\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n labelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$6 = Math.PI * 2;\r\n var RADIAN$1 = Math.PI / 180;\r\n function getViewRect(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function pieLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var viewRect = getViewRect(seriesModel, api);\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = parsePercent$2(viewRect.width, api.getWidth());\r\n var height = parsePercent$2(viewRect.height, api.getHeight());\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width) + viewRect.x;\r\n var cy = parsePercent$2(center[1], height) + viewRect.y;\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$1;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$1;\r\n var validDataCount = 0;\r\n data.each(valueDim, function (value) {\r\n !isNaN(value) && validDataCount++;\r\n });\r\n var sum = data.getSum(valueDim);\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var clockwise = seriesModel.get('clockwise');\r\n var roseType = seriesModel.get('roseType');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var extent = data.getDataExtent(valueDim);\r\n extent[0] = 0;\r\n var restAngle = PI2$6;\r\n var valueSumLargerThanMinAngle = 0;\r\n var currentAngle = startAngle;\r\n var dir = clockwise ? 1 : -1;\r\n data.setLayout({ viewRect: viewRect, r: r });\r\n data.each(valueDim, function (value, idx) {\r\n var angle;\r\n if (isNaN(value)) {\r\n data.setItemLayout(idx, {\r\n angle: NaN,\r\n startAngle: NaN,\r\n endAngle: NaN,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? NaN\r\n : r\r\n });\r\n return;\r\n }\r\n if (roseType !== 'area') {\r\n angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n }\r\n else {\r\n angle = PI2$6 / validDataCount;\r\n }\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n restAngle -= minAngle;\r\n }\r\n else {\r\n valueSumLargerThanMinAngle += value;\r\n }\r\n var endAngle = currentAngle + dir * angle;\r\n data.setItemLayout(idx, {\r\n angle: angle,\r\n startAngle: currentAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? linearMap(value, extent, [r0, r])\r\n : r\r\n });\r\n currentAngle = endAngle;\r\n });\r\n if (restAngle < PI2$6 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$6 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n var ScatterSeriesModel = (function (_super) {\r\n __extends(ScatterSeriesModel, _super);\r\n function ScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n ScatterSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 5e3 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n ScatterSeriesModel.type = 'series.scatter';\r\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n ScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n symbolSize: 10,\r\n large: false,\r\n largeThreshold: 2000,\r\n itemStyle: {\r\n opacity: 0.8\r\n },\r\n emphasis: {\r\n scale: true\r\n },\r\n clip: true,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return ScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ScatterSeriesModel);\n\n var BOOST_SIZE_THRESHOLD = 4;\r\n var LargeSymbolPathShape = (function () {\r\n function LargeSymbolPathShape() {\r\n }\r\n return LargeSymbolPathShape;\r\n }());\r\n var LargeSymbolPath = (function (_super) {\r\n __extends(LargeSymbolPath, _super);\r\n function LargeSymbolPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeSymbolPath.prototype.getDefaultShape = function () {\r\n return new LargeSymbolPathShape();\r\n };\r\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\r\n var points = shape.points;\r\n var size = shape.size;\r\n var symbolProxy = this.symbolProxy;\r\n var symbolProxyShape = symbolProxy.shape;\r\n var ctx = path.getContext\r\n ? path.getContext()\r\n : path;\r\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\r\n if (canBoost) {\r\n this._ctx = ctx;\r\n return;\r\n }\r\n this._ctx = null;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n symbolProxyShape.x = x - size[0] / 2;\r\n symbolProxyShape.y = y - size[1] / 2;\r\n symbolProxyShape.width = size[0];\r\n symbolProxyShape.height = size[1];\r\n symbolProxy.buildPath(path, symbolProxyShape, true);\r\n }\r\n };\r\n LargeSymbolPath.prototype.afterBrush = function () {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var ctx = this._ctx;\r\n if (!ctx) {\r\n return;\r\n }\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\r\n }\r\n };\r\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var w = Math.max(size[0], 4);\r\n var h = Math.max(size[1], 4);\r\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\r\n var i = idx * 2;\r\n var x0 = points[i] - w / 2;\r\n var y0 = points[i + 1] - h / 2;\r\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\r\n return idx;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeSymbolPath;\r\n }(Path));\r\n var LargeSymbolDraw = (function () {\r\n function LargeSymbolDraw() {\r\n this.group = new Group();\r\n }\r\n LargeSymbolDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\r\n this.group.removeAll();\r\n var symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, false, opt);\r\n this.group.add(symbolEl);\r\n this._incremental = null;\r\n };\r\n LargeSymbolDraw.prototype.updateLayout = function (data) {\r\n if (this._incremental) {\r\n return;\r\n }\r\n var points = data.getLayout('symbolPoints');\r\n this.group.eachChild(function (child) {\r\n if (child.startIndex != null) {\r\n var len = (child.endIndex - child.startIndex) * 2;\r\n var byteOffset = child.startIndex * 4 * 2;\r\n points = new Float32Array(points.buffer, byteOffset, len);\r\n }\r\n child.setShape('points', points);\r\n });\r\n };\r\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 2e6) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n var symbolEl;\r\n if (this._incremental) {\r\n symbolEl = new LargeSymbolPath();\r\n this._incremental.addDisplayable(symbolEl, true);\r\n }\r\n else {\r\n symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default',\r\n startIndex: taskParams.start,\r\n endIndex: taskParams.end\r\n });\r\n symbolEl.incremental = true;\r\n this.group.add(symbolEl);\r\n }\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, !!this._incremental, opt);\r\n };\r\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\r\n var hostModel = data.hostModel;\r\n opt = opt || {};\r\n var size = data.getVisual('symbolSize');\r\n symbolEl.setShape('size', (size instanceof Array) ? size : [size, size]);\r\n symbolEl.softClipShape = opt.clipShape || null;\r\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\r\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\r\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\r\n symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\r\n var globalStyle = data.getVisual('style');\r\n var visualColor = globalStyle && globalStyle.fill;\r\n if (visualColor) {\r\n symbolEl.setColor(visualColor);\r\n }\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(symbolEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n symbolEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex >= 0) {\r\n ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\r\n }\r\n });\r\n }\r\n };\r\n LargeSymbolDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeSymbolDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeSymbolDraw;\r\n }());\n\n var ScatterView = (function (_super) {\r\n __extends(ScatterView, _super);\r\n function ScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterView.type;\r\n return _this;\r\n }\r\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.updateData(data, {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = true;\r\n };\r\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.incrementalPrepareUpdate(data);\r\n this._finished = false;\r\n };\r\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = layoutPoints().reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({ start: 0, end: data.count(), count: data.count() }, data);\r\n }\r\n this._symbolDraw.updateLayout(data);\r\n }\r\n };\r\n ScatterView.prototype._getClipShape = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\r\n return seriesModel.get('clip', true) ? clipArea : null;\r\n };\r\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\r\n var symbolDraw = this._symbolDraw;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\r\n symbolDraw && symbolDraw.remove();\r\n symbolDraw = this._symbolDraw = isLargeDraw\r\n ? new LargeSymbolDraw()\r\n : new SymbolDraw();\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(symbolDraw.group);\r\n return symbolDraw;\r\n };\r\n ScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n this._symbolDraw = null;\r\n };\r\n ScatterView.prototype.dispose = function () { };\r\n ScatterView.type = 'scatter';\r\n return ScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(ScatterView);\n\n registerLayout(layoutPoints('scatter'));\n\n var IndicatorAxis = (function (_super) {\r\n __extends(IndicatorAxis, _super);\r\n function IndicatorAxis(dim, scale, radiusExtent) {\r\n var _this = _super.call(this, dim, scale, radiusExtent) || this;\r\n _this.type = 'value';\r\n _this.angle = 0;\r\n _this.name = '';\r\n return _this;\r\n }\r\n return IndicatorAxis;\r\n }(Axis));\n\n var Radar = (function () {\r\n function Radar(radarModel, ecModel, api) {\r\n this.dimensions = [];\r\n this._model = radarModel;\r\n this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\r\n var dim = 'indicator_' + idx;\r\n var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\r\n indicatorAxis.name = indicatorModel.get('name');\r\n indicatorAxis.model = indicatorModel;\r\n indicatorModel.axis = indicatorAxis;\r\n this.dimensions.push(dim);\r\n return indicatorAxis;\r\n }, this);\r\n this.resize(radarModel, api);\r\n }\r\n Radar.prototype.getIndicatorAxes = function () {\r\n return this._indicatorAxes;\r\n };\r\n Radar.prototype.dataToPoint = function (value, indicatorIndex) {\r\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\r\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\r\n };\r\n Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\r\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\r\n var angle = indicatorAxis.angle;\r\n var x = this.cx + coord * Math.cos(angle);\r\n var y = this.cy - coord * Math.sin(angle);\r\n return [x, y];\r\n };\r\n Radar.prototype.pointToData = function (pt) {\r\n var dx = pt[0] - this.cx;\r\n var dy = pt[1] - this.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n dx /= radius;\r\n dy /= radius;\r\n var radian = Math.atan2(-dy, dx);\r\n var minRadianDiff = Infinity;\r\n var closestAxis;\r\n var closestAxisIdx = -1;\r\n for (var i = 0; i < this._indicatorAxes.length; i++) {\r\n var indicatorAxis = this._indicatorAxes[i];\r\n var diff = Math.abs(radian - indicatorAxis.angle);\r\n if (diff < minRadianDiff) {\r\n closestAxis = indicatorAxis;\r\n closestAxisIdx = i;\r\n minRadianDiff = diff;\r\n }\r\n }\r\n return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\r\n };\r\n Radar.prototype.resize = function (radarModel, api) {\r\n var center = radarModel.get('center');\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\r\n this.cx = parsePercent$2(center[0], viewWidth);\r\n this.cy = parsePercent$2(center[1], viewHeight);\r\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\r\n var radius = radarModel.get('radius');\r\n if (typeof radius === 'string' || typeof radius === 'number') {\r\n radius = [0, radius];\r\n }\r\n this.r0 = parsePercent$2(radius[0], viewSize);\r\n this.r = parsePercent$2(radius[1], viewSize);\r\n each(this._indicatorAxes, function (indicatorAxis, idx) {\r\n indicatorAxis.setExtent(this.r0, this.r);\r\n var angle = (this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length);\r\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\r\n indicatorAxis.angle = angle;\r\n }, this);\r\n };\r\n Radar.prototype.update = function (ecModel, api) {\r\n var indicatorAxes = this._indicatorAxes;\r\n var radarModel = this._model;\r\n each(indicatorAxes, function (indicatorAxis) {\r\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\r\n });\r\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\r\n if (radarSeries.get('coordinateSystem') !== 'radar'\r\n || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\r\n return;\r\n }\r\n var data = radarSeries.getData();\r\n each(indicatorAxes, function (indicatorAxis) {\r\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\r\n });\r\n }, this);\r\n var splitNumber = radarModel.get('splitNumber');\r\n function increaseInterval(interval) {\r\n var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\r\n var f = interval / exp10;\r\n if (f === 2) {\r\n f = 5;\r\n }\r\n else {\r\n f *= 2;\r\n }\r\n return f * exp10;\r\n }\r\n each(indicatorAxes, function (indicatorAxis, idx) {\r\n var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\r\n niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\r\n var axisModel = indicatorAxis.model;\r\n var scale = indicatorAxis.scale;\r\n var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\r\n var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\r\n var interval = scale.getInterval();\r\n if (fixedMin != null && fixedMax != null) {\r\n scale.setExtent(+fixedMin, +fixedMax);\r\n scale.setInterval((fixedMax - fixedMin) / splitNumber);\r\n }\r\n else if (fixedMin != null) {\r\n var max = void 0;\r\n do {\r\n max = fixedMin + interval * splitNumber;\r\n scale.setExtent(+fixedMin, max);\r\n scale.setInterval(interval);\r\n interval = increaseInterval(interval);\r\n } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\r\n }\r\n else if (fixedMax != null) {\r\n var min = void 0;\r\n do {\r\n min = fixedMax - interval * splitNumber;\r\n scale.setExtent(min, +fixedMax);\r\n scale.setInterval(interval);\r\n interval = increaseInterval(interval);\r\n } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\r\n }\r\n else {\r\n var nicedSplitNumber = scale.getTicks().length - 1;\r\n if (nicedSplitNumber > splitNumber) {\r\n interval = increaseInterval(interval);\r\n }\r\n var max = Math.ceil(rawExtent[1] / interval) * interval;\r\n var min = round$1(max - interval * splitNumber);\r\n scale.setExtent(min, max);\r\n scale.setInterval(interval);\r\n }\r\n });\r\n };\r\n Radar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n console.warn('Not implemented.');\r\n return null;\r\n };\r\n Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n console.warn('Not implemented.');\r\n return null;\r\n };\r\n Radar.prototype.containPoint = function (point) {\r\n console.warn('Not implemented.');\r\n return false;\r\n };\r\n Radar.create = function (ecModel, api) {\r\n var radarList = [];\r\n ecModel.eachComponent('radar', function (radarModel) {\r\n var radar = new Radar(radarModel, ecModel, api);\r\n radarList.push(radar);\r\n radarModel.coordinateSystem = radar;\r\n });\r\n ecModel.eachSeriesByType('radar', function (radarSeries) {\r\n if (radarSeries.get('coordinateSystem') === 'radar') {\r\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\r\n }\r\n });\r\n return radarList;\r\n };\r\n Radar.dimensions = [];\r\n return Radar;\r\n }());\r\n CoordinateSystemManager.register('radar', Radar);\n\n var valueAxisDefault = axisDefault.value;\r\n function defaultsShow(opt, show) {\r\n return defaults({\r\n show: show\r\n }, opt);\r\n }\r\n var RadarModel = (function (_super) {\r\n __extends(RadarModel, _super);\r\n function RadarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarModel.type;\r\n return _this;\r\n }\r\n RadarModel.prototype.optionUpdated = function () {\r\n var boundaryGap = this.get('boundaryGap');\r\n var splitNumber = this.get('splitNumber');\r\n var scale = this.get('scale');\r\n var axisLine = this.get('axisLine');\r\n var axisTick = this.get('axisTick');\r\n var axisLabel = this.get('axisLabel');\r\n var nameTextStyle = this.get('axisName');\r\n var showName = this.get(['axisName', 'show']);\r\n var nameFormatter = this.get(['axisName', 'formatter']);\r\n var nameGap = this.get('axisNameGap');\r\n var triggerEvent = this.get('triggerEvent');\r\n var indicatorModels = map(this.get('indicator') || [], function (indicatorOpt) {\r\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\r\n indicatorOpt.min = 0;\r\n }\r\n else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\r\n indicatorOpt.max = 0;\r\n }\r\n var iNameTextStyle = nameTextStyle;\r\n if (indicatorOpt.color != null) {\r\n iNameTextStyle = defaults({\r\n color: indicatorOpt.color\r\n }, nameTextStyle);\r\n }\r\n var innerIndicatorOpt = merge(clone(indicatorOpt), {\r\n boundaryGap: boundaryGap,\r\n splitNumber: splitNumber,\r\n scale: scale,\r\n axisLine: axisLine,\r\n axisTick: axisTick,\r\n axisLabel: axisLabel,\r\n name: indicatorOpt.text,\r\n nameLocation: 'end',\r\n nameGap: nameGap,\r\n nameTextStyle: iNameTextStyle,\r\n triggerEvent: triggerEvent\r\n }, false);\r\n if (!showName) {\r\n innerIndicatorOpt.name = '';\r\n }\r\n if (typeof nameFormatter === 'string') {\r\n var indName = innerIndicatorOpt.name;\r\n innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\r\n }\r\n else if (typeof nameFormatter === 'function') {\r\n innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\r\n }\r\n var model = new Model(innerIndicatorOpt, null, this.ecModel);\r\n mixin(model, AxisModelCommonMixin.prototype);\r\n model.mainType = 'radar';\r\n model.componentIndex = this.componentIndex;\r\n return model;\r\n }, this);\r\n this._indicatorModels = indicatorModels;\r\n };\r\n RadarModel.prototype.getIndicatorModels = function () {\r\n return this._indicatorModels;\r\n };\r\n RadarModel.type = 'radar';\r\n RadarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n center: ['50%', '50%'],\r\n radius: '75%',\r\n startAngle: 90,\r\n axisName: {\r\n show: true\r\n },\r\n boundaryGap: [0, 0],\r\n splitNumber: 5,\r\n axisNameGap: 15,\r\n scale: false,\r\n shape: 'polygon',\r\n axisLine: merge({\r\n lineStyle: {\r\n color: '#bbb'\r\n }\r\n }, valueAxisDefault.axisLine),\r\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\r\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\r\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\r\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\r\n indicator: []\r\n };\r\n return RadarModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(RadarModel);\n\n var axisBuilderAttrs$1 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var RadarView = (function (_super) {\r\n __extends(RadarView, _super);\r\n function RadarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarView.type;\r\n return _this;\r\n }\r\n RadarView.prototype.render = function (radarModel, ecModel, api) {\r\n var group = this.group;\r\n group.removeAll();\r\n this._buildAxes(radarModel);\r\n this._buildSplitLineAndArea(radarModel);\r\n };\r\n RadarView.prototype._buildAxes = function (radarModel) {\r\n var radar = radarModel.coordinateSystem;\r\n var indicatorAxes = radar.getIndicatorAxes();\r\n var axisBuilders = map(indicatorAxes, function (indicatorAxis) {\r\n var axisBuilder = new AxisBuilder(indicatorAxis.model, {\r\n position: [radar.cx, radar.cy],\r\n rotation: indicatorAxis.angle,\r\n labelDirection: -1,\r\n tickDirection: -1,\r\n nameDirection: 1\r\n });\r\n return axisBuilder;\r\n });\r\n each(axisBuilders, function (axisBuilder) {\r\n each(axisBuilderAttrs$1, axisBuilder.add, axisBuilder);\r\n this.group.add(axisBuilder.getGroup());\r\n }, this);\r\n };\r\n RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\r\n var radar = radarModel.coordinateSystem;\r\n var indicatorAxes = radar.getIndicatorAxes();\r\n if (!indicatorAxes.length) {\r\n return;\r\n }\r\n var shape = radarModel.get('shape');\r\n var splitLineModel = radarModel.getModel('splitLine');\r\n var splitAreaModel = radarModel.getModel('splitArea');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var showSplitLine = splitLineModel.get('show');\r\n var showSplitArea = splitAreaModel.get('show');\r\n var splitLineColors = lineStyleModel.get('color');\r\n var splitAreaColors = areaStyleModel.get('color');\r\n var splitLineColorsArr = isArray(splitLineColors) ? splitLineColors : [splitLineColors];\r\n var splitAreaColorsArr = isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\r\n var splitLines = [];\r\n var splitAreas = [];\r\n function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\r\n var colorIndex = idx % areaOrLineColorList.length;\r\n areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\r\n return colorIndex;\r\n }\r\n if (shape === 'circle') {\r\n var ticksRadius = indicatorAxes[0].getTicksCoords();\r\n var cx = radar.cx;\r\n var cy = radar.cy;\r\n for (var i = 0; i < ticksRadius.length; i++) {\r\n if (showSplitLine) {\r\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\r\n splitLines[colorIndex].push(new Circle({\r\n shape: {\r\n cx: cx,\r\n cy: cy,\r\n r: ticksRadius[i].coord\r\n }\r\n }));\r\n }\r\n if (showSplitArea && i < ticksRadius.length - 1) {\r\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\r\n splitAreas[colorIndex].push(new Ring({\r\n shape: {\r\n cx: cx,\r\n cy: cy,\r\n r0: ticksRadius[i].coord,\r\n r: ticksRadius[i + 1].coord\r\n }\r\n }));\r\n }\r\n }\r\n }\r\n else {\r\n var realSplitNumber_1;\r\n var axesTicksPoints = map(indicatorAxes, function (indicatorAxis, idx) {\r\n var ticksCoords = indicatorAxis.getTicksCoords();\r\n realSplitNumber_1 = realSplitNumber_1 == null\r\n ? ticksCoords.length - 1\r\n : Math.min(ticksCoords.length - 1, realSplitNumber_1);\r\n return map(ticksCoords, function (tickCoord) {\r\n return radar.coordToPoint(tickCoord.coord, idx);\r\n });\r\n });\r\n var prevPoints = [];\r\n for (var i = 0; i <= realSplitNumber_1; i++) {\r\n var points = [];\r\n for (var j = 0; j < indicatorAxes.length; j++) {\r\n points.push(axesTicksPoints[j][i]);\r\n }\r\n if (points[0]) {\r\n points.push(points[0].slice());\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.error('Can\\'t draw value axis ' + i);\r\n }\r\n }\r\n if (showSplitLine) {\r\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\r\n splitLines[colorIndex].push(new Polyline({\r\n shape: {\r\n points: points\r\n }\r\n }));\r\n }\r\n if (showSplitArea && prevPoints) {\r\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\r\n splitAreas[colorIndex].push(new Polygon({\r\n shape: {\r\n points: points.concat(prevPoints)\r\n }\r\n }));\r\n }\r\n prevPoints = points.slice().reverse();\r\n }\r\n }\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n each(splitAreas, function (splitAreas, idx) {\r\n this.group.add(mergePath$1(splitAreas, {\r\n style: defaults({\r\n stroke: 'none',\r\n fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\r\n }, areaStyle),\r\n silent: true\r\n }));\r\n }, this);\r\n each(splitLines, function (splitLines, idx) {\r\n this.group.add(mergePath$1(splitLines, {\r\n style: defaults({\r\n fill: 'none',\r\n stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }, this);\r\n };\r\n RadarView.type = 'radar';\r\n return RadarView;\r\n }(ComponentView));\r\n ComponentView.registerClass(RadarView);\n\n var RadarSeriesModel = (function (_super) {\r\n __extends(RadarSeriesModel, _super);\r\n function RadarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n RadarSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n };\r\n RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, {\r\n generateCoord: 'indicator_',\r\n generateCoordCount: Infinity\r\n });\r\n };\r\n RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n var data = this.getData();\r\n var coordSys = this.coordinateSystem;\r\n var indicatorAxes = coordSys.getIndicatorAxes();\r\n var name = this.getData().getName(dataIndex);\r\n each(indicatorAxes, function (axis, idx) {\r\n axis.value = data.get(data.mapDimension(axis.dim), dataIndex);\r\n });\r\n switch (order) {\r\n case 'valueAsc':\r\n indicatorAxes.sort(function (a, b) {\r\n return +(a.value) - +(b.value);\r\n });\r\n break;\r\n case 'valueDesc':\r\n indicatorAxes.sort(function (a, b) {\r\n return +(b.value) - +(a.value);\r\n });\r\n break;\r\n case 'seriesDesc':\r\n indicatorAxes.reverse();\r\n break;\r\n }\r\n if (renderMode === 'richText') {\r\n return encodeHTML(name === '' ? this.name : name) + '\\n'\r\n + map(indicatorAxes, function (axis) {\r\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\r\n return encodeHTML(axis.name) + ': ' + val;\r\n }).join('\\n');\r\n }\r\n return '
'\r\n + encodeHTML(name === '' ? this.name : name)\r\n + '
'\r\n + map(indicatorAxes, function (axis) {\r\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\r\n return '
'\r\n + concatTooltipHtml(axis.name, val)\r\n + '
';\r\n }).join('');\r\n };\r\n RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\r\n if (dataIndex != null) {\r\n var data_1 = this.getData();\r\n var coordSys = this.coordinateSystem;\r\n var values = data_1.getValues(map(coordSys.dimensions, function (dim) {\r\n return data_1.mapDimension(dim);\r\n }), dataIndex);\r\n for (var i = 0, len = values.length; i < len; i++) {\r\n if (!isNaN(values[i])) {\r\n var indicatorAxes = coordSys.getIndicatorAxes();\r\n return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\r\n }\r\n }\r\n }\r\n };\r\n RadarSeriesModel.type = 'series.radar';\r\n RadarSeriesModel.dependencies = ['radar'];\r\n RadarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'radar',\r\n legendHoverLink: true,\r\n radarIndex: 0,\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n label: {\r\n position: 'top'\r\n },\r\n symbol: 'emptyCircle',\r\n symbolSize: 4\r\n };\r\n return RadarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(RadarSeriesModel);\n\n function normalizeSymbolSize(symbolSize) {\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [+symbolSize, +symbolSize];\r\n }\r\n return symbolSize;\r\n }\r\n var RadarView$1 = (function (_super) {\r\n __extends(RadarView, _super);\r\n function RadarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarView.type;\r\n return _this;\r\n }\r\n RadarView.prototype.render = function (seriesModel, ecModel, api) {\r\n var polar = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n function createSymbol$1(data, idx) {\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n if (symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2);\r\n symbolPath.attr({\r\n style: {\r\n strokeNoScale: true\r\n },\r\n z2: 100,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n return symbolPath;\r\n }\r\n function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\r\n symbolGroup.removeAll();\r\n for (var i = 0; i < newPoints.length - 1; i++) {\r\n var symbolPath = createSymbol$1(data, idx);\r\n if (symbolPath) {\r\n symbolPath.__dimIdx = i;\r\n if (oldPoints[i]) {\r\n symbolPath.setPosition(oldPoints[i]);\r\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\r\n x: newPoints[i][0],\r\n y: newPoints[i][1]\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n symbolPath.setPosition(newPoints[i]);\r\n }\r\n symbolGroup.add(symbolPath);\r\n }\r\n }\r\n }\r\n function getInitialPoints(points) {\r\n return map(points, function (pt) {\r\n return [polar.cx, polar.cy];\r\n });\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var points = data.getItemLayout(idx);\r\n if (!points) {\r\n return;\r\n }\r\n var polygon = new Polygon();\r\n var polyline = new Polyline();\r\n var target = {\r\n shape: {\r\n points: points\r\n }\r\n };\r\n polygon.shape.points = getInitialPoints(points);\r\n polyline.shape.points = getInitialPoints(points);\r\n initProps(polygon, target, seriesModel, idx);\r\n initProps(polyline, target, seriesModel, idx);\r\n var itemGroup = new Group();\r\n var symbolGroup = new Group();\r\n itemGroup.add(polyline);\r\n itemGroup.add(polygon);\r\n itemGroup.add(symbolGroup);\r\n updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\r\n data.setItemGraphicEl(idx, itemGroup);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var itemGroup = oldData.getItemGraphicEl(oldIdx);\r\n var polyline = itemGroup.childAt(0);\r\n var polygon = itemGroup.childAt(1);\r\n var symbolGroup = itemGroup.childAt(2);\r\n var target = {\r\n shape: {\r\n points: data.getItemLayout(newIdx)\r\n }\r\n };\r\n if (!target.shape.points) {\r\n return;\r\n }\r\n updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\r\n updateProps(polyline, target, seriesModel);\r\n updateProps(polygon, target, seriesModel);\r\n data.setItemGraphicEl(newIdx, itemGroup);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n data.eachItemGraphicEl(function (itemGroup, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var polyline = itemGroup.childAt(0);\r\n var polygon = itemGroup.childAt(1);\r\n var symbolGroup = itemGroup.childAt(2);\r\n var itemStyle = data.getItemVisual(idx, 'style');\r\n var color = itemStyle.fill;\r\n group.add(itemGroup);\r\n polyline.useStyle(defaults(itemModel.getModel('lineStyle').getLineStyle(), {\r\n fill: 'none',\r\n stroke: color\r\n }));\r\n setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\r\n setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\r\n var areaStyleModel = itemModel.getModel('areaStyle');\r\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\r\n polygon.ignore = polygonIgnore;\r\n each(['emphasis', 'select', 'blur'], function (stateName) {\r\n var stateModel = itemModel.getModel([stateName, 'areaStyle']);\r\n var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\r\n polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\r\n });\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: color,\r\n opacity: 0.7\r\n }));\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n symbolGroup.eachChild(function (symbolPath) {\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, itemStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(itemStyle);\r\n symbolPath.setColor(color);\r\n }\r\n var pathEmphasisState = symbolPath.ensureState('emphasis');\r\n pathEmphasisState.style = clone(itemHoverStyle);\r\n var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\r\n (defaultText == null || isNaN(defaultText)) && (defaultText = '');\r\n setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n labelDimIndex: symbolPath.__dimIdx,\r\n defaultText: defaultText,\r\n inheritColor: color\r\n });\r\n });\r\n enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n });\r\n this._data = data;\r\n };\r\n RadarView.prototype.remove = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n RadarView.type = 'radar';\r\n return RadarView;\r\n }(ChartView));\r\n ChartView.registerClass(RadarView$1);\n\n function radarLayout (ecModel) {\r\n ecModel.eachSeriesByType('radar', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var points = [];\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var axes = coordSys.getIndicatorAxes();\r\n each(axes, function (axis, axisIndex) {\r\n data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\r\n points[dataIndex] = points[dataIndex] || [];\r\n var point = coordSys.dataToPoint(val, axisIndex);\r\n points[dataIndex][axisIndex] = isValidPoint(point)\r\n ? point : getValueMissingPoint(coordSys);\r\n });\r\n });\r\n data.each(function (idx) {\r\n var firstPoint = find(points[idx], function (point) {\r\n return isValidPoint(point);\r\n }) || getValueMissingPoint(coordSys);\r\n points[idx].push(firstPoint.slice());\r\n data.setItemLayout(idx, points[idx]);\r\n });\r\n });\r\n }\r\n function isValidPoint(point) {\r\n return !isNaN(point[0]) && !isNaN(point[1]);\r\n }\r\n function getValueMissingPoint(coordSys) {\r\n return [coordSys.cx, coordSys.cy];\r\n }\n\n function backwardCompat$1 (option) {\r\n var polarOptArr = option.polar;\r\n if (polarOptArr) {\r\n if (!isArray(polarOptArr)) {\r\n polarOptArr = [polarOptArr];\r\n }\r\n var polarNotRadar_1 = [];\r\n each(polarOptArr, function (polarOpt, idx) {\r\n if (polarOpt.indicator) {\r\n if (polarOpt.type && !polarOpt.shape) {\r\n polarOpt.shape = polarOpt.type;\r\n }\r\n option.radar = option.radar || [];\r\n if (!isArray(option.radar)) {\r\n option.radar = [option.radar];\r\n }\r\n option.radar.push(polarOpt);\r\n }\r\n else {\r\n polarNotRadar_1.push(polarOpt);\r\n }\r\n });\r\n option.polar = polarNotRadar_1;\r\n }\r\n each(option.series, function (seriesOpt) {\r\n if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\r\n seriesOpt.radarIndex = seriesOpt.polarIndex;\r\n }\r\n });\r\n }\n\n registerLayout(radarLayout);\r\n registerProcessor(dataFilter('radar'));\r\n registerPreprocessor(backwardCompat$1);\n\n var geoCoord = [126, 25];\r\n var points$1 = [\r\n [[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7],\r\n [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]],\r\n [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]],\r\n [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]],\r\n [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]],\r\n [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]],\r\n [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]],\r\n [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]],\r\n [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]],\r\n [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]],\r\n [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]],\r\n [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]],\r\n [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4],\r\n [1, 92.4], [1, 3.5], [0, 3.5]]\r\n ];\r\n for (var i = 0; i < points$1.length; i++) {\r\n for (var k = 0; k < points$1[i].length; k++) {\r\n points$1[i][k][0] /= 10.5;\r\n points$1[i][k][1] /= -10.5 / 0.75;\r\n points$1[i][k][0] += geoCoord[0];\r\n points$1[i][k][1] += geoCoord[1];\r\n }\r\n }\r\n function fixNanhai (mapType, regions) {\r\n if (mapType === 'china') {\r\n regions.push(new Region('南海诸岛', map(points$1, function (exterior) {\r\n return {\r\n type: 'polygon',\r\n exterior: exterior\r\n };\r\n }), geoCoord));\r\n }\r\n }\n\n var coordsOffsetMap = {\r\n '南海诸岛': [32, 80],\r\n '广东': [0, -10],\r\n '香港': [10, 5],\r\n '澳门': [-10, 10],\r\n '天津': [5, 5]\r\n };\r\n function fixTextCoord (mapType, region) {\r\n if (mapType === 'china') {\r\n var coordFix = coordsOffsetMap[region.name];\r\n if (coordFix) {\r\n var cp = region.center;\r\n cp[0] += coordFix[0] / 10.5;\r\n cp[1] += -coordFix[1] / (10.5 / 0.75);\r\n }\r\n }\r\n }\n\n var geoCoordMap = {\r\n 'Russia': [100, 60],\r\n 'United States': [-99, 38],\r\n 'United States of America': [-99, 38]\r\n };\r\n function fixGeoCoord (mapType, region) {\r\n if (mapType === 'world') {\r\n var geoCoord = geoCoordMap[region.name];\r\n if (geoCoord) {\r\n var cp = region.center;\r\n cp[0] = geoCoord[0];\r\n cp[1] = geoCoord[1];\r\n }\r\n }\r\n }\n\n var points$2 = [\r\n [\r\n [123.45165252685547, 25.73527164402261],\r\n [123.49731445312499, 25.73527164402261],\r\n [123.49731445312499, 25.750734064600884],\r\n [123.45165252685547, 25.750734064600884],\r\n [123.45165252685547, 25.73527164402261]\r\n ]\r\n ];\r\n function fixDiaoyuIsland (mapType, region) {\r\n if (mapType === 'china' && region.name === '台湾') {\r\n region.geometries.push({\r\n type: 'polygon',\r\n exterior: points$2[0]\r\n });\r\n }\r\n }\n\n var inner$7 = makeInner();\r\n var geoJSONLoader = {\r\n load: function (mapName, mapRecord, nameProperty) {\r\n var parsed = inner$7(mapRecord).parsed;\r\n if (parsed) {\r\n return parsed;\r\n }\r\n var specialAreas = mapRecord.specialAreas || {};\r\n var geoJSON = mapRecord.geoJSON;\r\n var regions;\r\n try {\r\n regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\r\n }\r\n catch (e) {\r\n throw new Error('Invalid geoJson format\\n' + e.message);\r\n }\r\n fixNanhai(mapName, regions);\r\n each(regions, function (region) {\r\n var regionName = region.name;\r\n fixTextCoord(mapName, region);\r\n fixGeoCoord(mapName, region);\r\n fixDiaoyuIsland(mapName, region);\r\n var specialArea = specialAreas[regionName];\r\n if (specialArea) {\r\n region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\r\n }\r\n });\r\n return (inner$7(mapRecord).parsed = {\r\n regions: regions,\r\n boundingRect: getBoundingRect$1(regions)\r\n });\r\n }\r\n };\r\n function getBoundingRect$1(regions) {\r\n var rect;\r\n for (var i = 0; i < regions.length; i++) {\r\n var regionRect = regions[i].getBoundingRect();\r\n rect = rect || regionRect.clone();\r\n rect.union(regionRect);\r\n }\r\n return rect;\r\n }\n\n var inner$8 = makeInner();\r\n var geoSVGLoader = {\r\n load: function (mapName, mapRecord) {\r\n var originRoot = inner$8(mapRecord).originRoot;\r\n if (originRoot) {\r\n return {\r\n root: originRoot,\r\n boundingRect: inner$8(mapRecord).boundingRect\r\n };\r\n }\r\n var graphic = buildGraphic(mapRecord);\r\n inner$8(mapRecord).originRoot = graphic.root;\r\n inner$8(mapRecord).boundingRect = graphic.boundingRect;\r\n return graphic;\r\n },\r\n makeGraphic: function (mapName, mapRecord, hostKey) {\r\n var field = inner$8(mapRecord);\r\n var rootMap = field.rootMap || (field.rootMap = createHashMap());\r\n var root = rootMap.get(hostKey);\r\n if (root) {\r\n return root;\r\n }\r\n var originRoot = field.originRoot;\r\n var boundingRect = field.boundingRect;\r\n if (!field.originRootHostKey) {\r\n field.originRootHostKey = hostKey;\r\n root = originRoot;\r\n }\r\n else {\r\n root = buildGraphic(mapRecord, boundingRect).root;\r\n }\r\n return rootMap.set(hostKey, root);\r\n },\r\n removeGraphic: function (mapName, mapRecord, hostKey) {\r\n var field = inner$8(mapRecord);\r\n var rootMap = field.rootMap;\r\n rootMap && rootMap.removeKey(hostKey);\r\n if (hostKey === field.originRootHostKey) {\r\n field.originRootHostKey = null;\r\n }\r\n }\r\n };\r\n function buildGraphic(mapRecord, boundingRect) {\r\n var svgXML = mapRecord.svgXML;\r\n var result;\r\n var root;\r\n try {\r\n result = svgXML && parseSVG(svgXML, {\r\n ignoreViewBox: true,\r\n ignoreRootClip: true\r\n }) || {};\r\n root = result.root;\r\n assert(root != null);\r\n }\r\n catch (e) {\r\n throw new Error('Invalid svg format\\n' + e.message);\r\n }\r\n var svgWidth = result.width;\r\n var svgHeight = result.height;\r\n var viewBoxRect = result.viewBoxRect;\r\n if (!boundingRect) {\r\n boundingRect = (svgWidth == null || svgHeight == null)\r\n ? root.getBoundingRect()\r\n : new BoundingRect(0, 0, 0, 0);\r\n if (svgWidth != null) {\r\n boundingRect.width = svgWidth;\r\n }\r\n if (svgHeight != null) {\r\n boundingRect.height = svgHeight;\r\n }\r\n }\r\n if (viewBoxRect) {\r\n var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\r\n var elRoot = root;\r\n root = new Group();\r\n root.add(elRoot);\r\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\r\n elRoot.x = viewBoxTransform.x;\r\n elRoot.y = viewBoxTransform.y;\r\n }\r\n root.setClipPath(new Rect({\r\n shape: boundingRect.plain()\r\n }));\r\n return {\r\n root: root,\r\n boundingRect: boundingRect\r\n };\r\n }\n\n var loaders = {\r\n geoJSON: geoJSONLoader,\r\n svg: geoSVGLoader\r\n };\r\n var geoSourceManager = {\r\n load: function (mapName, nameMap, nameProperty) {\r\n var regions = [];\r\n var regionsMap = createHashMap();\r\n var nameCoordMap = createHashMap();\r\n var boundingRect;\r\n var mapRecords = retrieveMap(mapName);\r\n each(mapRecords, function (record) {\r\n var singleSource = loaders[record.type].load(mapName, record, nameProperty);\r\n each(singleSource.regions, function (region) {\r\n var regionName = region.name;\r\n if (nameMap && nameMap.hasOwnProperty(regionName)) {\r\n region = region.cloneShallow(regionName = nameMap[regionName]);\r\n }\r\n regions.push(region);\r\n regionsMap.set(regionName, region);\r\n nameCoordMap.set(regionName, region.center);\r\n });\r\n var rect = singleSource.boundingRect;\r\n if (rect) {\r\n boundingRect\r\n ? boundingRect.union(rect)\r\n : (boundingRect = rect.clone());\r\n }\r\n });\r\n return {\r\n regions: regions,\r\n regionsMap: regionsMap,\r\n nameCoordMap: nameCoordMap,\r\n boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\r\n };\r\n },\r\n makeGraphic: function (mapName, hostKey) {\r\n var mapRecords = retrieveMap(mapName);\r\n var results = [];\r\n each(mapRecords, function (record) {\r\n var method = loaders[record.type].makeGraphic;\r\n method && results.push(method(mapName, record, hostKey));\r\n });\r\n return results;\r\n },\r\n removeGraphic: function (mapName, hostKey) {\r\n var mapRecords = retrieveMap(mapName);\r\n each(mapRecords, function (record) {\r\n var method = loaders[record.type].makeGraphic;\r\n method && method(mapName, record, hostKey);\r\n });\r\n }\r\n };\r\n function mapNotExistsError(mapName) {\r\n if (__DEV__) {\r\n console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\r\n }\r\n }\r\n function retrieveMap(mapName) {\r\n var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\r\n if (__DEV__) {\r\n if (!mapRecords.length) {\r\n mapNotExistsError(mapName);\r\n }\r\n }\r\n return mapRecords;\r\n }\n\n var MapSeries = (function (_super) {\r\n __extends(MapSeries, _super);\r\n function MapSeries() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MapSeries.type;\r\n _this.needsDrawMap = false;\r\n _this.seriesGroup = [];\r\n _this.getTooltipPosition = function (dataIndex) {\r\n if (dataIndex != null) {\r\n var name_1 = this.getData().getName(dataIndex);\r\n var geo = this.coordinateSystem;\r\n var region = geo.getRegion(name_1);\r\n return region && geo.dataToPoint(region.center);\r\n }\r\n };\r\n return _this;\r\n }\r\n MapSeries.prototype.getInitialData = function (option) {\r\n var data = createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n var dataNameMap = createHashMap();\r\n var toAppendNames = [];\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n var name_2 = data.getName(i);\r\n dataNameMap.set(name_2, true);\r\n }\r\n var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\r\n each(geoSource.regions, function (region) {\r\n var name = region.name;\r\n if (!dataNameMap.get(name)) {\r\n toAppendNames.push(name);\r\n }\r\n });\r\n data.appendValues([], toAppendNames);\r\n return data;\r\n };\r\n MapSeries.prototype.getHostGeoModel = function () {\r\n var geoIndex = this.option.geoIndex;\r\n return geoIndex != null\r\n ? this.ecModel.getComponent('geo', geoIndex)\r\n : null;\r\n };\r\n MapSeries.prototype.getMapType = function () {\r\n return (this.getHostGeoModel() || this).option.map;\r\n };\r\n MapSeries.prototype.getRawValue = function (dataIndex) {\r\n var data = this.getData();\r\n return data.get(data.mapDimension('value'), dataIndex);\r\n };\r\n MapSeries.prototype.getRegionModel = function (regionName) {\r\n var data = this.getData();\r\n return data.getItemModel(data.indexOfName(regionName));\r\n };\r\n MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var formattedValue = addCommas(this.getRawValue(dataIndex));\r\n var name = data.getName(dataIndex);\r\n var seriesGroup = this.seriesGroup;\r\n var seriesNames = [];\r\n for (var i = 0; i < seriesGroup.length; i++) {\r\n var otherIndex = seriesGroup[i].originalData.indexOfName(name);\r\n var valueDim = data.mapDimension('value');\r\n if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\r\n seriesNames.push(encodeHTML(seriesGroup[i].name));\r\n }\r\n }\r\n if (renderMode === 'richText') {\r\n return seriesNames.join(', ') + (seriesNames.length ? '\\n' : '')\r\n + encodeHTML(name) + ': ' + formattedValue;\r\n }\r\n return \"
\" + seriesNames.join(', ') + \"
\"\r\n + concatTooltipHtml(name, formattedValue);\r\n };\r\n MapSeries.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n MapSeries.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n MapSeries.type = 'series.map';\r\n MapSeries.dependencies = ['geo'];\r\n MapSeries.layoutMode = 'box';\r\n MapSeries.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'geo',\r\n map: '',\r\n left: 'center',\r\n top: 'center',\r\n aspectScale: 0.75,\r\n showLegendSymbol: true,\r\n boundingCoords: null,\r\n center: null,\r\n zoom: 1,\r\n scaleLimit: null,\r\n selectedMode: true,\r\n label: {\r\n show: false,\r\n color: '#000'\r\n },\r\n itemStyle: {\r\n borderWidth: 0.5,\r\n borderColor: '#444',\r\n areaColor: '#eee'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n areaColor: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n select: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n nameProperty: 'name'\r\n };\r\n return MapSeries;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(MapSeries);\n\n var ATTR = '\\0_ec_interaction_mutex';\r\n function take(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n store[resourceKey] = userKey;\r\n }\r\n function release(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n var uKey = store[resourceKey];\r\n if (uKey === userKey) {\r\n store[resourceKey] = null;\r\n }\r\n }\r\n function isTaken(zr, resourceKey) {\r\n return !!getStore(zr)[resourceKey];\r\n }\r\n function getStore(zr) {\r\n return zr[ATTR] || (zr[ATTR] = {});\r\n }\r\n registerAction({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, function () { });\n\n var RoamController = (function (_super) {\r\n __extends(RoamController, _super);\r\n function RoamController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._zr = zr;\r\n var mousedownHandler = bind(_this._mousedownHandler, _this);\r\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\r\n var mouseupHandler = bind(_this._mouseupHandler, _this);\r\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\r\n var pinchHandler = bind(_this._pinchHandler, _this);\r\n _this.enable = function (controlType, opt) {\r\n this.disable();\r\n this._opt = defaults(clone(opt) || {}, {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n if (controlType == null) {\r\n controlType = true;\r\n }\r\n if (controlType === true || (controlType === 'move' || controlType === 'pan')) {\r\n zr.on('mousedown', mousedownHandler);\r\n zr.on('mousemove', mousemoveHandler);\r\n zr.on('mouseup', mouseupHandler);\r\n }\r\n if (controlType === true || (controlType === 'scale' || controlType === 'zoom')) {\r\n zr.on('mousewheel', mousewheelHandler);\r\n zr.on('pinch', pinchHandler);\r\n }\r\n };\r\n _this.disable = function () {\r\n zr.off('mousedown', mousedownHandler);\r\n zr.off('mousemove', mousemoveHandler);\r\n zr.off('mouseup', mouseupHandler);\r\n zr.off('mousewheel', mousewheelHandler);\r\n zr.off('pinch', pinchHandler);\r\n };\r\n return _this;\r\n }\r\n RoamController.prototype.isDragging = function () {\r\n return this._dragging;\r\n };\r\n RoamController.prototype.isPinching = function () {\r\n return this._pinching;\r\n };\r\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\r\n this.pointerChecker = pointerChecker;\r\n };\r\n RoamController.prototype.dispose = function () {\r\n this.disable();\r\n };\r\n RoamController.prototype._mousedownHandler = function (e) {\r\n if (isMiddleOrRightButtonOnMouseUpDown(e)\r\n || (e.target && e.target.draggable)) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\r\n this._x = x;\r\n this._y = y;\r\n this._dragging = true;\r\n }\r\n };\r\n RoamController.prototype._mousemoveHandler = function (e) {\r\n if (!this._dragging\r\n || !isAvailableBehavior('moveOnMouseMove', e, this._opt)\r\n || e.gestureEvent === 'pinch'\r\n || isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var oldX = this._x;\r\n var oldY = this._y;\r\n var dx = x - oldX;\r\n var dy = y - oldY;\r\n this._x = x;\r\n this._y = y;\r\n this._opt.preventDefaultMouseMove && stop(e.event);\r\n trigger(this, 'pan', 'moveOnMouseMove', e, {\r\n dx: dx, dy: dy, oldX: oldX, oldY: oldY, newX: x, newY: y, isAvailableBehavior: null\r\n });\r\n };\r\n RoamController.prototype._mouseupHandler = function (e) {\r\n if (!isMiddleOrRightButtonOnMouseUpDown(e)) {\r\n this._dragging = false;\r\n }\r\n };\r\n RoamController.prototype._mousewheelHandler = function (e) {\r\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\r\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\r\n var wheelDelta = e.wheelDelta;\r\n var absWheelDeltaDelta = Math.abs(wheelDelta);\r\n var originX = e.offsetX;\r\n var originY = e.offsetY;\r\n if (wheelDelta === 0 || (!shouldZoom && !shouldMove)) {\r\n return;\r\n }\r\n if (shouldZoom) {\r\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\r\n var scale = wheelDelta > 0 ? factor : 1 / factor;\r\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\r\n scale: scale, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n if (shouldMove) {\r\n var absDelta = Math.abs(wheelDelta);\r\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\r\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\r\n scrollDelta: scrollDelta, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n };\r\n RoamController.prototype._pinchHandler = function (e) {\r\n if (isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\r\n checkPointerAndTrigger(this, 'zoom', null, e, {\r\n scale: scale, originX: e.pinchX, originY: e.pinchY, isAvailableBehavior: null\r\n });\r\n };\r\n return RoamController;\r\n }(Eventful));\r\n function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n if (controller.pointerChecker\r\n && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\r\n stop(e.event);\r\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\r\n }\r\n }\r\n function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\r\n controller.trigger(eventName, contollerEvent);\r\n }\r\n function isAvailableBehavior(behaviorToCheck, e, settings) {\r\n var setting = settings[behaviorToCheck];\r\n return !behaviorToCheck || (setting && (!isString(setting) || e.event[setting + 'Key']));\r\n }\n\n function updateViewOnPan(controllerHost, dx, dy) {\r\n var target = controllerHost.target;\r\n target.x += dx;\r\n target.y += dy;\r\n target.dirty();\r\n }\r\n function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\r\n var target = controllerHost.target;\r\n var zoomLimit = controllerHost.zoomLimit;\r\n var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\r\n newZoom *= zoomDelta;\r\n if (zoomLimit) {\r\n var zoomMin = zoomLimit.min || 0;\r\n var zoomMax = zoomLimit.max || Infinity;\r\n newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\r\n }\r\n var zoomScale = newZoom / controllerHost.zoom;\r\n controllerHost.zoom = newZoom;\r\n target.x -= (zoomX - target.x) * (zoomScale - 1);\r\n target.y -= (zoomY - target.y) * (zoomScale - 1);\r\n target.scaleX *= zoomScale;\r\n target.scaleY *= zoomScale;\r\n target.dirty();\r\n }\n\n var IRRELEVANT_EXCLUDES = { 'axisPointer': 1, 'tooltip': 1, 'brush': 1 };\r\n function onIrrelevantElement(e, api, targetCoordSysModel) {\r\n var model = api.getComponentByElement(e.topTarget);\r\n var coordSys = model && model.coordinateSystem;\r\n return model\r\n && model !== targetCoordSysModel\r\n && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType)\r\n && (coordSys && coordSys.model !== targetCoordSysModel);\r\n }\n\n function getFixedItemStyle(model) {\r\n var itemStyle = model.getItemStyle();\r\n var areaColor = model.get('areaColor');\r\n if (areaColor != null) {\r\n itemStyle.fill = areaColor;\r\n }\r\n return itemStyle;\r\n }\r\n var MapDraw = (function () {\r\n function MapDraw(api) {\r\n var group = new Group();\r\n this.uid = getUID('ec_map_draw');\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = { target: group };\r\n this.group = group;\r\n group.add(this._regionsGroup = new Group());\r\n group.add(this._backgroundGroup = new Group());\r\n }\r\n MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\r\n var isGeo = mapOrGeoModel.mainType === 'geo';\r\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\r\n isGeo && ecModel.eachComponent({ mainType: 'series', subType: 'map' }, function (mapSeries) {\r\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\r\n data = mapSeries.getData();\r\n }\r\n });\r\n var geo = mapOrGeoModel.coordinateSystem;\r\n this._updateBackground(geo);\r\n var regionsGroup = this._regionsGroup;\r\n var group = this.group;\r\n var transformInfo = geo.getTransformInfo();\r\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\r\n var targetScaleX;\r\n var targetScaleY;\r\n if (isFirstDraw) {\r\n group.transform = transformInfo.roamTransform;\r\n group.decomposeTransform();\r\n group.dirty();\r\n }\r\n else {\r\n var target = new Transformable();\r\n target.transform = transformInfo.roamTransform;\r\n target.decomposeTransform();\r\n var props = {\r\n scaleX: target.scaleX,\r\n scaleY: target.scaleY,\r\n x: target.x,\r\n y: target.y\r\n };\r\n targetScaleX = target.scaleX;\r\n targetScaleY = target.scaleY;\r\n updateProps(group, props, mapOrGeoModel);\r\n }\r\n regionsGroup.removeAll();\r\n var nameMap = createHashMap();\r\n var isVisualEncodedByVisualMap = data\r\n && data.getVisual('visualMeta')\r\n && data.getVisual('visualMeta').length > 0;\r\n each(geo.regions, function (region) {\r\n var regionGroup = nameMap.get(region.name)\r\n || nameMap.set(region.name, new Group());\r\n var compoundPath = new CompoundPath({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n paths: []\r\n }\r\n });\r\n regionGroup.add(compoundPath);\r\n var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\r\n var itemStyleModel = regionModel.getModel('itemStyle');\r\n var emphasisModel = regionModel.getModel('emphasis');\r\n var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\r\n var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\r\n var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\r\n var itemStyle = getFixedItemStyle(itemStyleModel);\r\n var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\r\n var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\r\n var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\r\n var dataIdx;\r\n if (data) {\r\n dataIdx = data.indexOfName(region.name);\r\n var style = data.getItemVisual(dataIdx, 'style');\r\n if (isVisualEncodedByVisualMap && style.fill) {\r\n itemStyle.fill = style.fill;\r\n }\r\n }\r\n var sx = transformInfo.rawScaleX;\r\n var sy = transformInfo.rawScaleY;\r\n var offsetX = transformInfo.rawX;\r\n var offsetY = transformInfo.rawY;\r\n var transformPoint = function (point) {\r\n return [\r\n point[0] * sx + offsetX,\r\n point[1] * sy + offsetY\r\n ];\r\n };\r\n each(region.geometries, function (geometry) {\r\n if (geometry.type !== 'polygon') {\r\n return;\r\n }\r\n var points = [];\r\n for (var i = 0; i < geometry.exterior.length; ++i) {\r\n points.push(transformPoint(geometry.exterior[i]));\r\n }\r\n compoundPath.shape.paths.push(new Polygon({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n points: points\r\n }\r\n }));\r\n for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\r\n var interior = geometry.interiors[i];\r\n var points_1 = [];\r\n for (var j = 0; j < interior.length; ++j) {\r\n points_1.push(transformPoint(interior[j]));\r\n }\r\n compoundPath.shape.paths.push(new Polygon({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n points: points_1\r\n }\r\n }));\r\n }\r\n });\r\n compoundPath.setStyle(itemStyle);\r\n compoundPath.style.strokeNoScale = true;\r\n compoundPath.culling = true;\r\n compoundPath.ensureState('emphasis').style = emphasisItemStyle;\r\n compoundPath.ensureState('blur').style = blurItemStyle;\r\n compoundPath.ensureState('select').style = selectItemStyle;\r\n var showLabel = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\r\n showLabel = true;\r\n break;\r\n }\r\n }\r\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\r\n var itemLayout = data && data.getItemLayout(dataIdx);\r\n if ((isGeo || isDataNaN && (showLabel))\r\n || (itemLayout && itemLayout.showLabel)) {\r\n var query = !isGeo ? dataIdx : region.name;\r\n var labelFetcher = void 0;\r\n if (!data || dataIdx >= 0) {\r\n labelFetcher = mapOrGeoModel;\r\n }\r\n var centerPt = transformPoint(region.center);\r\n var textEl = new ZRText({\r\n x: centerPt[0],\r\n y: centerPt[1],\r\n scaleX: 1 / group.scaleX,\r\n scaleY: 1 / group.scaleY,\r\n z2: 10,\r\n silent: true\r\n });\r\n setLabelStyle(textEl, getLabelStatesModels(regionModel), {\r\n labelFetcher: labelFetcher,\r\n labelDataIndex: query,\r\n defaultText: region.name\r\n }, { normal: {\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n } });\r\n compoundPath.setTextContent(textEl);\r\n compoundPath.setTextConfig({\r\n local: true\r\n });\r\n compoundPath.disableLabelAnimation = true;\r\n if (!isFirstDraw) {\r\n updateProps(textEl, {\r\n scaleX: 1 / targetScaleX,\r\n scaleY: 1 / targetScaleY\r\n }, mapOrGeoModel);\r\n }\r\n }\r\n if (data) {\r\n data.setItemGraphicEl(dataIdx, regionGroup);\r\n }\r\n else {\r\n var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\r\n getECData(compoundPath).eventData = {\r\n componentType: 'geo',\r\n componentIndex: mapOrGeoModel.componentIndex,\r\n geoIndex: mapOrGeoModel.componentIndex,\r\n name: region.name,\r\n region: (regionModel_1 && regionModel_1.option) || {}\r\n };\r\n }\r\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\r\n groupRegions.push(region);\r\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\r\n enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n regionsGroup.add(regionGroup);\r\n });\r\n this._updateController(mapOrGeoModel, ecModel, api);\r\n this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\r\n };\r\n MapDraw.prototype.remove = function () {\r\n this._regionsGroup.removeAll();\r\n this._backgroundGroup.removeAll();\r\n this._controller.dispose();\r\n this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\r\n this._mapName = null;\r\n this._controllerHost = null;\r\n };\r\n MapDraw.prototype._updateBackground = function (geo) {\r\n var mapName = geo.map;\r\n if (this._mapName !== mapName) {\r\n each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\r\n this._backgroundGroup.add(root);\r\n }, this);\r\n }\r\n this._mapName = mapName;\r\n };\r\n MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\r\n var geo = mapOrGeoModel.coordinateSystem;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\r\n controllerHost.zoom = geo.getZoom();\r\n controller.enable(mapOrGeoModel.get('roam') || false);\r\n var mainType = mapOrGeoModel.mainType;\r\n function makeActionBase() {\r\n var action = {\r\n type: 'geoRoam',\r\n componentType: mainType\r\n };\r\n action[mainType + 'Id'] = mapOrGeoModel.id;\r\n return action;\r\n }\r\n controller.off('pan').on('pan', function (e) {\r\n this._mouseDownFlag = false;\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction(extend(makeActionBase(), {\r\n dx: e.dx,\r\n dy: e.dy\r\n }));\r\n }, this);\r\n controller.off('zoom').on('zoom', function (e) {\r\n this._mouseDownFlag = false;\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction(extend(makeActionBase(), {\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n }));\r\n var group = this.group;\r\n this._regionsGroup.traverse(function (el) {\r\n var textContent = el.getTextContent();\r\n if (textContent) {\r\n textContent.scaleX = 1 / group.scaleX;\r\n textContent.scaleY = 1 / group.scaleY;\r\n textContent.markRedraw();\r\n }\r\n });\r\n }, this);\r\n controller.setPointerChecker(function (e, x, y) {\r\n return geo.getViewRectAfterRoam().contain(x, y)\r\n && !onIrrelevantElement(e, api, mapOrGeoModel);\r\n });\r\n };\r\n MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\r\n var mapDraw = this;\r\n regionsGroup.off('mousedown');\r\n if (mapOrGeoModel.get('selectedMode')) {\r\n regionsGroup.on('mousedown', function () {\r\n mapDraw._mouseDownFlag = true;\r\n });\r\n regionsGroup.on('click', function (e) {\r\n if (!mapDraw._mouseDownFlag) {\r\n return;\r\n }\r\n mapDraw._mouseDownFlag = false;\r\n });\r\n }\r\n };\r\n return MapDraw;\r\n }());\n\n var MapView = (function (_super) {\r\n __extends(MapView, _super);\r\n function MapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MapView.type;\r\n return _this;\r\n }\r\n MapView.prototype.render = function (mapModel, ecModel, api, payload) {\r\n if (payload && payload.type === 'mapToggleSelect'\r\n && payload.from === this.uid) {\r\n return;\r\n }\r\n var group = this.group;\r\n group.removeAll();\r\n if (mapModel.getHostGeoModel()) {\r\n return;\r\n }\r\n if (!(payload && payload.type === 'geoRoam'\r\n && payload.componentType === 'series'\r\n && payload.seriesId === mapModel.id)) {\r\n if (mapModel.needsDrawMap) {\r\n var mapDraw = this._mapDraw || new MapDraw(api);\r\n group.add(mapDraw.group);\r\n mapDraw.draw(mapModel, ecModel, api, this, payload);\r\n this._mapDraw = mapDraw;\r\n }\r\n else {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n }\r\n }\r\n else {\r\n var mapDraw = this._mapDraw;\r\n mapDraw && group.add(mapDraw.group);\r\n }\r\n mapModel.get('showLegendSymbol') && ecModel.getComponent('legend')\r\n && this._renderSymbols(mapModel, ecModel, api);\r\n };\r\n MapView.prototype.remove = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n this.group.removeAll();\r\n };\r\n MapView.prototype.dispose = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n };\r\n MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\r\n var originalData = mapModel.originalData;\r\n var group = this.group;\r\n originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\r\n if (isNaN(value)) {\r\n return;\r\n }\r\n var layout = originalData.getItemLayout(originalDataIndex);\r\n if (!layout || !layout.point) {\r\n return;\r\n }\r\n var point = layout.point;\r\n var offset = layout.offset;\r\n var circle = new Circle({\r\n style: {\r\n fill: mapModel.getData().getVisual('style').fill\r\n },\r\n shape: {\r\n cx: point[0] + offset * 9,\r\n cy: point[1],\r\n r: 3\r\n },\r\n silent: true,\r\n z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\r\n });\r\n if (!offset) {\r\n var fullData = mapModel.mainSeries.getData();\r\n var name_1 = originalData.getName(originalDataIndex);\r\n var fullIndex_1 = fullData.indexOfName(name_1);\r\n var itemModel = originalData.getItemModel(originalDataIndex);\r\n var labelModel = itemModel.getModel('label');\r\n var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\r\n setLabelStyle(circle, getLabelStatesModels(itemModel), {\r\n labelFetcher: {\r\n getFormattedLabel: function (idx, state) {\r\n return mapModel.getFormattedLabel(fullIndex_1, state);\r\n }\r\n }\r\n });\r\n circle.disableLabelAnimation = true;\r\n if (!labelModel.get('position')) {\r\n circle.setTextConfig({\r\n position: 'bottom'\r\n });\r\n }\r\n regionGroup.onHoverStateChange = function (toState) {\r\n circle.useState(toState);\r\n };\r\n }\r\n group.add(circle);\r\n });\r\n };\r\n MapView.type = 'map';\r\n return MapView;\r\n }(ChartView));\r\n ChartView.registerClass(MapView);\n\n function updateCenterAndZoom(view, payload, zoomLimit) {\r\n var previousZoom = view.getZoom();\r\n var center = view.getCenter();\r\n var zoom = payload.zoom;\r\n var point = view.dataToPoint(center);\r\n if (payload.dx != null && payload.dy != null) {\r\n point[0] -= payload.dx;\r\n point[1] -= payload.dy;\r\n view.setCenter(view.pointToData(point));\r\n }\r\n if (zoom != null) {\r\n if (zoomLimit) {\r\n var zoomMin = zoomLimit.min || 0;\r\n var zoomMax = zoomLimit.max || Infinity;\r\n zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\r\n }\r\n view.scaleX *= zoom;\r\n view.scaleY *= zoom;\r\n var fixX = (payload.originX - view.x) * (zoom - 1);\r\n var fixY = (payload.originY - view.y) * (zoom - 1);\r\n view.x -= fixX;\r\n view.y -= fixY;\r\n view.updateTransform();\r\n view.setCenter(view.pointToData(point));\r\n view.setZoom(zoom * previousZoom);\r\n }\r\n return {\r\n center: view.getCenter(),\r\n zoom: view.getZoom()\r\n };\r\n }\n\n registerAction({\r\n type: 'geoRoam',\r\n event: 'geoRoam',\r\n update: 'updateTransform'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n var geo = componentModel.coordinateSystem;\r\n if (geo.type !== 'geo') {\r\n return;\r\n }\r\n var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\r\n componentModel.setCenter\r\n && componentModel.setCenter(res.center);\r\n componentModel.setZoom\r\n && componentModel.setZoom(res.zoom);\r\n if (componentType === 'series') {\r\n each(componentModel.seriesGroup, function (seriesModel) {\r\n seriesModel.setCenter(res.center);\r\n seriesModel.setZoom(res.zoom);\r\n });\r\n }\r\n });\r\n });\n\n var v2ApplyTransform = applyTransform;\r\n var View = (function (_super) {\r\n __extends(View, _super);\r\n function View(name) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'view';\r\n _this.dimensions = ['x', 'y'];\r\n _this._roamTransformable = new Transformable();\r\n _this._rawTransformable = new Transformable();\r\n _this.name = name;\r\n return _this;\r\n }\r\n View.prototype.setBoundingRect = function (x, y, width, height) {\r\n this._rect = new BoundingRect(x, y, width, height);\r\n return this._rect;\r\n };\r\n View.prototype.getBoundingRect = function () {\r\n return this._rect;\r\n };\r\n View.prototype.setViewRect = function (x, y, width, height) {\r\n this.transformTo(x, y, width, height);\r\n this._viewRect = new BoundingRect(x, y, width, height);\r\n };\r\n View.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var rawTransform = this._rawTransformable;\r\n rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\r\n rawTransform.decomposeTransform();\r\n this._updateTransform();\r\n };\r\n View.prototype.setCenter = function (centerCoord) {\r\n if (!centerCoord) {\r\n return;\r\n }\r\n this._center = centerCoord;\r\n this._updateCenterAndZoom();\r\n };\r\n View.prototype.setZoom = function (zoom) {\r\n zoom = zoom || 1;\r\n var zoomLimit = this.zoomLimit;\r\n if (zoomLimit) {\r\n if (zoomLimit.max != null) {\r\n zoom = Math.min(zoomLimit.max, zoom);\r\n }\r\n if (zoomLimit.min != null) {\r\n zoom = Math.max(zoomLimit.min, zoom);\r\n }\r\n }\r\n this._zoom = zoom;\r\n this._updateCenterAndZoom();\r\n };\r\n View.prototype.getDefaultCenter = function () {\r\n var rawRect = this.getBoundingRect();\r\n var cx = rawRect.x + rawRect.width / 2;\r\n var cy = rawRect.y + rawRect.height / 2;\r\n return [cx, cy];\r\n };\r\n View.prototype.getCenter = function () {\r\n return this._center || this.getDefaultCenter();\r\n };\r\n View.prototype.getZoom = function () {\r\n return this._zoom || 1;\r\n };\r\n View.prototype.getRoamTransform = function () {\r\n return this._roamTransformable.getLocalTransform();\r\n };\r\n View.prototype._updateCenterAndZoom = function () {\r\n var rawTransformMatrix = this._rawTransformable.getLocalTransform();\r\n var roamTransform = this._roamTransformable;\r\n var defaultCenter = this.getDefaultCenter();\r\n var center = this.getCenter();\r\n var zoom = this.getZoom();\r\n center = applyTransform([], center, rawTransformMatrix);\r\n defaultCenter = applyTransform([], defaultCenter, rawTransformMatrix);\r\n roamTransform.originX = center[0];\r\n roamTransform.originY = center[1];\r\n roamTransform.x = defaultCenter[0] - center[0];\r\n roamTransform.y = defaultCenter[1] - center[1];\r\n roamTransform.scaleX = roamTransform.scaleY = zoom;\r\n this._updateTransform();\r\n };\r\n View.prototype._updateTransform = function () {\r\n var roamTransformable = this._roamTransformable;\r\n var rawTransformable = this._rawTransformable;\r\n rawTransformable.parent = roamTransformable;\r\n roamTransformable.updateTransform();\r\n rawTransformable.updateTransform();\r\n copy$1(this.transform || (this.transform = []), rawTransformable.transform || create$1());\r\n this._rawTransform = rawTransformable.getLocalTransform();\r\n this.invTransform = this.invTransform || [];\r\n invert(this.invTransform, this.transform);\r\n this.decomposeTransform();\r\n };\r\n View.prototype.getTransformInfo = function () {\r\n var roamTransform = this._roamTransformable.transform;\r\n var rawTransformable = this._rawTransformable;\r\n return {\r\n roamTransform: roamTransform ? slice(roamTransform) : create$1(),\r\n rawScaleX: rawTransformable.scaleX,\r\n rawScaleY: rawTransformable.scaleY,\r\n rawX: rawTransformable.x,\r\n rawY: rawTransformable.y\r\n };\r\n };\r\n View.prototype.getViewRect = function () {\r\n return this._viewRect;\r\n };\r\n View.prototype.getViewRectAfterRoam = function () {\r\n var rect = this.getBoundingRect().clone();\r\n rect.applyTransform(this.transform);\r\n return rect;\r\n };\r\n View.prototype.dataToPoint = function (data, noRoam, out) {\r\n var transform = noRoam ? this._rawTransform : this.transform;\r\n out = out || [];\r\n return transform\r\n ? v2ApplyTransform(out, data, transform)\r\n : copy(out, data);\r\n };\r\n View.prototype.pointToData = function (point) {\r\n var invTransform = this.invTransform;\r\n return invTransform\r\n ? v2ApplyTransform([], point, invTransform)\r\n : [point[0], point[1]];\r\n };\r\n View.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n View.prototype.containPoint = function (point) {\r\n return this.getViewRectAfterRoam().contain(point[0], point[1]);\r\n };\r\n View.dimensions = ['x', 'y'];\r\n return View;\r\n }(Transformable));\r\n function getCoordSys(finder) {\r\n var seriesModel = finder.seriesModel;\r\n return seriesModel ? seriesModel.coordinateSystem : null;\r\n }\n\n var Geo = (function (_super) {\r\n __extends(Geo, _super);\r\n function Geo(name, map, nameMap, invertLongitute) {\r\n var _this = _super.call(this, name) || this;\r\n _this.dimensions = ['lng', 'lat'];\r\n _this.type = 'geo';\r\n _this.map = map;\r\n var source = geoSourceManager.load(map, nameMap);\r\n _this._nameCoordMap = source.nameCoordMap;\r\n _this._regionsMap = source.regionsMap;\r\n _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\r\n _this.regions = source.regions;\r\n _this._rect = source.boundingRect;\r\n return _this;\r\n }\r\n Geo.prototype.containCoord = function (coord) {\r\n var regions = this.regions;\r\n for (var i = 0; i < regions.length; i++) {\r\n if (regions[i].contain(coord)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Geo.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var invertLongitute = this._invertLongitute;\r\n rect = rect.clone();\r\n if (invertLongitute) {\r\n rect.y = -rect.y - rect.height;\r\n }\r\n var rawTransformable = this._rawTransformable;\r\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\r\n rawTransformable.decomposeTransform();\r\n if (invertLongitute) {\r\n rawTransformable.scaleY = -rawTransformable.scaleY;\r\n }\r\n rawTransformable.updateTransform();\r\n this._updateTransform();\r\n };\r\n Geo.prototype.getRegion = function (name) {\r\n return this._regionsMap.get(name);\r\n };\r\n Geo.prototype.getRegionByCoord = function (coord) {\r\n var regions = this.regions;\r\n for (var i = 0; i < regions.length; i++) {\r\n if (regions[i].contain(coord)) {\r\n return regions[i];\r\n }\r\n }\r\n };\r\n Geo.prototype.addGeoCoord = function (name, geoCoord) {\r\n this._nameCoordMap.set(name, geoCoord);\r\n };\r\n Geo.prototype.getGeoCoord = function (name) {\r\n return this._nameCoordMap.get(name);\r\n };\r\n Geo.prototype.getBoundingRect = function () {\r\n return this._rect;\r\n };\r\n Geo.prototype.dataToPoint = function (data, noRoam, out) {\r\n if (typeof data === 'string') {\r\n data = this.getGeoCoord(data);\r\n }\r\n if (data) {\r\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\r\n }\r\n };\r\n Geo.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$1(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$1(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n return Geo;\r\n }(View));\r\n mixin(Geo, View);\r\n function getCoordSys$1(finder) {\r\n var geoModel = finder.geoModel;\r\n var seriesModel = finder.seriesModel;\r\n return geoModel\r\n ? geoModel.coordinateSystem\r\n : seriesModel\r\n ? (seriesModel.coordinateSystem\r\n || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem)\r\n : null;\r\n }\n\n function resizeGeo(geoModel, api) {\r\n var boundingCoords = geoModel.get('boundingCoords');\r\n if (boundingCoords != null) {\r\n var leftTop = boundingCoords[0];\r\n var rightBottom = boundingCoords[1];\r\n if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\r\n if (__DEV__) {\r\n console.error('Invalid boundingCoords');\r\n }\r\n }\r\n else {\r\n this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\r\n }\r\n }\r\n var rect = this.getBoundingRect();\r\n var center = geoModel.get('layoutCenter');\r\n var size = geoModel.get('layoutSize');\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n var aspect = rect.width / rect.height * this.aspectScale;\r\n var useCenterAndSize = false;\r\n if (center && size) {\r\n center = [\r\n parsePercent$2(center[0], viewWidth),\r\n parsePercent$2(center[1], viewHeight)\r\n ];\r\n size = parsePercent$2(size, Math.min(viewWidth, viewHeight));\r\n if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\r\n useCenterAndSize = true;\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\r\n }\r\n }\r\n }\r\n var viewRect;\r\n if (useCenterAndSize) {\r\n viewRect = {};\r\n if (aspect > 1) {\r\n viewRect.width = size;\r\n viewRect.height = size / aspect;\r\n }\r\n else {\r\n viewRect.height = size;\r\n viewRect.width = size * aspect;\r\n }\r\n viewRect.y = center[1] - viewRect.height / 2;\r\n viewRect.x = center[0] - viewRect.width / 2;\r\n }\r\n else {\r\n var boxLayoutOption = geoModel.getBoxLayoutParams();\r\n boxLayoutOption.aspect = aspect;\r\n viewRect = getLayoutRect(boxLayoutOption, {\r\n width: viewWidth,\r\n height: viewHeight\r\n });\r\n }\r\n this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n this.setCenter(geoModel.get('center'));\r\n this.setZoom(geoModel.get('zoom'));\r\n }\r\n function setGeoCoords(geo, model) {\r\n each(model.get('geoCoord'), function (geoCoord, name) {\r\n geo.addGeoCoord(name, geoCoord);\r\n });\r\n }\r\n var GeoCreator = (function () {\r\n function GeoCreator() {\r\n this.dimensions = Geo.prototype.dimensions;\r\n }\r\n GeoCreator.prototype.create = function (ecModel, api) {\r\n var geoList = [];\r\n ecModel.eachComponent('geo', function (geoModel, idx) {\r\n var name = geoModel.get('map');\r\n var aspectScale = geoModel.get('aspectScale');\r\n var invertLongitute = true;\r\n var mapRecords = mapDataStorage.retrieveMap(name);\r\n if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\r\n aspectScale == null && (aspectScale = 1);\r\n invertLongitute = false;\r\n }\r\n else {\r\n aspectScale == null && (aspectScale = 0.75);\r\n }\r\n var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\r\n geo.aspectScale = aspectScale;\r\n geo.zoomLimit = geoModel.get('scaleLimit');\r\n geoList.push(geo);\r\n geoModel.coordinateSystem = geo;\r\n geo.model = geoModel;\r\n geo.resize = resizeGeo;\r\n geo.resize(geoModel, api);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.get('coordinateSystem');\r\n if (coordSys === 'geo') {\r\n var geoIndex = seriesModel.get('geoIndex') || 0;\r\n seriesModel.coordinateSystem = geoList[geoIndex];\r\n }\r\n });\r\n var mapModelGroupBySeries = {};\r\n ecModel.eachSeriesByType('map', function (seriesModel) {\r\n if (!seriesModel.getHostGeoModel()) {\r\n var mapType = seriesModel.getMapType();\r\n mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\r\n mapModelGroupBySeries[mapType].push(seriesModel);\r\n }\r\n });\r\n each(mapModelGroupBySeries, function (mapSeries, mapType) {\r\n var nameMapList = map(mapSeries, function (singleMapSeries) {\r\n return singleMapSeries.get('nameMap');\r\n });\r\n var geo = new Geo(mapType, mapType, mergeAll(nameMapList));\r\n geo.zoomLimit = retrieve.apply(null, map(mapSeries, function (singleMapSeries) {\r\n return singleMapSeries.get('scaleLimit');\r\n }));\r\n geoList.push(geo);\r\n geo.resize = resizeGeo;\r\n geo.aspectScale = mapSeries[0].get('aspectScale');\r\n geo.resize(mapSeries[0], api);\r\n each(mapSeries, function (singleMapSeries) {\r\n singleMapSeries.coordinateSystem = geo;\r\n setGeoCoords(geo, singleMapSeries);\r\n });\r\n });\r\n return geoList;\r\n };\r\n GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\r\n var regionsArr = (originRegionArr || []).slice();\r\n var dataNameMap = createHashMap();\r\n for (var i = 0; i < regionsArr.length; i++) {\r\n dataNameMap.set(regionsArr[i].name, regionsArr[i]);\r\n }\r\n var source = geoSourceManager.load(mapName, nameMap);\r\n each(source.regions, function (region) {\r\n var name = region.name;\r\n !dataNameMap.get(name) && regionsArr.push({ name: name });\r\n });\r\n return regionsArr;\r\n };\r\n return GeoCreator;\r\n }());\r\n var geoCreator = new GeoCreator();\r\n registerCoordinateSystem('geo', geoCreator);\n\n function mapSymbolLayout (ecModel) {\r\n var processedMapType = {};\r\n ecModel.eachSeriesByType('map', function (mapSeries) {\r\n var mapType = mapSeries.getMapType();\r\n if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\r\n return;\r\n }\r\n var mapSymbolOffsets = {};\r\n each(mapSeries.seriesGroup, function (subMapSeries) {\r\n var geo = subMapSeries.coordinateSystem;\r\n var data = subMapSeries.originalData;\r\n if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\r\n data.each(data.mapDimension('value'), function (value, idx) {\r\n var name = data.getName(idx);\r\n var region = geo.getRegion(name);\r\n if (!region || isNaN(value)) {\r\n return;\r\n }\r\n var offset = mapSymbolOffsets[name] || 0;\r\n var point = geo.dataToPoint(region.center);\r\n mapSymbolOffsets[name] = offset + 1;\r\n data.setItemLayout(idx, {\r\n point: point,\r\n offset: offset\r\n });\r\n });\r\n }\r\n });\r\n var data = mapSeries.getData();\r\n data.each(function (idx) {\r\n var name = data.getName(idx);\r\n var layout = data.getItemLayout(idx) || {};\r\n layout.showLabel = !mapSymbolOffsets[name];\r\n data.setItemLayout(idx, layout);\r\n });\r\n processedMapType[mapType] = true;\r\n });\r\n }\n\n function dataStatistics(datas, statisticType) {\r\n var dataNameMap = {};\r\n each(datas, function (data) {\r\n data.each(data.mapDimension('value'), function (value, idx) {\r\n var mapKey = 'ec-' + data.getName(idx);\r\n dataNameMap[mapKey] = dataNameMap[mapKey] || [];\r\n if (!isNaN(value)) {\r\n dataNameMap[mapKey].push(value);\r\n }\r\n });\r\n });\r\n return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\r\n var mapKey = 'ec-' + datas[0].getName(idx);\r\n var sum = 0;\r\n var min = Infinity;\r\n var max = -Infinity;\r\n var len = dataNameMap[mapKey].length;\r\n for (var i = 0; i < len; i++) {\r\n min = Math.min(min, dataNameMap[mapKey][i]);\r\n max = Math.max(max, dataNameMap[mapKey][i]);\r\n sum += dataNameMap[mapKey][i];\r\n }\r\n var result;\r\n if (statisticType === 'min') {\r\n result = min;\r\n }\r\n else if (statisticType === 'max') {\r\n result = max;\r\n }\r\n else if (statisticType === 'average') {\r\n result = sum / len;\r\n }\r\n else {\r\n result = sum;\r\n }\r\n return len === 0 ? NaN : result;\r\n });\r\n }\r\n function mapDataStatistic (ecModel) {\r\n var seriesGroups = {};\r\n ecModel.eachSeriesByType('map', function (seriesModel) {\r\n var hostGeoModel = seriesModel.getHostGeoModel();\r\n var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\r\n (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\r\n });\r\n each(seriesGroups, function (seriesList, key) {\r\n var data = dataStatistics(map(seriesList, function (seriesModel) {\r\n return seriesModel.getData();\r\n }), seriesList[0].get('mapValueCalculation'));\r\n for (var i = 0; i < seriesList.length; i++) {\r\n seriesList[i].originalData = seriesList[i].getData();\r\n }\r\n for (var i = 0; i < seriesList.length; i++) {\r\n seriesList[i].seriesGroup = seriesList;\r\n seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\r\n seriesList[i].setData(data.cloneShallow());\r\n seriesList[i].mainSeries = seriesList[0];\r\n }\r\n });\r\n }\n\n registerLayout(mapSymbolLayout);\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\r\n createLegacyDataSelectAction('map', registerAction);\n\n var inner$9 = makeInner();\r\n function linkList(opt) {\r\n var mainData = opt.mainData;\r\n var datas = opt.datas;\r\n if (!datas) {\r\n datas = { main: mainData };\r\n opt.datasAttr = { main: 'data' };\r\n }\r\n opt.datas = opt.mainData = null;\r\n linkAll(mainData, datas, opt);\r\n each(datas, function (data) {\r\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(transferInjection, opt));\r\n });\r\n });\r\n mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\r\n each(mainData.CHANGABLE_METHODS, function (methodName) {\r\n mainData.wrapMethod(methodName, curry(changeInjection, opt));\r\n });\r\n assert(datas[mainData.dataType] === mainData);\r\n }\r\n function transferInjection(opt, res) {\r\n if (isMainData(this)) {\r\n var datas = extend({}, inner$9(this).datas);\r\n datas[this.dataType] = res;\r\n linkAll(res, datas, opt);\r\n }\r\n else {\r\n linkSingle(res, this.dataType, inner$9(this).mainData, opt);\r\n }\r\n return res;\r\n }\r\n function changeInjection(opt, res) {\r\n opt.struct && opt.struct.update();\r\n return res;\r\n }\r\n function cloneShallowInjection(opt, res) {\r\n each(inner$9(res).datas, function (data, dataType) {\r\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\r\n });\r\n return res;\r\n }\r\n function getLinkedData(dataType) {\r\n var mainData = inner$9(this).mainData;\r\n return (dataType == null || mainData == null)\r\n ? mainData\r\n : inner$9(mainData).datas[dataType];\r\n }\r\n function getLinkedDataAll() {\r\n var mainData = inner$9(this).mainData;\r\n return (mainData == null)\r\n ? [{ data: mainData }]\r\n : map(keys(inner$9(mainData).datas), function (type) {\r\n return {\r\n type: type,\r\n data: inner$9(mainData).datas[type]\r\n };\r\n });\r\n }\r\n function isMainData(data) {\r\n return inner$9(data).mainData === data;\r\n }\r\n function linkAll(mainData, datas, opt) {\r\n inner$9(mainData).datas = {};\r\n each(datas, function (data, dataType) {\r\n linkSingle(data, dataType, mainData, opt);\r\n });\r\n }\r\n function linkSingle(data, dataType, mainData, opt) {\r\n inner$9(mainData).datas[dataType] = data;\r\n inner$9(data).mainData = mainData;\r\n data.dataType = dataType;\r\n if (opt.struct) {\r\n data[opt.structAttr] = opt.struct;\r\n opt.struct[opt.datasAttr[dataType]] = data;\r\n }\r\n data.getLinkedData = getLinkedData;\r\n data.getLinkedDataAll = getLinkedDataAll;\r\n }\n\n var TreeNode = (function () {\r\n function TreeNode(name, hostTree) {\r\n this.depth = 0;\r\n this.height = 0;\r\n this.dataIndex = -1;\r\n this.children = [];\r\n this.viewChildren = [];\r\n this.isExpand = false;\r\n this.name = name || '';\r\n this.hostTree = hostTree;\r\n }\r\n TreeNode.prototype.isRemoved = function () {\r\n return this.dataIndex < 0;\r\n };\r\n TreeNode.prototype.eachNode = function (options, cb, context) {\r\n if (typeof options === 'function') {\r\n context = cb;\r\n cb = options;\r\n options = null;\r\n }\r\n options = options || {};\r\n if (isString(options)) {\r\n options = { order: options };\r\n }\r\n var order = options.order || 'preorder';\r\n var children = this[options.attr || 'children'];\r\n var suppressVisitSub;\r\n order === 'preorder' && (suppressVisitSub = cb.call(context, this));\r\n for (var i = 0; !suppressVisitSub && i < children.length; i++) {\r\n children[i].eachNode(options, cb, context);\r\n }\r\n order === 'postorder' && cb.call(context, this);\r\n };\r\n TreeNode.prototype.updateDepthAndHeight = function (depth) {\r\n var height = 0;\r\n this.depth = depth;\r\n for (var i = 0; i < this.children.length; i++) {\r\n var child = this.children[i];\r\n child.updateDepthAndHeight(depth + 1);\r\n if (child.height > height) {\r\n height = child.height;\r\n }\r\n }\r\n this.height = height + 1;\r\n };\r\n TreeNode.prototype.getNodeById = function (id) {\r\n if (this.getId() === id) {\r\n return this;\r\n }\r\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\r\n var res = children[i].getNodeById(id);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n };\r\n TreeNode.prototype.contains = function (node) {\r\n if (node === this) {\r\n return true;\r\n }\r\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\r\n var res = children[i].contains(node);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n };\r\n TreeNode.prototype.getAncestors = function (includeSelf) {\r\n var ancestors = [];\r\n var node = includeSelf ? this : this.parentNode;\r\n while (node) {\r\n ancestors.push(node);\r\n node = node.parentNode;\r\n }\r\n ancestors.reverse();\r\n return ancestors;\r\n };\r\n TreeNode.prototype.getAncestorsIndices = function () {\r\n var indices = [];\r\n var currNode = this;\r\n while (currNode) {\r\n indices.push(currNode.dataIndex);\r\n currNode = currNode.parentNode;\r\n }\r\n indices.reverse();\r\n return indices;\r\n };\r\n TreeNode.prototype.getDescendantIndices = function () {\r\n var indices = [];\r\n this.eachNode(function (childNode) {\r\n indices.push(childNode.dataIndex);\r\n });\r\n return indices;\r\n };\r\n TreeNode.prototype.getValue = function (dimension) {\r\n var data = this.hostTree.data;\r\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\r\n };\r\n TreeNode.prototype.setLayout = function (layout, merge) {\r\n this.dataIndex >= 0\r\n && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\r\n };\r\n TreeNode.prototype.getLayout = function () {\r\n return this.hostTree.data.getItemLayout(this.dataIndex);\r\n };\r\n TreeNode.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var hostTree = this.hostTree;\r\n var itemModel = hostTree.data.getItemModel(this.dataIndex);\r\n var levelModel = this.getLevelModel();\r\n if (levelModel) {\r\n return itemModel.getModel(path, levelModel.getModel(path));\r\n }\r\n else {\r\n return itemModel.getModel(path);\r\n }\r\n };\r\n TreeNode.prototype.getLevelModel = function () {\r\n return (this.hostTree.levelModels || [])[this.depth];\r\n };\r\n TreeNode.prototype.setVisual = function (key, value) {\r\n this.dataIndex >= 0\r\n && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\r\n };\r\n TreeNode.prototype.getVisual = function (key) {\r\n return this.hostTree.data.getItemVisual(this.dataIndex, key);\r\n };\r\n TreeNode.prototype.getRawIndex = function () {\r\n return this.hostTree.data.getRawIndex(this.dataIndex);\r\n };\r\n TreeNode.prototype.getId = function () {\r\n return this.hostTree.data.getId(this.dataIndex);\r\n };\r\n TreeNode.prototype.isAncestorOf = function (node) {\r\n var parent = node.parentNode;\r\n while (parent) {\r\n if (parent === this) {\r\n return true;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return false;\r\n };\r\n TreeNode.prototype.isDescendantOf = function (node) {\r\n return node !== this && node.isAncestorOf(this);\r\n };\r\n return TreeNode;\r\n }());\r\n var Tree = (function () {\r\n function Tree(hostModel, levelOptions) {\r\n this.type = 'tree';\r\n this._nodes = [];\r\n this.hostModel = hostModel;\r\n this.levelModels = map(levelOptions || [], function (levelDefine) {\r\n return new Model(levelDefine, hostModel, hostModel.ecModel);\r\n });\r\n }\r\n Tree.prototype.eachNode = function (options, cb, context) {\r\n this.root.eachNode(options, cb, context);\r\n };\r\n Tree.prototype.getNodeByDataIndex = function (dataIndex) {\r\n var rawIndex = this.data.getRawIndex(dataIndex);\r\n return this._nodes[rawIndex];\r\n };\r\n Tree.prototype.getNodeById = function (name) {\r\n return this.root.getNodeById(name);\r\n };\r\n Tree.prototype.update = function () {\r\n var data = this.data;\r\n var nodes = this._nodes;\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n nodes[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n nodes[data.getRawIndex(i)].dataIndex = i;\r\n }\r\n };\r\n Tree.prototype.clearLayouts = function () {\r\n this.data.clearItemLayouts();\r\n };\r\n Tree.createTree = function (dataRoot, hostModel, treeOptions, beforeLink) {\r\n var tree = new Tree(hostModel, treeOptions && treeOptions.levels);\r\n var listData = [];\r\n var dimMax = 1;\r\n buildHierarchy(dataRoot);\r\n function buildHierarchy(dataNode, parentNode) {\r\n var value = dataNode.value;\r\n dimMax = Math.max(dimMax, isArray(value) ? value.length : 1);\r\n listData.push(dataNode);\r\n var node = new TreeNode(dataNode.name, tree);\r\n parentNode\r\n ? addChild(node, parentNode)\r\n : (tree.root = node);\r\n tree._nodes.push(node);\r\n var children = dataNode.children;\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n buildHierarchy(children[i], node);\r\n }\r\n }\r\n }\r\n tree.root.updateDepthAndHeight(0);\r\n var dimensionsInfo = createDimensions(listData, {\r\n coordDimensions: ['value'],\r\n dimensionsCount: dimMax\r\n });\r\n var list = new List(dimensionsInfo, hostModel);\r\n list.initData(listData);\r\n beforeLink && beforeLink(list);\r\n linkList({\r\n mainData: list,\r\n struct: tree,\r\n structAttr: 'tree'\r\n });\r\n tree.update();\r\n return tree;\r\n };\r\n return Tree;\r\n }());\r\n function addChild(child, node) {\r\n var children = node.children;\r\n if (child.parentNode === node) {\r\n return;\r\n }\r\n children.push(child);\r\n child.parentNode = node;\r\n }\n\n var TreeSeriesModel = (function (_super) {\r\n __extends(TreeSeriesModel, _super);\r\n function TreeSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.hasSymbolVisual = true;\r\n _this.ignoreStyleOnData = true;\r\n return _this;\r\n }\r\n TreeSeriesModel.prototype.getInitialData = function (option) {\r\n var root = {\r\n name: option.name,\r\n children: option.data\r\n };\r\n var leaves = option.leaves || {};\r\n var leavesModel = new Model(leaves, this, this.ecModel);\r\n var tree = Tree.createTree(root, this, {}, beforeLink);\r\n function beforeLink(nodeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var node = tree.getNodeByDataIndex(idx);\r\n if (!node.children.length || !node.isExpand) {\r\n model.parentModel = leavesModel;\r\n }\r\n return model;\r\n });\r\n }\r\n var treeDepth = 0;\r\n tree.eachNode('preorder', function (node) {\r\n if (node.depth > treeDepth) {\r\n treeDepth = node.depth;\r\n }\r\n });\r\n var expandAndCollapse = option.expandAndCollapse;\r\n var expandTreeDepth = (expandAndCollapse && option.initialTreeDepth >= 0)\r\n ? option.initialTreeDepth : treeDepth;\r\n tree.root.eachNode('preorder', function (node) {\r\n var item = node.hostTree.data.getRawDataItem(node.dataIndex);\r\n node.isExpand = (item && item.collapsed != null)\r\n ? !item.collapsed\r\n : node.depth <= expandTreeDepth;\r\n });\r\n return tree.data;\r\n };\r\n TreeSeriesModel.prototype.getOrient = function () {\r\n var orient = this.get('orient');\r\n if (orient === 'horizontal') {\r\n orient = 'LR';\r\n }\r\n else if (orient === 'vertical') {\r\n orient = 'TB';\r\n }\r\n return orient;\r\n };\r\n TreeSeriesModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n TreeSeriesModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var tree = this.getData().tree;\r\n var realRoot = tree.root.children[0];\r\n var node = tree.getNodeByDataIndex(dataIndex);\r\n var value = node.getValue();\r\n var name = node.name;\r\n while (node && (node !== realRoot)) {\r\n name = node.parentNode.name + '.' + name;\r\n node = node.parentNode;\r\n }\r\n if (renderMode === 'richText') {\r\n return encodeHTML(name) + ': ' + ((isNaN(value) || value == null) ? '' : value);\r\n }\r\n return '
'\r\n + concatTooltipHtml(name, (isNaN(value) || value == null) ? '' : value)\r\n + '
';\r\n };\r\n TreeSeriesModel.type = 'series.tree';\r\n TreeSeriesModel.layoutMode = 'box';\r\n TreeSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n left: '12%',\r\n top: '12%',\r\n right: '12%',\r\n bottom: '12%',\r\n layout: 'orthogonal',\r\n edgeShape: 'curve',\r\n edgeForkPosition: '50%',\r\n roam: false,\r\n nodeScaleRatio: 0.4,\r\n center: null,\r\n zoom: 1,\r\n orient: 'LR',\r\n symbol: 'emptyCircle',\r\n symbolSize: 7,\r\n expandAndCollapse: true,\r\n initialTreeDepth: 2,\r\n lineStyle: {\r\n color: '#ccc',\r\n width: 1.5,\r\n curveness: 0.5\r\n },\r\n itemStyle: {\r\n color: 'lightsteelblue',\r\n borderColor: '#c23531',\r\n borderWidth: 1.5\r\n },\r\n label: {\r\n show: true\r\n },\r\n animationEasing: 'linear',\r\n animationDuration: 700,\r\n animationDurationUpdate: 500\r\n };\r\n return TreeSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(TreeSeriesModel);\n\n function init$2(inRoot) {\r\n var root = inRoot;\r\n root.hierNode = {\r\n defaultAncestor: null,\r\n ancestor: root,\r\n prelim: 0,\r\n modifier: 0,\r\n change: 0,\r\n shift: 0,\r\n i: 0,\r\n thread: null\r\n };\r\n var nodes = [root];\r\n var node;\r\n var children;\r\n while (node = nodes.pop()) {\r\n children = node.children;\r\n if (node.isExpand && children.length) {\r\n var n = children.length;\r\n for (var i = n - 1; i >= 0; i--) {\r\n var child = children[i];\r\n child.hierNode = {\r\n defaultAncestor: null,\r\n ancestor: child,\r\n prelim: 0,\r\n modifier: 0,\r\n change: 0,\r\n shift: 0,\r\n i: i,\r\n thread: null\r\n };\r\n nodes.push(child);\r\n }\r\n }\r\n }\r\n }\r\n function firstWalk(node, separation) {\r\n var children = node.isExpand ? node.children : [];\r\n var siblings = node.parentNode.children;\r\n var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\r\n if (children.length) {\r\n executeShifts(node);\r\n var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\r\n if (subtreeW) {\r\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\r\n node.hierNode.modifier = node.hierNode.prelim - midPoint;\r\n }\r\n else {\r\n node.hierNode.prelim = midPoint;\r\n }\r\n }\r\n else if (subtreeW) {\r\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\r\n }\r\n node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\r\n }\r\n function secondWalk(node) {\r\n var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\r\n node.setLayout({ x: nodeX }, true);\r\n node.hierNode.modifier += node.parentNode.hierNode.modifier;\r\n }\r\n function separation(cb) {\r\n return arguments.length ? cb : defaultSeparation;\r\n }\r\n function radialCoordinate(rad, r) {\r\n rad -= Math.PI / 2;\r\n return {\r\n x: r * Math.cos(rad),\r\n y: r * Math.sin(rad)\r\n };\r\n }\r\n function getViewRect$1(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function executeShifts(node) {\r\n var children = node.children;\r\n var n = children.length;\r\n var shift = 0;\r\n var change = 0;\r\n while (--n >= 0) {\r\n var child = children[n];\r\n child.hierNode.prelim += shift;\r\n child.hierNode.modifier += shift;\r\n change += child.hierNode.change;\r\n shift += child.hierNode.shift + change;\r\n }\r\n }\r\n function apportion(subtreeV, subtreeW, ancestor, separation) {\r\n if (subtreeW) {\r\n var nodeOutRight = subtreeV;\r\n var nodeInRight = subtreeV;\r\n var nodeOutLeft = nodeInRight.parentNode.children[0];\r\n var nodeInLeft = subtreeW;\r\n var sumOutRight = nodeOutRight.hierNode.modifier;\r\n var sumInRight = nodeInRight.hierNode.modifier;\r\n var sumOutLeft = nodeOutLeft.hierNode.modifier;\r\n var sumInLeft = nodeInLeft.hierNode.modifier;\r\n while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\r\n nodeOutRight = nextRight(nodeOutRight);\r\n nodeOutLeft = nextLeft(nodeOutLeft);\r\n nodeOutRight.hierNode.ancestor = subtreeV;\r\n var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim\r\n - sumInRight + separation(nodeInLeft, nodeInRight);\r\n if (shift > 0) {\r\n moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\r\n sumInRight += shift;\r\n sumOutRight += shift;\r\n }\r\n sumInLeft += nodeInLeft.hierNode.modifier;\r\n sumInRight += nodeInRight.hierNode.modifier;\r\n sumOutRight += nodeOutRight.hierNode.modifier;\r\n sumOutLeft += nodeOutLeft.hierNode.modifier;\r\n }\r\n if (nodeInLeft && !nextRight(nodeOutRight)) {\r\n nodeOutRight.hierNode.thread = nodeInLeft;\r\n nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\r\n }\r\n if (nodeInRight && !nextLeft(nodeOutLeft)) {\r\n nodeOutLeft.hierNode.thread = nodeInRight;\r\n nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\r\n ancestor = subtreeV;\r\n }\r\n }\r\n return ancestor;\r\n }\r\n function nextRight(node) {\r\n var children = node.children;\r\n return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\r\n }\r\n function nextLeft(node) {\r\n var children = node.children;\r\n return children.length && node.isExpand ? children[0] : node.hierNode.thread;\r\n }\r\n function nextAncestor(nodeInLeft, node, ancestor) {\r\n return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode\r\n ? nodeInLeft.hierNode.ancestor : ancestor;\r\n }\r\n function moveSubtree(wl, wr, shift) {\r\n var change = shift / (wr.hierNode.i - wl.hierNode.i);\r\n wr.hierNode.change -= change;\r\n wr.hierNode.shift += shift;\r\n wr.hierNode.modifier += shift;\r\n wr.hierNode.prelim += shift;\r\n wl.hierNode.change += change;\r\n }\r\n function defaultSeparation(node1, node2) {\r\n return node1.parentNode === node2.parentNode ? 1 : 2;\r\n }\n\n var TreeEdgeShape = (function () {\r\n function TreeEdgeShape() {\r\n this.parentPoint = [];\r\n this.childPoints = [];\r\n }\r\n return TreeEdgeShape;\r\n }());\r\n var TreePath = (function (_super) {\r\n __extends(TreePath, _super);\r\n function TreePath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n TreePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n TreePath.prototype.getDefaultShape = function () {\r\n return new TreeEdgeShape();\r\n };\r\n TreePath.prototype.buildPath = function (ctx, shape) {\r\n var childPoints = shape.childPoints;\r\n var childLen = childPoints.length;\r\n var parentPoint = shape.parentPoint;\r\n var firstChildPos = childPoints[0];\r\n var lastChildPos = childPoints[childLen - 1];\r\n if (childLen === 1) {\r\n ctx.moveTo(parentPoint[0], parentPoint[1]);\r\n ctx.lineTo(firstChildPos[0], firstChildPos[1]);\r\n return;\r\n }\r\n var orient = shape.orient;\r\n var forkDim = (orient === 'TB' || orient === 'BT') ? 0 : 1;\r\n var otherDim = 1 - forkDim;\r\n var forkPosition = parsePercent$2(shape.forkPosition, 1);\r\n var tmpPoint = [];\r\n tmpPoint[forkDim] = parentPoint[forkDim];\r\n tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\r\n ctx.moveTo(parentPoint[0], parentPoint[1]);\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n ctx.moveTo(firstChildPos[0], firstChildPos[1]);\r\n tmpPoint[forkDim] = firstChildPos[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n tmpPoint[forkDim] = lastChildPos[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n ctx.lineTo(lastChildPos[0], lastChildPos[1]);\r\n for (var i = 1; i < childLen - 1; i++) {\r\n var point = childPoints[i];\r\n ctx.moveTo(point[0], point[1]);\r\n tmpPoint[forkDim] = point[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n }\r\n };\r\n return TreePath;\r\n }(Path));\r\n var TreeView = (function (_super) {\r\n __extends(TreeView, _super);\r\n function TreeView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreeView.type;\r\n _this._mainGroup = new Group();\r\n return _this;\r\n }\r\n TreeView.prototype.init = function (ecModel, api) {\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = {\r\n target: this.group\r\n };\r\n this.group.add(this._mainGroup);\r\n };\r\n TreeView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var group = this._mainGroup;\r\n var layout = seriesModel.get('layout');\r\n if (layout === 'radial') {\r\n group.x = layoutInfo.x + layoutInfo.width / 2;\r\n group.y = layoutInfo.y + layoutInfo.height / 2;\r\n }\r\n else {\r\n group.x = layoutInfo.x;\r\n group.y = layoutInfo.y;\r\n }\r\n this._updateViewCoordSys(seriesModel);\r\n this._updateController(seriesModel, ecModel, api);\r\n var oldData = this._data;\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (symbolNeedsDraw$1(data, newIdx)) {\r\n updateNode(data, newIdx, null, group, seriesModel);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (!symbolNeedsDraw$1(data, newIdx)) {\r\n symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\r\n return;\r\n }\r\n updateNode(data, newIdx, symbolEl, group, seriesModel);\r\n })\r\n .remove(function (oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (symbolEl) {\r\n removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\r\n }\r\n })\r\n .execute();\r\n this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\r\n this._updateNodeAndLinkScale(seriesModel);\r\n if (seriesModel.get('expandAndCollapse') === true) {\r\n data.eachItemGraphicEl(function (el, dataIndex) {\r\n el.off('click').on('click', function () {\r\n api.dispatchAction({\r\n type: 'treeExpandAndCollapse',\r\n seriesId: seriesModel.id,\r\n dataIndex: dataIndex\r\n });\r\n });\r\n });\r\n }\r\n this._data = data;\r\n };\r\n TreeView.prototype._updateViewCoordSys = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var points = [];\r\n data.each(function (idx) {\r\n var layout = data.getItemLayout(idx);\r\n if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\r\n points.push([+layout.x, +layout.y]);\r\n }\r\n });\r\n var min = [];\r\n var max = [];\r\n fromPoints(points, min, max);\r\n var oldMin = this._min;\r\n var oldMax = this._max;\r\n if (max[0] - min[0] === 0) {\r\n min[0] = oldMin ? oldMin[0] : min[0] - 1;\r\n max[0] = oldMax ? oldMax[0] : max[0] + 1;\r\n }\r\n if (max[1] - min[1] === 0) {\r\n min[1] = oldMin ? oldMin[1] : min[1] - 1;\r\n max[1] = oldMax ? oldMax[1] : max[1] + 1;\r\n }\r\n var viewCoordSys = seriesModel.coordinateSystem = new View();\r\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\r\n viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\r\n viewCoordSys.setCenter(seriesModel.get('center'));\r\n viewCoordSys.setZoom(seriesModel.get('zoom'));\r\n this.group.attr({\r\n x: viewCoordSys.x,\r\n y: viewCoordSys.y,\r\n scaleX: viewCoordSys.scaleX,\r\n scaleY: viewCoordSys.scaleY\r\n });\r\n this._min = min;\r\n this._max = max;\r\n };\r\n TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n var group = this.group;\r\n controller.setPointerChecker(function (e, x, y) {\r\n var rect = group.getBoundingRect();\r\n rect.applyTransform(group.transform);\r\n return rect.contain(x, y)\r\n && !onIrrelevantElement(e, api, seriesModel);\r\n });\r\n controller.enable(seriesModel.get('roam'));\r\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\r\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\r\n controller\r\n .off('pan')\r\n .off('zoom')\r\n .on('pan', function (e) {\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'treeRoam',\r\n dx: e.dx,\r\n dy: e.dy\r\n });\r\n })\r\n .on('zoom', function (e) {\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'treeRoam',\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n });\r\n _this._updateNodeAndLinkScale(seriesModel);\r\n api.updateLabelLayout();\r\n });\r\n };\r\n TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var nodeScale = this._getNodeGlobalScale(seriesModel);\r\n data.eachItemGraphicEl(function (el, idx) {\r\n el.setSymbolScale(nodeScale);\r\n });\r\n };\r\n TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type !== 'view') {\r\n return 1;\r\n }\r\n var nodeScaleRatio = this._nodeScaleRatio;\r\n var groupZoom = coordSys.scaleX || 1;\r\n var roamZoom = coordSys.getZoom();\r\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\r\n return nodeScale / groupZoom;\r\n };\r\n TreeView.prototype.dispose = function () {\r\n this._controller && this._controller.dispose();\r\n this._controllerHost = null;\r\n };\r\n TreeView.prototype.remove = function () {\r\n this._mainGroup.removeAll();\r\n this._data = null;\r\n };\r\n TreeView.type = 'tree';\r\n return TreeView;\r\n }(ChartView));\r\n function symbolNeedsDraw$1(data, dataIndex) {\r\n var layout = data.getItemLayout(dataIndex);\r\n return layout\r\n && !isNaN(layout.x) && !isNaN(layout.y)\r\n && data.getItemVisual(dataIndex, 'symbol') !== 'none';\r\n }\r\n function updateNode(data, dataIndex, symbolEl, group, seriesModel) {\r\n var isInit = !symbolEl;\r\n var node = data.tree.getNodeByDataIndex(dataIndex);\r\n var itemModel = node.getModel();\r\n var visualColor = node.getVisual('style').fill;\r\n var symbolInnerColor = node.isExpand === false && node.children.length !== 0\r\n ? visualColor : '#fff';\r\n var virtualRoot = data.tree.root;\r\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\r\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\r\n var sourceLayout = source.getLayout();\r\n var sourceOldLayout = sourceSymbolEl\r\n ? {\r\n x: sourceSymbolEl.x,\r\n y: sourceSymbolEl.y,\r\n rawX: sourceSymbolEl.__radialOldRawX,\r\n rawY: sourceSymbolEl.__radialOldRawY\r\n }\r\n : sourceLayout;\r\n var targetLayout = node.getLayout();\r\n if (isInit) {\r\n symbolEl = new Symbol(data, dataIndex, null, {\r\n symbolInnerColor: symbolInnerColor,\r\n useNameLabel: true\r\n });\r\n symbolEl.x = sourceOldLayout.x;\r\n symbolEl.y = sourceOldLayout.y;\r\n }\r\n else {\r\n symbolEl.updateData(data, dataIndex, null, {\r\n symbolInnerColor: symbolInnerColor,\r\n useNameLabel: true\r\n });\r\n }\r\n symbolEl.__radialOldRawX = symbolEl.__radialRawX;\r\n symbolEl.__radialOldRawY = symbolEl.__radialRawY;\r\n symbolEl.__radialRawX = targetLayout.rawX;\r\n symbolEl.__radialRawY = targetLayout.rawY;\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(dataIndex, symbolEl);\r\n updateProps(symbolEl, {\r\n x: targetLayout.x,\r\n y: targetLayout.y\r\n }, seriesModel);\r\n var symbolPath = symbolEl.getSymbolPath();\r\n if (seriesModel.get('layout') === 'radial') {\r\n var realRoot = virtualRoot.children[0];\r\n var rootLayout = realRoot.getLayout();\r\n var length_1 = realRoot.children.length;\r\n var rad = void 0;\r\n var isLeft = void 0;\r\n if (targetLayout.x === rootLayout.x && node.isExpand === true) {\r\n var center = {\r\n x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\r\n y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\r\n };\r\n rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n isLeft = center.x < rootLayout.x;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n else {\r\n rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n if (node.children.length === 0 || (node.children.length !== 0 && node.isExpand === false)) {\r\n isLeft = targetLayout.x < rootLayout.x;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n else {\r\n isLeft = targetLayout.x > rootLayout.x;\r\n if (!isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n }\r\n var textPosition = isLeft ? 'left' : 'right';\r\n var normalLabelModel = itemModel.getModel('label');\r\n var rotate = normalLabelModel.get('rotate');\r\n var labelRotateRadian = rotate * (Math.PI / 180);\r\n var textContent = symbolPath.getTextContent();\r\n if (textContent) {\r\n symbolPath.setTextConfig({\r\n position: normalLabelModel.get('position') || textPosition,\r\n rotation: rotate == null ? -rad : labelRotateRadian,\r\n origin: 'center'\r\n });\r\n textContent.setStyle('verticalAlign', 'middle');\r\n }\r\n }\r\n var focus = itemModel.get(['emphasis', 'focus']);\r\n var focusDataIndices = focus === 'ancestor'\r\n ? node.getAncestorsIndices()\r\n : focus === 'descendant' ? node.getDescendantIndices() : null;\r\n if (focusDataIndices) {\r\n getECData(symbolEl).focus = focusDataIndices;\r\n }\r\n drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\r\n if (symbolEl.__edge) {\r\n symbolEl.onHoverStateChange = function (toState) {\r\n if (toState !== 'blur') {\r\n var parentEl = node.parentNode\r\n && data.getItemGraphicEl(node.parentNode.dataIndex);\r\n if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\r\n setStatesFlag(symbolEl.__edge, toState);\r\n }\r\n }\r\n };\r\n }\r\n }\r\n function drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\r\n var itemModel = node.getModel();\r\n var edgeShape = seriesModel.get('edgeShape');\r\n var layout = seriesModel.get('layout');\r\n var orient = seriesModel.getOrient();\r\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\r\n var edgeForkPosition = seriesModel.get('edgeForkPosition');\r\n var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\r\n var edge = symbolEl.__edge;\r\n if (edgeShape === 'curve') {\r\n if (node.parentNode && node.parentNode !== virtualRoot) {\r\n if (!edge) {\r\n edge = symbolEl.__edge = new BezierCurve({\r\n shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\r\n });\r\n }\r\n updateProps(edge, {\r\n shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\r\n }, seriesModel);\r\n }\r\n }\r\n else if (edgeShape === 'polyline') {\r\n if (layout === 'orthogonal') {\r\n if (node !== virtualRoot && node.children && (node.children.length !== 0) && (node.isExpand === true)) {\r\n var children = node.children;\r\n var childPoints = [];\r\n for (var i = 0; i < children.length; i++) {\r\n var childLayout = children[i].getLayout();\r\n childPoints.push([childLayout.x, childLayout.y]);\r\n }\r\n if (!edge) {\r\n edge = symbolEl.__edge = new TreePath({\r\n shape: {\r\n parentPoint: [targetLayout.x, targetLayout.y],\r\n childPoints: [[targetLayout.x, targetLayout.y]],\r\n orient: orient,\r\n forkPosition: edgeForkPosition\r\n }\r\n });\r\n }\r\n updateProps(edge, {\r\n shape: {\r\n parentPoint: [targetLayout.x, targetLayout.y],\r\n childPoints: childPoints\r\n }\r\n }, seriesModel);\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n throw new Error('The polyline edgeShape can only be used in orthogonal layout');\r\n }\r\n }\r\n }\r\n if (edge) {\r\n edge.useStyle(defaults({\r\n strokeNoScale: true, fill: null\r\n }, lineStyle));\r\n setStatesStylesFromModel(edge, itemModel, 'lineStyle');\r\n setDefaultStateProxy(edge);\r\n group.add(edge);\r\n }\r\n }\r\n function removeNode(data, dataIndex, symbolEl, group, seriesModel) {\r\n var node = data.tree.getNodeByDataIndex(dataIndex);\r\n var virtualRoot = data.tree.root;\r\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\r\n var sourceLayout;\r\n while (sourceLayout = source.getLayout(), sourceLayout == null) {\r\n source = source.parentNode === virtualRoot ? source : source.parentNode || source;\r\n }\r\n updateProps(symbolEl, {\r\n x: sourceLayout.x + 1,\r\n y: sourceLayout.y + 1\r\n }, seriesModel, function () {\r\n group.remove(symbolEl);\r\n data.setItemGraphicEl(dataIndex, null);\r\n });\r\n symbolEl.fadeOut(null, { keepLabel: true });\r\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\r\n var sourceEdge = sourceSymbolEl.__edge;\r\n var edge = symbolEl.__edge\r\n || ((source.isExpand === false || source.children.length === 1) ? sourceEdge : undefined);\r\n var edgeShape = seriesModel.get('edgeShape');\r\n var layoutOpt = seriesModel.get('layout');\r\n var orient = seriesModel.get('orient');\r\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\r\n if (edge) {\r\n if (edgeShape === 'curve') {\r\n updateProps(edge, {\r\n shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, function () {\r\n group.remove(edge);\r\n });\r\n }\r\n else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\r\n updateProps(edge, {\r\n shape: {\r\n parentPoint: [sourceLayout.x, sourceLayout.y],\r\n childPoints: [[sourceLayout.x, sourceLayout.y]]\r\n },\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, function () {\r\n group.remove(edge);\r\n });\r\n }\r\n }\r\n }\r\n function getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\r\n var cpx1;\r\n var cpy1;\r\n var cpx2;\r\n var cpy2;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n if (layoutOpt === 'radial') {\r\n x1 = sourceLayout.rawX;\r\n y1 = sourceLayout.rawY;\r\n x2 = targetLayout.rawX;\r\n y2 = targetLayout.rawY;\r\n var radialCoor1 = radialCoordinate(x1, y1);\r\n var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\r\n var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\r\n var radialCoor4 = radialCoordinate(x2, y2);\r\n return {\r\n x1: radialCoor1.x || 0,\r\n y1: radialCoor1.y || 0,\r\n x2: radialCoor4.x || 0,\r\n y2: radialCoor4.y || 0,\r\n cpx1: radialCoor2.x || 0,\r\n cpy1: radialCoor2.y || 0,\r\n cpx2: radialCoor3.x || 0,\r\n cpy2: radialCoor3.y || 0\r\n };\r\n }\r\n else {\r\n x1 = sourceLayout.x;\r\n y1 = sourceLayout.y;\r\n x2 = targetLayout.x;\r\n y2 = targetLayout.y;\r\n if (orient === 'LR' || orient === 'RL') {\r\n cpx1 = x1 + (x2 - x1) * curvature;\r\n cpy1 = y1;\r\n cpx2 = x2 + (x1 - x2) * curvature;\r\n cpy2 = y2;\r\n }\r\n if (orient === 'TB' || orient === 'BT') {\r\n cpx1 = x1;\r\n cpy1 = y1 + (y2 - y1) * curvature;\r\n cpx2 = x2;\r\n cpy2 = y2 + (y1 - y2) * curvature;\r\n }\r\n }\r\n return {\r\n x1: x1,\r\n y1: y1,\r\n x2: x2,\r\n y2: y2,\r\n cpx1: cpx1,\r\n cpy1: cpy1,\r\n cpx2: cpx2,\r\n cpy2: cpy2\r\n };\r\n }\r\n ChartView.registerClass(TreeView);\n\n registerAction({\r\n type: 'treeExpandAndCollapse',\r\n event: 'treeExpandAndCollapse',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'tree', query: payload\r\n }, function (seriesModel) {\r\n var dataIndex = payload.dataIndex;\r\n var tree = seriesModel.getData().tree;\r\n var node = tree.getNodeByDataIndex(dataIndex);\r\n node.isExpand = !node.isExpand;\r\n });\r\n });\r\n registerAction({\r\n type: 'treeRoam',\r\n event: 'treeRoam',\r\n update: 'none'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'tree', query: payload\r\n }, function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var res = updateCenterAndZoom(coordSys, payload);\r\n seriesModel.setCenter\r\n && seriesModel.setCenter(res.center);\r\n seriesModel.setZoom\r\n && seriesModel.setZoom(res.zoom);\r\n });\r\n });\n\n function eachAfter(root, callback, separation) {\r\n var nodes = [root];\r\n var next = [];\r\n var node;\r\n while (node = nodes.pop()) {\r\n next.push(node);\r\n if (node.isExpand) {\r\n var children = node.children;\r\n if (children.length) {\r\n for (var i = 0; i < children.length; i++) {\r\n nodes.push(children[i]);\r\n }\r\n }\r\n }\r\n }\r\n while (node = next.pop()) {\r\n callback(node, separation);\r\n }\r\n }\r\n function eachBefore(root, callback) {\r\n var nodes = [root];\r\n var node;\r\n while (node = nodes.pop()) {\r\n callback(node);\r\n if (node.isExpand) {\r\n var children = node.children;\r\n if (children.length) {\r\n for (var i = children.length - 1; i >= 0; i--) {\r\n nodes.push(children[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\n\n function treeLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('tree', function (seriesModel) {\r\n commonLayout(seriesModel, api);\r\n });\r\n }\r\n function commonLayout(seriesModel, api) {\r\n var layoutInfo = getViewRect$1(seriesModel, api);\r\n seriesModel.layoutInfo = layoutInfo;\r\n var layout = seriesModel.get('layout');\r\n var width = 0;\r\n var height = 0;\r\n var separation$1 = null;\r\n if (layout === 'radial') {\r\n width = 2 * Math.PI;\r\n height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\r\n separation$1 = separation(function (node1, node2) {\r\n return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\r\n });\r\n }\r\n else {\r\n width = layoutInfo.width;\r\n height = layoutInfo.height;\r\n separation$1 = separation();\r\n }\r\n var virtualRoot = seriesModel.getData().tree.root;\r\n var realRoot = virtualRoot.children[0];\r\n if (realRoot) {\r\n init$2(virtualRoot);\r\n eachAfter(realRoot, firstWalk, separation$1);\r\n virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\r\n eachBefore(realRoot, secondWalk);\r\n var left_1 = realRoot;\r\n var right_1 = realRoot;\r\n var bottom_1 = realRoot;\r\n eachBefore(realRoot, function (node) {\r\n var x = node.getLayout().x;\r\n if (x < left_1.getLayout().x) {\r\n left_1 = node;\r\n }\r\n if (x > right_1.getLayout().x) {\r\n right_1 = node;\r\n }\r\n if (node.depth > bottom_1.depth) {\r\n bottom_1 = node;\r\n }\r\n });\r\n var delta = left_1 === right_1 ? 1 : separation$1(left_1, right_1) / 2;\r\n var tx_1 = delta - left_1.getLayout().x;\r\n var kx_1 = 0;\r\n var ky_1 = 0;\r\n var coorX_1 = 0;\r\n var coorY_1 = 0;\r\n if (layout === 'radial') {\r\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\r\n ky_1 = height / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\r\n coorY_1 = (node.depth - 1) * ky_1;\r\n var finalCoor = radialCoordinate(coorX_1, coorY_1);\r\n node.setLayout({ x: finalCoor.x, y: finalCoor.y, rawX: coorX_1, rawY: coorY_1 }, true);\r\n });\r\n }\r\n else {\r\n var orient_1 = seriesModel.getOrient();\r\n if (orient_1 === 'RL' || orient_1 === 'LR') {\r\n ky_1 = height / (right_1.getLayout().x + delta + tx_1);\r\n kx_1 = width / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorY_1 = (node.getLayout().x + tx_1) * ky_1;\r\n coorX_1 = orient_1 === 'LR'\r\n ? (node.depth - 1) * kx_1\r\n : width - (node.depth - 1) * kx_1;\r\n node.setLayout({ x: coorX_1, y: coorY_1 }, true);\r\n });\r\n }\r\n else if (orient_1 === 'TB' || orient_1 === 'BT') {\r\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\r\n ky_1 = height / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\r\n coorY_1 = orient_1 === 'TB'\r\n ? (node.depth - 1) * ky_1\r\n : height - (node.depth - 1) * ky_1;\r\n node.setLayout({ x: coorX_1, y: coorY_1 }, true);\r\n });\r\n }\r\n }\r\n }\r\n }\n\n function treeVisual (ecModel) {\r\n ecModel.eachSeriesByType('tree', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var tree = data.tree;\r\n tree.eachNode(function (node) {\r\n var model = node.getModel();\r\n var style = model.getModel('itemStyle').getItemStyle();\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n extend(existsStyle, style);\r\n });\r\n });\r\n }\n\n registerLayout(treeLayout);\r\n registerVisual(treeVisual);\n\n function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\r\n if (payload && indexOf(validPayloadTypes, payload.type) >= 0) {\r\n var root = seriesModel.getData().tree.root;\r\n var targetNode = payload.targetNode;\r\n if (typeof targetNode === 'string') {\r\n targetNode = root.getNodeById(targetNode);\r\n }\r\n if (targetNode && root.contains(targetNode)) {\r\n return {\r\n node: targetNode\r\n };\r\n }\r\n var targetNodeId = payload.targetNodeId;\r\n if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\r\n return {\r\n node: targetNode\r\n };\r\n }\r\n }\r\n }\r\n function getPathToRoot(node) {\r\n var path = [];\r\n while (node) {\r\n node = node.parentNode;\r\n node && path.push(node);\r\n }\r\n return path.reverse();\r\n }\r\n function aboveViewRoot(viewRoot, node) {\r\n var viewPath = getPathToRoot(viewRoot);\r\n return indexOf(viewPath, node) >= 0;\r\n }\r\n function wrapTreePathInfo(node, seriesModel) {\r\n var treePathInfo = [];\r\n while (node) {\r\n var nodeDataIndex = node.dataIndex;\r\n treePathInfo.push({\r\n name: node.name,\r\n dataIndex: nodeDataIndex,\r\n value: seriesModel.getRawValue(nodeDataIndex)\r\n });\r\n node = node.parentNode;\r\n }\r\n treePathInfo.reverse();\r\n return treePathInfo;\r\n }\n\n var TreemapSeriesModel = (function (_super) {\r\n __extends(TreemapSeriesModel, _super);\r\n function TreemapSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreemapSeriesModel.type;\r\n _this.preventUsingHoverLayer = true;\r\n return _this;\r\n }\r\n TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var root = {\r\n name: option.name,\r\n children: option.data\r\n };\r\n completeTreeValue(root);\r\n var levels = option.levels || [];\r\n levels = option.levels = setDefault(levels, ecModel);\r\n var levelModels = map(levels || [], function (levelDefine) {\r\n return new Model(levelDefine, this, ecModel);\r\n }, this);\r\n var tree = Tree.createTree(root, this, null, beforeLink);\r\n function beforeLink(nodeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var node = tree.getNodeByDataIndex(idx);\r\n var levelModel = levelModels[node.depth];\r\n levelModel && (model.parentModel = levelModel);\r\n return model;\r\n });\r\n }\r\n return tree.data;\r\n };\r\n TreemapSeriesModel.prototype.optionUpdated = function () {\r\n this.resetViewRoot();\r\n };\r\n TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var formattedValue = isArray(value)\r\n ? addCommas(value[0]) : addCommas(value);\r\n var name = data.getName(dataIndex);\r\n if (renderMode === 'richText') {\r\n return encodeHTML(name) + ': ' + formattedValue;\r\n }\r\n return '
'\r\n + concatTooltipHtml(name, formattedValue)\r\n + '
';\r\n };\r\n TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var params = _super.prototype.getDataParams.apply(this, arguments);\r\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\r\n params.treePathInfo = wrapTreePathInfo(node, this);\r\n return params;\r\n };\r\n TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\r\n this.layoutInfo = this.layoutInfo || {};\r\n extend(this.layoutInfo, layoutInfo);\r\n };\r\n TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\r\n var idIndexMap = this._idIndexMap;\r\n if (!idIndexMap) {\r\n idIndexMap = this._idIndexMap = createHashMap();\r\n this._idIndexMapCount = 0;\r\n }\r\n var index = idIndexMap.get(id);\r\n if (index == null) {\r\n idIndexMap.set(id, index = this._idIndexMapCount++);\r\n }\r\n return index;\r\n };\r\n TreemapSeriesModel.prototype.getViewRoot = function () {\r\n return this._viewRoot;\r\n };\r\n TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\r\n viewRoot\r\n ? (this._viewRoot = viewRoot)\r\n : (viewRoot = this._viewRoot);\r\n var root = this.getRawData().tree.root;\r\n if (!viewRoot\r\n || (viewRoot !== root && !root.contains(viewRoot))) {\r\n this._viewRoot = root;\r\n }\r\n };\r\n TreemapSeriesModel.type = 'series.treemap';\r\n TreemapSeriesModel.layoutMode = 'box';\r\n TreemapSeriesModel.defaultOption = {\r\n progressive: 0,\r\n left: 'center',\r\n top: 'middle',\r\n width: '80%',\r\n height: '80%',\r\n sort: true,\r\n clipWindow: 'origin',\r\n squareRatio: 0.5 * (1 + Math.sqrt(5)),\r\n leafDepth: null,\r\n drillDownIcon: '▶',\r\n zoomToNodeRatio: 0.32 * 0.32,\r\n roam: true,\r\n nodeClick: 'zoomToNode',\r\n animation: true,\r\n animationDurationUpdate: 900,\r\n animationEasing: 'quinticInOut',\r\n breadcrumb: {\r\n show: true,\r\n height: 22,\r\n left: 'center',\r\n top: 'bottom',\r\n emptyItemWidth: 25,\r\n itemStyle: {\r\n color: 'rgba(0,0,0,0.7)',\r\n textStyle: {\r\n color: '#fff'\r\n }\r\n }\r\n },\r\n label: {\r\n show: true,\r\n distance: 0,\r\n padding: 5,\r\n position: 'inside',\r\n color: '#fff',\r\n overflow: 'truncate'\r\n },\r\n upperLabel: {\r\n show: false,\r\n position: [0, '50%'],\r\n height: 20,\r\n overflow: 'truncate',\r\n verticalAlign: 'middle'\r\n },\r\n itemStyle: {\r\n color: null,\r\n colorAlpha: null,\r\n colorSaturation: null,\r\n borderWidth: 0,\r\n gapWidth: 0,\r\n borderColor: '#fff',\r\n borderColorSaturation: null\r\n },\r\n emphasis: {\r\n upperLabel: {\r\n show: true,\r\n position: [0, '50%'],\r\n ellipsis: true,\r\n verticalAlign: 'middle'\r\n }\r\n },\r\n visualDimension: 0,\r\n visualMin: null,\r\n visualMax: null,\r\n color: [],\r\n colorAlpha: null,\r\n colorSaturation: null,\r\n colorMappingBy: 'index',\r\n visibleMin: 10,\r\n childrenVisibleMin: null,\r\n levels: []\r\n };\r\n return TreemapSeriesModel;\r\n }(SeriesModel));\r\n function completeTreeValue(dataNode) {\r\n var sum = 0;\r\n each(dataNode.children, function (child) {\r\n completeTreeValue(child);\r\n var childValue = child.value;\r\n isArray(childValue) && (childValue = childValue[0]);\r\n sum += childValue;\r\n });\r\n var thisValue = dataNode.value;\r\n if (isArray(thisValue)) {\r\n thisValue = thisValue[0];\r\n }\r\n if (thisValue == null || isNaN(thisValue)) {\r\n thisValue = sum;\r\n }\r\n if (thisValue < 0) {\r\n thisValue = 0;\r\n }\r\n isArray(dataNode.value)\r\n ? (dataNode.value[0] = thisValue)\r\n : (dataNode.value = thisValue);\r\n }\r\n function setDefault(levels, ecModel) {\r\n var globalColorList = normalizeToArray(ecModel.get('color'));\r\n if (!globalColorList) {\r\n return;\r\n }\r\n levels = levels || [];\r\n var hasColorDefine;\r\n each(levels, function (levelDefine) {\r\n var model = new Model(levelDefine);\r\n var modelColor = model.get('color');\r\n if (model.get(['itemStyle', 'color'])\r\n || (modelColor && modelColor !== 'none')) {\r\n hasColorDefine = true;\r\n }\r\n });\r\n if (!hasColorDefine) {\r\n var level0 = levels[0] || (levels[0] = {});\r\n level0.color = globalColorList.slice();\r\n }\r\n return levels;\r\n }\r\n SeriesModel.registerClass(TreemapSeriesModel);\n\n var TEXT_PADDING = 8;\r\n var ITEM_GAP = 8;\r\n var ARRAY_LENGTH = 5;\r\n var Breadcrumb = (function () {\r\n function Breadcrumb(containerGroup) {\r\n this.group = new Group();\r\n containerGroup.add(this.group);\r\n }\r\n Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\r\n var model = seriesModel.getModel('breadcrumb');\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n if (!model.get('show') || !targetNode) {\r\n return;\r\n }\r\n var normalStyleModel = model.getModel('itemStyle');\r\n var textStyleModel = normalStyleModel.getModel('textStyle');\r\n var layoutParam = {\r\n pos: {\r\n left: model.get('left'),\r\n right: model.get('right'),\r\n top: model.get('top'),\r\n bottom: model.get('bottom')\r\n },\r\n box: {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n },\r\n emptyItemWidth: model.get('emptyItemWidth'),\r\n totalWidth: 0,\r\n renderList: []\r\n };\r\n this._prepare(targetNode, layoutParam, textStyleModel);\r\n this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\r\n positionElement(thisGroup, layoutParam.pos, layoutParam.box);\r\n };\r\n Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\r\n for (var node = targetNode; node; node = node.parentNode) {\r\n var text = node.getModel().get('name');\r\n var textRect = textStyleModel.getTextRect(text);\r\n var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\r\n layoutParam.totalWidth += itemWidth + ITEM_GAP;\r\n layoutParam.renderList.push({\r\n node: node,\r\n text: text,\r\n width: itemWidth\r\n });\r\n }\r\n };\r\n Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\r\n var lastX = 0;\r\n var emptyItemWidth = layoutParam.emptyItemWidth;\r\n var height = seriesModel.get(['breadcrumb', 'height']);\r\n var availableSize = getAvailableSize(layoutParam.pos, layoutParam.box);\r\n var totalWidth = layoutParam.totalWidth;\r\n var renderList = layoutParam.renderList;\r\n for (var i = renderList.length - 1; i >= 0; i--) {\r\n var item = renderList[i];\r\n var itemNode = item.node;\r\n var itemWidth = item.width;\r\n var text = item.text;\r\n if (totalWidth > availableSize.width) {\r\n totalWidth -= itemWidth - emptyItemWidth;\r\n itemWidth = emptyItemWidth;\r\n text = null;\r\n }\r\n var el = new Polygon({\r\n shape: {\r\n points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\r\n },\r\n style: defaults(normalStyleModel.getItemStyle(), {\r\n lineJoin: 'bevel'\r\n }),\r\n textContent: new ZRText({\r\n style: {\r\n text: text,\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n }\r\n }),\r\n textConfig: {\r\n position: 'inside'\r\n },\r\n z: 10,\r\n onclick: curry(onSelect, itemNode)\r\n });\r\n el.disableLabelAnimation = true;\r\n this.group.add(el);\r\n packEventData(el, seriesModel, itemNode);\r\n lastX += itemWidth + ITEM_GAP;\r\n }\r\n };\r\n Breadcrumb.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n return Breadcrumb;\r\n }());\r\n function makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\r\n var points = [\r\n [head ? x : x - ARRAY_LENGTH, y],\r\n [x + itemWidth, y],\r\n [x + itemWidth, y + itemHeight],\r\n [head ? x : x - ARRAY_LENGTH, y + itemHeight]\r\n ];\r\n !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\r\n !head && points.push([x, y + itemHeight / 2]);\r\n return points;\r\n }\r\n function packEventData(el, seriesModel, itemNode) {\r\n getECData(el).eventData = {\r\n componentType: 'series',\r\n componentSubType: 'treemap',\r\n componentIndex: seriesModel.componentIndex,\r\n seriesIndex: seriesModel.componentIndex,\r\n seriesName: seriesModel.name,\r\n seriesType: 'treemap',\r\n selfType: 'breadcrumb',\r\n nodeData: {\r\n dataIndex: itemNode && itemNode.dataIndex,\r\n name: itemNode && itemNode.name\r\n },\r\n treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\r\n };\r\n }\n\n function createWrap() {\r\n var storage = [];\r\n var elExistsMap = {};\r\n var doneCallback;\r\n return {\r\n add: function (el, target, time, delay, easing) {\r\n if (isString(delay)) {\r\n easing = delay;\r\n delay = 0;\r\n }\r\n if (elExistsMap[el.id]) {\r\n return false;\r\n }\r\n elExistsMap[el.id] = 1;\r\n storage.push({ el: el, target: target, time: time, delay: delay, easing: easing });\r\n return true;\r\n },\r\n done: function (callback) {\r\n doneCallback = callback;\r\n return this;\r\n },\r\n start: function () {\r\n var count = storage.length;\r\n for (var i = 0, len = storage.length; i < len; i++) {\r\n var item = storage[i];\r\n item.el.animateTo(item.target, {\r\n duration: item.time,\r\n delay: item.delay,\r\n easing: item.easing,\r\n setToFinal: true,\r\n done: done\r\n });\r\n }\r\n return this;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n storage.length = 0;\r\n elExistsMap = {};\r\n doneCallback && doneCallback();\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var Group$1 = Group;\r\n var Rect$1 = Rect;\r\n var DRAG_THRESHOLD = 3;\r\n var PATH_LABEL_NOAMAL = 'label';\r\n var PATH_UPPERLABEL_NORMAL = 'upperLabel';\r\n var Z_BASE = 10;\r\n var Z_BG = 1;\r\n var Z_CONTENT = 2;\r\n var getStateItemStyle = makeStyleMapper([\r\n ['fill', 'color'],\r\n ['stroke', 'strokeColor'],\r\n ['lineWidth', 'strokeWidth'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ]);\r\n var getItemStyleNormal = function (model) {\r\n var itemStyle = getStateItemStyle(model);\r\n itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\r\n return itemStyle;\r\n };\r\n var inner$a = makeInner();\r\n var TreemapView = (function (_super) {\r\n __extends(TreemapView, _super);\r\n function TreemapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreemapView.type;\r\n _this._state = 'ready';\r\n _this._storage = createStorage();\r\n return _this;\r\n }\r\n TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var models = ecModel.findComponents({\r\n mainType: 'series', subType: 'treemap', query: payload\r\n });\r\n if (indexOf(models, seriesModel) < 0) {\r\n return;\r\n }\r\n this.seriesModel = seriesModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, seriesModel);\r\n var payloadType = payload && payload.type;\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var isInit = !this._oldTree;\r\n var thisStorage = this._storage;\r\n var reRoot = (payloadType === 'treemapRootToNode' && targetInfo && thisStorage)\r\n ? {\r\n rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\r\n direction: payload.direction\r\n }\r\n : null;\r\n var containerGroup = this._giveContainerGroup(layoutInfo);\r\n var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\r\n (!isInit && (!payloadType\r\n || payloadType === 'treemapZoomToNode'\r\n || payloadType === 'treemapRootToNode'))\r\n ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot)\r\n : renderResult.renderFinally();\r\n this._resetController(api);\r\n this._renderBreadcrumb(seriesModel, api, targetInfo);\r\n };\r\n TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\r\n var containerGroup = this._containerGroup;\r\n if (!containerGroup) {\r\n containerGroup = this._containerGroup = new Group$1();\r\n this._initEvents(containerGroup);\r\n this.group.add(containerGroup);\r\n }\r\n containerGroup.x = layoutInfo.x;\r\n containerGroup.y = layoutInfo.y;\r\n return containerGroup;\r\n };\r\n TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\r\n var thisTree = seriesModel.getData().tree;\r\n var oldTree = this._oldTree;\r\n var lastsForAnimation = createStorage();\r\n var thisStorage = createStorage();\r\n var oldStorage = this._storage;\r\n var willInvisibleEls = [];\r\n function doRenderNode(thisNode, oldNode, parentGroup, depth) {\r\n return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\r\n }\r\n dualTravel(thisTree.root ? [thisTree.root] : [], (oldTree && oldTree.root) ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\r\n var willDeleteEls = clearStorage(oldStorage);\r\n this._oldTree = thisTree;\r\n this._storage = thisStorage;\r\n return {\r\n lastsForAnimation: lastsForAnimation,\r\n willDeleteEls: willDeleteEls,\r\n renderFinally: renderFinally\r\n };\r\n function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\r\n if (sameTree) {\r\n oldViewChildren = thisViewChildren;\r\n each(thisViewChildren, function (child, index) {\r\n !child.isRemoved() && processNode(index, index);\r\n });\r\n }\r\n else {\r\n (new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey))\r\n .add(processNode)\r\n .update(processNode)\r\n .remove(curry(processNode, null))\r\n .execute();\r\n }\r\n function getKey(node) {\r\n return node.getId();\r\n }\r\n function processNode(newIndex, oldIndex) {\r\n var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\r\n var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\r\n var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\r\n group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\r\n }\r\n }\r\n function clearStorage(storage) {\r\n var willDeleteEls = createStorage();\r\n storage && each(storage, function (store, storageName) {\r\n var delEls = willDeleteEls[storageName];\r\n each(store, function (el) {\r\n el && (delEls.push(el), inner$a(el).willDelete = true);\r\n });\r\n });\r\n return willDeleteEls;\r\n }\r\n function renderFinally() {\r\n each(willDeleteEls, function (els) {\r\n each(els, function (el) {\r\n el.parent && el.parent.remove(el);\r\n });\r\n });\r\n each(willInvisibleEls, function (el) {\r\n el.invisible = true;\r\n el.dirty();\r\n });\r\n }\r\n };\r\n TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\r\n if (!seriesModel.get('animation')) {\r\n return;\r\n }\r\n var duration = seriesModel.get('animationDurationUpdate');\r\n var easing = seriesModel.get('animationEasing');\r\n var animationWrap = createWrap();\r\n each(renderResult.willDeleteEls, function (store, storageName) {\r\n each(store, function (el, rawIndex) {\r\n if (el.invisible) {\r\n return;\r\n }\r\n var parent = el.parent;\r\n var target;\r\n var innerStore = inner$a(parent);\r\n if (reRoot && reRoot.direction === 'drillDown') {\r\n target = parent === reRoot.rootNodeGroup\r\n ? {\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: innerStore.nodeWidth,\r\n height: innerStore.nodeHeight\r\n },\r\n style: {\r\n opacity: 0\r\n }\r\n }\r\n : { style: { opacity: 0 } };\r\n }\r\n else {\r\n var targetX = 0;\r\n var targetY = 0;\r\n if (!innerStore.willDelete) {\r\n targetX = innerStore.nodeWidth / 2;\r\n targetY = innerStore.nodeHeight / 2;\r\n }\r\n target = storageName === 'nodeGroup'\r\n ? { x: targetX, y: targetY, style: { opacity: 0 } }\r\n : {\r\n shape: { x: targetX, y: targetY, width: 0, height: 0 },\r\n style: { opacity: 0 }\r\n };\r\n }\r\n target && animationWrap.add(el, target, duration, easing);\r\n });\r\n });\r\n each(this._storage, function (store, storageName) {\r\n each(store, function (el, rawIndex) {\r\n var last = renderResult.lastsForAnimation[storageName][rawIndex];\r\n var target = {};\r\n if (!last) {\r\n return;\r\n }\r\n if (el instanceof Group) {\r\n if (last.oldX != null) {\r\n target.x = el.x;\r\n target.y = el.y;\r\n el.x = last.oldX;\r\n el.y = last.oldY;\r\n }\r\n }\r\n else {\r\n if (last.oldShape) {\r\n target.shape = extend({}, el.shape);\r\n el.setShape(last.oldShape);\r\n }\r\n if (last.fadein) {\r\n el.setStyle('opacity', 0);\r\n target.style = { opacity: 1 };\r\n }\r\n else if (el.style.opacity !== 1) {\r\n target.style = { opacity: 1 };\r\n }\r\n }\r\n animationWrap.add(el, target, duration, easing);\r\n });\r\n }, this);\r\n this._state = 'animating';\r\n animationWrap\r\n .done(bind(function () {\r\n this._state = 'ready';\r\n renderResult.renderFinally();\r\n }, this))\r\n .start();\r\n };\r\n TreemapView.prototype._resetController = function (api) {\r\n var controller = this._controller;\r\n if (!controller) {\r\n controller = this._controller = new RoamController(api.getZr());\r\n controller.enable(this.seriesModel.get('roam'));\r\n controller.on('pan', bind(this._onPan, this));\r\n controller.on('zoom', bind(this._onZoom, this));\r\n }\r\n var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\r\n controller.setPointerChecker(function (e, x, y) {\r\n return rect.contain(x, y);\r\n });\r\n };\r\n TreemapView.prototype._clearController = function () {\r\n var controller = this._controller;\r\n if (controller) {\r\n controller.dispose();\r\n controller = null;\r\n }\r\n };\r\n TreemapView.prototype._onPan = function (e) {\r\n if (this._state !== 'animating'\r\n && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\r\n var root = this.seriesModel.getData().tree.root;\r\n if (!root) {\r\n return;\r\n }\r\n var rootLayout = root.getLayout();\r\n if (!rootLayout) {\r\n return;\r\n }\r\n this.api.dispatchAction({\r\n type: 'treemapMove',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n rootRect: {\r\n x: rootLayout.x + e.dx, y: rootLayout.y + e.dy,\r\n width: rootLayout.width, height: rootLayout.height\r\n }\r\n });\r\n }\r\n };\r\n TreemapView.prototype._onZoom = function (e) {\r\n var mouseX = e.originX;\r\n var mouseY = e.originY;\r\n if (this._state !== 'animating') {\r\n var root = this.seriesModel.getData().tree.root;\r\n if (!root) {\r\n return;\r\n }\r\n var rootLayout = root.getLayout();\r\n if (!rootLayout) {\r\n return;\r\n }\r\n var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\r\n var layoutInfo = this.seriesModel.layoutInfo;\r\n mouseX -= layoutInfo.x;\r\n mouseY -= layoutInfo.y;\r\n var m = create$1();\r\n translate(m, m, [-mouseX, -mouseY]);\r\n scale$1(m, m, [e.scale, e.scale]);\r\n translate(m, m, [mouseX, mouseY]);\r\n rect.applyTransform(m);\r\n this.api.dispatchAction({\r\n type: 'treemapRender',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n rootRect: {\r\n x: rect.x, y: rect.y,\r\n width: rect.width, height: rect.height\r\n }\r\n });\r\n }\r\n };\r\n TreemapView.prototype._initEvents = function (containerGroup) {\r\n var _this = this;\r\n containerGroup.on('click', function (e) {\r\n if (_this._state !== 'ready') {\r\n return;\r\n }\r\n var nodeClick = _this.seriesModel.get('nodeClick', true);\r\n if (!nodeClick) {\r\n return;\r\n }\r\n var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\r\n if (!targetInfo) {\r\n return;\r\n }\r\n var node = targetInfo.node;\r\n if (node.getLayout().isLeafRoot) {\r\n _this._rootToNode(targetInfo);\r\n }\r\n else {\r\n if (nodeClick === 'zoomToNode') {\r\n _this._zoomToNode(targetInfo);\r\n }\r\n else if (nodeClick === 'link') {\r\n var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\r\n var link = itemModel.get('link', true);\r\n var linkTarget = itemModel.get('target', true) || 'blank';\r\n link && windowOpen(link, linkTarget);\r\n }\r\n }\r\n }, this);\r\n };\r\n TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\r\n var _this = this;\r\n if (!targetInfo) {\r\n targetInfo = seriesModel.get('leafDepth', true) != null\r\n ? { node: seriesModel.getViewRoot() }\r\n : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\r\n if (!targetInfo) {\r\n targetInfo = { node: seriesModel.getData().tree.root };\r\n }\r\n }\r\n (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group)))\r\n .render(seriesModel, api, targetInfo.node, function (node) {\r\n if (_this._state !== 'animating') {\r\n aboveViewRoot(seriesModel.getViewRoot(), node)\r\n ? _this._rootToNode({ node: node })\r\n : _this._zoomToNode({ node: node });\r\n }\r\n });\r\n };\r\n TreemapView.prototype.remove = function () {\r\n this._clearController();\r\n this._containerGroup && this._containerGroup.removeAll();\r\n this._storage = createStorage();\r\n this._state = 'ready';\r\n this._breadcrumb && this._breadcrumb.remove();\r\n };\r\n TreemapView.prototype.dispose = function () {\r\n this._clearController();\r\n };\r\n TreemapView.prototype._zoomToNode = function (targetInfo) {\r\n this.api.dispatchAction({\r\n type: 'treemapZoomToNode',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: targetInfo.node\r\n });\r\n };\r\n TreemapView.prototype._rootToNode = function (targetInfo) {\r\n this.api.dispatchAction({\r\n type: 'treemapRootToNode',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: targetInfo.node\r\n });\r\n };\r\n TreemapView.prototype.findTarget = function (x, y) {\r\n var targetInfo;\r\n var viewRoot = this.seriesModel.getViewRoot();\r\n viewRoot.eachNode({ attr: 'viewChildren', order: 'preorder' }, function (node) {\r\n var bgEl = this._storage.background[node.getRawIndex()];\r\n if (bgEl) {\r\n var point = bgEl.transformCoordToLocal(x, y);\r\n var shape = bgEl.shape;\r\n if (shape.x <= point[0]\r\n && point[0] <= shape.x + shape.width\r\n && shape.y <= point[1]\r\n && point[1] <= shape.y + shape.height) {\r\n targetInfo = {\r\n node: node,\r\n offsetX: point[0],\r\n offsetY: point[1]\r\n };\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }, this);\r\n return targetInfo;\r\n };\r\n TreemapView.type = 'treemap';\r\n return TreemapView;\r\n }(ChartView));\r\n function createStorage() {\r\n return {\r\n nodeGroup: [],\r\n background: [],\r\n content: []\r\n };\r\n }\r\n function renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\r\n if (!thisNode) {\r\n return;\r\n }\r\n var thisLayout = thisNode.getLayout();\r\n var data = seriesModel.getData();\r\n var nodeModel = thisNode.getModel();\r\n data.setItemGraphicEl(thisNode.dataIndex, null);\r\n if (!thisLayout || !thisLayout.isInView) {\r\n return;\r\n }\r\n var thisWidth = thisLayout.width;\r\n var thisHeight = thisLayout.height;\r\n var borderWidth = thisLayout.borderWidth;\r\n var thisInvisible = thisLayout.invisible;\r\n var thisRawIndex = thisNode.getRawIndex();\r\n var oldRawIndex = oldNode && oldNode.getRawIndex();\r\n var thisViewChildren = thisNode.viewChildren;\r\n var upperHeight = thisLayout.upperHeight;\r\n var isParent = thisViewChildren && thisViewChildren.length;\r\n var itemStyleNormalModel = nodeModel.getModel('itemStyle');\r\n var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\r\n var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\r\n var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\r\n var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\r\n var group = giveGraphic('nodeGroup', Group$1);\r\n if (!group) {\r\n return;\r\n }\r\n parentGroup.add(group);\r\n group.x = thisLayout.x || 0;\r\n group.y = thisLayout.y || 0;\r\n group.markRedraw();\r\n inner$a(group).nodeWidth = thisWidth;\r\n inner$a(group).nodeHeight = thisHeight;\r\n if (thisLayout.isAboveViewRoot) {\r\n return group;\r\n }\r\n var bg = giveGraphic('background', Rect$1, depth, Z_BG);\r\n bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\r\n var focus = nodeModel.get(['emphasis', 'focus']);\r\n var blurScope = nodeModel.get(['emphasis', 'blurScope']);\r\n var focusDataIndices = focus === 'ancestor'\r\n ? thisNode.getAncestorsIndices()\r\n : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\r\n if (isParent) {\r\n if (isHighDownDispatcher(group)) {\r\n setAsHighDownDispatcher(group, false);\r\n }\r\n if (bg) {\r\n setAsHighDownDispatcher(bg, true);\r\n data.setItemGraphicEl(thisNode.dataIndex, bg);\r\n enableHoverFocus(bg, focusDataIndices || focus, blurScope);\r\n }\r\n }\r\n else {\r\n var content = giveGraphic('content', Rect$1, depth, Z_CONTENT);\r\n content && renderContent(group, content);\r\n if (bg && isHighDownDispatcher(bg)) {\r\n setAsHighDownDispatcher(bg, false);\r\n }\r\n setAsHighDownDispatcher(group, true);\r\n data.setItemGraphicEl(thisNode.dataIndex, group);\r\n enableHoverFocus(group, focusDataIndices || focus, blurScope);\r\n }\r\n return group;\r\n function renderBackground(group, bg, useUpperLabel) {\r\n var ecData = getECData(bg);\r\n ecData.dataIndex = thisNode.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n bg.setShape({ x: 0, y: 0, width: thisWidth, height: thisHeight, r: borderRadius });\r\n if (thisInvisible) {\r\n processInvisible(bg);\r\n }\r\n else {\r\n bg.invisible = false;\r\n var visualBorderColor = thisNode.getVisual('style').stroke;\r\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\r\n normalStyle.fill = visualBorderColor;\r\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\r\n emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\r\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\r\n blurStyle.fill = itemStyleBlurModel.get('borderColor');\r\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\r\n selectStyle.fill = itemStyleSelectModel.get('borderColor');\r\n if (useUpperLabel) {\r\n var upperLabelWidth = thisWidth - 2 * borderWidth;\r\n prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, { x: borderWidth, y: 0, width: upperLabelWidth, height: upperHeight });\r\n }\r\n else {\r\n bg.removeTextContent();\r\n }\r\n bg.setStyle(normalStyle);\r\n bg.ensureState('emphasis').style = emphasisStyle;\r\n bg.ensureState('blur').style = blurStyle;\r\n bg.ensureState('select').style = selectStyle;\r\n setDefaultStateProxy(bg);\r\n }\r\n group.add(bg);\r\n }\r\n function renderContent(group, content) {\r\n var ecData = getECData(content);\r\n ecData.dataIndex = thisNode.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\r\n var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\r\n content.culling = true;\r\n content.setShape({\r\n x: borderWidth,\r\n y: borderWidth,\r\n width: contentWidth,\r\n height: contentHeight,\r\n r: borderRadius\r\n });\r\n if (thisInvisible) {\r\n processInvisible(content);\r\n }\r\n else {\r\n content.invisible = false;\r\n var visualColor = thisNode.getVisual('style').fill;\r\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\r\n normalStyle.fill = visualColor;\r\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\r\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\r\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\r\n prepareText(content, visualColor);\r\n content.setStyle(normalStyle);\r\n content.ensureState('emphasis').style = emphasisStyle;\r\n content.ensureState('blur').style = blurStyle;\r\n content.ensureState('select').style = selectStyle;\r\n setDefaultStateProxy(content);\r\n }\r\n group.add(content);\r\n }\r\n function processInvisible(element) {\r\n !element.invisible && willInvisibleEls.push(element);\r\n }\r\n function prepareText(rectEl, visualColor, width, height, upperLabelRect) {\r\n var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\r\n var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), nodeModel.get('name'));\r\n if (!upperLabelRect && thisLayout.isLeafRoot) {\r\n var iconChar = seriesModel.get('drillDownIcon', true);\r\n text = iconChar ? iconChar + ' ' + text : text;\r\n }\r\n var isShow = normalLabelModel.getShallow('show');\r\n setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\r\n defaultText: isShow ? text : null,\r\n inheritColor: visualColor,\r\n labelFetcher: seriesModel,\r\n labelDataIndex: thisNode.dataIndex\r\n });\r\n var textEl = rectEl.getTextContent();\r\n var textStyle = textEl.style;\r\n var textPadding = normalizeCssArray(textStyle.padding || 0);\r\n if (upperLabelRect) {\r\n rectEl.setTextConfig({\r\n layoutRect: upperLabelRect\r\n });\r\n textEl.disableLabelLayout = true;\r\n }\r\n textEl.beforeUpdate = function () {\r\n var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\r\n var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\r\n if (textStyle.width !== width || textStyle.height !== height) {\r\n textEl.setStyle({\r\n width: width,\r\n height: height\r\n });\r\n }\r\n };\r\n textStyle.truncateMinChar = 2;\r\n textStyle.lineOverflow = 'truncate';\r\n addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\r\n var textEmphasisState = textEl.getState('emphasis');\r\n addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\r\n }\r\n function addDrillDownIcon(style, upperLabelRect, thisLayout) {\r\n var text = style ? style.text : null;\r\n if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\r\n var iconChar = seriesModel.get('drillDownIcon', true);\r\n style.text = iconChar ? iconChar + ' ' + text : text;\r\n }\r\n }\r\n function giveGraphic(storageName, Ctor, depth, z) {\r\n var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\r\n var lasts = lastsForAnimation[storageName];\r\n if (element) {\r\n oldStorage[storageName][oldRawIndex] = null;\r\n prepareAnimationWhenHasOld(lasts, element);\r\n }\r\n else if (!thisInvisible) {\r\n element = new Ctor();\r\n if (element instanceof Displayable) {\r\n element.z = calculateZ(depth, z);\r\n }\r\n prepareAnimationWhenNoOld(lasts, element);\r\n }\r\n return (thisStorage[storageName][thisRawIndex] = element);\r\n }\r\n function prepareAnimationWhenHasOld(lasts, element) {\r\n var lastCfg = lasts[thisRawIndex] = {};\r\n if (element instanceof Group$1) {\r\n lastCfg.oldX = element.x;\r\n lastCfg.oldY = element.y;\r\n }\r\n else {\r\n lastCfg.oldShape = extend({}, element.shape);\r\n }\r\n }\r\n function prepareAnimationWhenNoOld(lasts, element) {\r\n var lastCfg = lasts[thisRawIndex] = {};\r\n var parentNode = thisNode.parentNode;\r\n var isGroup = element instanceof Group;\r\n if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\r\n var parentOldX = 0;\r\n var parentOldY = 0;\r\n var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\r\n if (!reRoot && parentOldBg && parentOldBg.oldShape) {\r\n parentOldX = parentOldBg.oldShape.width;\r\n parentOldY = parentOldBg.oldShape.height;\r\n }\r\n if (isGroup) {\r\n lastCfg.oldX = 0;\r\n lastCfg.oldY = parentOldY;\r\n }\r\n else {\r\n lastCfg.oldShape = { x: parentOldX, y: parentOldY, width: 0, height: 0 };\r\n }\r\n }\r\n lastCfg.fadein = !isGroup;\r\n }\r\n }\r\n function calculateZ(depth, zInLevel) {\r\n var zb = depth * Z_BASE + zInLevel;\r\n return (zb - 1) / zb;\r\n }\r\n ChartView.registerClass(TreemapView);\n\n var noop$1 = function () { };\r\n var actionTypes = [\r\n 'treemapZoomToNode',\r\n 'treemapRender',\r\n 'treemapMove'\r\n ];\r\n for (var i$1 = 0; i$1 < actionTypes.length; i$1++) {\r\n registerAction({\r\n type: actionTypes[i$1],\r\n update: 'updateView'\r\n }, noop$1);\r\n }\r\n registerAction({ type: 'treemapRootToNode', update: 'updateView' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'series', subType: 'treemap', query: payload }, handleRootToNode);\r\n function handleRootToNode(model, index) {\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, model);\r\n if (targetInfo) {\r\n var originViewRoot = model.getViewRoot();\r\n if (originViewRoot) {\r\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node)\r\n ? 'rollUp' : 'drillDown';\r\n }\r\n model.resetViewRoot(targetInfo.node);\r\n }\r\n }\r\n });\n\n var each$4 = each;\r\n var isObject$4 = isObject;\r\n var CATEGORY_DEFAULT_VISUAL_INDEX = -1;\r\n var VisualMapping = (function () {\r\n function VisualMapping(option) {\r\n var mappingMethod = option.mappingMethod;\r\n var visualType = option.type;\r\n var thisOption = this.option = clone(option);\r\n this.type = visualType;\r\n this.mappingMethod = mappingMethod;\r\n this._normalizeData = normalizers[mappingMethod];\r\n var visualHandler = VisualMapping.visualHandlers[visualType];\r\n this.applyVisual = visualHandler.applyVisual;\r\n this.getColorMapper = visualHandler.getColorMapper;\r\n this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\r\n if (mappingMethod === 'piecewise') {\r\n normalizeVisualRange(thisOption);\r\n preprocessForPiecewise(thisOption);\r\n }\r\n else if (mappingMethod === 'category') {\r\n thisOption.categories\r\n ? preprocessForSpecifiedCategory(thisOption)\r\n : normalizeVisualRange(thisOption, true);\r\n }\r\n else {\r\n assert(mappingMethod !== 'linear' || thisOption.dataExtent);\r\n normalizeVisualRange(thisOption);\r\n }\r\n }\r\n VisualMapping.prototype.mapValueToVisual = function (value) {\r\n var normalized = this._normalizeData(value);\r\n return this._normalizedToVisual(normalized, value);\r\n };\r\n VisualMapping.prototype.getNormalizer = function () {\r\n return bind(this._normalizeData, this);\r\n };\r\n VisualMapping.listVisualTypes = function () {\r\n return keys(VisualMapping.visualHandlers);\r\n };\r\n VisualMapping.isValidType = function (visualType) {\r\n return VisualMapping.visualHandlers.hasOwnProperty(visualType);\r\n };\r\n VisualMapping.eachVisual = function (visual, callback, context) {\r\n if (isObject(visual)) {\r\n each(visual, callback, context);\r\n }\r\n else {\r\n callback.call(context, visual);\r\n }\r\n };\r\n VisualMapping.mapVisual = function (visual, callback, context) {\r\n var isPrimary;\r\n var newVisual = isArray(visual)\r\n ? []\r\n : isObject(visual)\r\n ? {}\r\n : (isPrimary = true, null);\r\n VisualMapping.eachVisual(visual, function (v, key) {\r\n var newVal = callback.call(context, v, key);\r\n isPrimary ? (newVisual = newVal) : (newVisual[key] = newVal);\r\n });\r\n return newVisual;\r\n };\r\n VisualMapping.retrieveVisuals = function (obj) {\r\n var ret = {};\r\n var hasVisual;\r\n obj && each$4(VisualMapping.visualHandlers, function (h, visualType) {\r\n if (obj.hasOwnProperty(visualType)) {\r\n ret[visualType] = obj[visualType];\r\n hasVisual = true;\r\n }\r\n });\r\n return hasVisual ? ret : null;\r\n };\r\n VisualMapping.prepareVisualTypes = function (visualTypes) {\r\n if (isArray(visualTypes)) {\r\n visualTypes = visualTypes.slice();\r\n }\r\n else if (isObject$4(visualTypes)) {\r\n var types_1 = [];\r\n each$4(visualTypes, function (item, type) {\r\n types_1.push(type);\r\n });\r\n visualTypes = types_1;\r\n }\r\n else {\r\n return [];\r\n }\r\n visualTypes.sort(function (type1, type2) {\r\n return (type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0)\r\n ? 1 : -1;\r\n });\r\n return visualTypes;\r\n };\r\n VisualMapping.dependsOn = function (visualType1, visualType2) {\r\n return visualType2 === 'color'\r\n ? !!(visualType1 && visualType1.indexOf(visualType2) === 0)\r\n : visualType1 === visualType2;\r\n };\r\n VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\r\n var possibleI;\r\n var abs = Infinity;\r\n for (var i = 0, len = pieceList.length; i < len; i++) {\r\n var pieceValue = pieceList[i].value;\r\n if (pieceValue != null) {\r\n if (pieceValue === value\r\n || (typeof pieceValue === 'string' && pieceValue === value + '')) {\r\n return i;\r\n }\r\n findClosestWhenOutside && updatePossible(pieceValue, i);\r\n }\r\n }\r\n for (var i = 0, len = pieceList.length; i < len; i++) {\r\n var piece = pieceList[i];\r\n var interval = piece.interval;\r\n var close_1 = piece.close;\r\n if (interval) {\r\n if (interval[0] === -Infinity) {\r\n if (littleThan(close_1[1], value, interval[1])) {\r\n return i;\r\n }\r\n }\r\n else if (interval[1] === Infinity) {\r\n if (littleThan(close_1[0], interval[0], value)) {\r\n return i;\r\n }\r\n }\r\n else if (littleThan(close_1[0], interval[0], value)\r\n && littleThan(close_1[1], value, interval[1])) {\r\n return i;\r\n }\r\n findClosestWhenOutside && updatePossible(interval[0], i);\r\n findClosestWhenOutside && updatePossible(interval[1], i);\r\n }\r\n }\r\n if (findClosestWhenOutside) {\r\n return value === Infinity\r\n ? pieceList.length - 1\r\n : value === -Infinity\r\n ? 0\r\n : possibleI;\r\n }\r\n function updatePossible(val, index) {\r\n var newAbs = Math.abs(val - value);\r\n if (newAbs < abs) {\r\n abs = newAbs;\r\n possibleI = index;\r\n }\r\n }\r\n };\r\n VisualMapping.visualHandlers = {\r\n color: {\r\n applyVisual: makeApplyVisual('color'),\r\n getColorMapper: function () {\r\n var thisOption = this.option;\r\n return bind(thisOption.mappingMethod === 'category'\r\n ? function (value, isNormalized) {\r\n !isNormalized && (value = this._normalizeData(value));\r\n return doMapCategory.call(this, value);\r\n }\r\n : function (value, isNormalized, out) {\r\n var returnRGBArray = !!out;\r\n !isNormalized && (value = this._normalizeData(value));\r\n out = fastLerp(value, thisOption.parsedVisual, out);\r\n return returnRGBArray ? out : stringify(out, 'rgba');\r\n }, this);\r\n },\r\n _normalizedToVisual: {\r\n linear: function (normalized) {\r\n return stringify(fastLerp(normalized, this.option.parsedVisual), 'rgba');\r\n },\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = stringify(fastLerp(normalized, this.option.parsedVisual), 'rgba');\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n }\r\n },\r\n colorHue: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, value);\r\n }),\r\n colorSaturation: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, null, value);\r\n }),\r\n colorLightness: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, null, null, value);\r\n }),\r\n colorAlpha: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyAlpha(color$1, value);\r\n }),\r\n opacity: {\r\n applyVisual: makeApplyVisual('opacity'),\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n },\r\n liftZ: {\r\n applyVisual: makeApplyVisual('liftZ'),\r\n _normalizedToVisual: {\r\n linear: doMapFixed,\r\n category: doMapFixed,\r\n piecewise: doMapFixed,\r\n fixed: doMapFixed\r\n }\r\n },\r\n symbol: {\r\n applyVisual: function (value, getter, setter) {\r\n var symbolCfg = this.mapValueToVisual(value);\r\n setter('symbol', symbolCfg);\r\n },\r\n _normalizedToVisual: {\r\n linear: doMapToArray,\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = doMapToArray.call(this, normalized);\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n }\r\n },\r\n symbolSize: {\r\n applyVisual: makeApplyVisual('symbolSize'),\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n }\r\n };\r\n return VisualMapping;\r\n }());\r\n function preprocessForPiecewise(thisOption) {\r\n var pieceList = thisOption.pieceList;\r\n thisOption.hasSpecialVisual = false;\r\n each(pieceList, function (piece, index) {\r\n piece.originIndex = index;\r\n if (piece.visual != null) {\r\n thisOption.hasSpecialVisual = true;\r\n }\r\n });\r\n }\r\n function preprocessForSpecifiedCategory(thisOption) {\r\n var categories = thisOption.categories;\r\n var categoryMap = thisOption.categoryMap = {};\r\n var visual = thisOption.visual;\r\n each$4(categories, function (cate, index) {\r\n categoryMap[cate] = index;\r\n });\r\n if (!isArray(visual)) {\r\n var visualArr_1 = [];\r\n if (isObject(visual)) {\r\n each$4(visual, function (v, cate) {\r\n var index = categoryMap[cate];\r\n visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\r\n });\r\n }\r\n else {\r\n visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\r\n }\r\n visual = setVisualToOption(thisOption, visualArr_1);\r\n }\r\n for (var i = categories.length - 1; i >= 0; i--) {\r\n if (visual[i] == null) {\r\n delete categoryMap[categories[i]];\r\n categories.pop();\r\n }\r\n }\r\n }\r\n function normalizeVisualRange(thisOption, isCategory) {\r\n var visual = thisOption.visual;\r\n var visualArr = [];\r\n if (isObject(visual)) {\r\n each$4(visual, function (v) {\r\n visualArr.push(v);\r\n });\r\n }\r\n else if (visual != null) {\r\n visualArr.push(visual);\r\n }\r\n var doNotNeedPair = { color: 1, symbol: 1 };\r\n if (!isCategory\r\n && visualArr.length === 1\r\n && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\r\n visualArr[1] = visualArr[0];\r\n }\r\n setVisualToOption(thisOption, visualArr);\r\n }\r\n function makePartialColorVisualHandler(applyValue) {\r\n return {\r\n applyVisual: function (value, getter, setter) {\r\n var colorChannel = this.mapValueToVisual(value);\r\n setter('color', applyValue(getter('color'), colorChannel));\r\n },\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n };\r\n }\r\n function doMapToArray(normalized) {\r\n var visual = this.option.visual;\r\n return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\r\n }\r\n function makeApplyVisual(visualType) {\r\n return function (value, getter, setter) {\r\n setter(visualType, this.mapValueToVisual(value));\r\n };\r\n }\r\n function doMapCategory(normalized) {\r\n var visual = this.option.visual;\r\n return visual[(this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX)\r\n ? normalized % visual.length\r\n : normalized];\r\n }\r\n function doMapFixed() {\r\n return this.option.visual[0];\r\n }\r\n function createNormalizedToNumericVisual(sourceExtent) {\r\n return {\r\n linear: function (normalized) {\r\n return linearMap(normalized, sourceExtent, this.option.visual, true);\r\n },\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = linearMap(normalized, sourceExtent, this.option.visual, true);\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n };\r\n }\r\n function getSpecifiedVisual(value) {\r\n var thisOption = this.option;\r\n var pieceList = thisOption.pieceList;\r\n if (thisOption.hasSpecialVisual) {\r\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\r\n var piece = pieceList[pieceIndex];\r\n if (piece && piece.visual) {\r\n return piece.visual[this.type];\r\n }\r\n }\r\n }\r\n function setVisualToOption(thisOption, visualArr) {\r\n thisOption.visual = visualArr;\r\n if (thisOption.type === 'color') {\r\n thisOption.parsedVisual = map(visualArr, function (item) {\r\n return parse(item);\r\n });\r\n }\r\n return visualArr;\r\n }\r\n var normalizers = {\r\n linear: function (value) {\r\n return linearMap(value, this.option.dataExtent, [0, 1], true);\r\n },\r\n piecewise: function (value) {\r\n var pieceList = this.option.pieceList;\r\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\r\n if (pieceIndex != null) {\r\n return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\r\n }\r\n },\r\n category: function (value) {\r\n var index = this.option.categories\r\n ? this.option.categoryMap[value]\r\n : value;\r\n return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\r\n },\r\n fixed: noop\r\n };\r\n function littleThan(close, a, b) {\r\n return close ? a <= b : a < b;\r\n }\n\n var ITEM_STYLE_NORMAL = 'itemStyle';\r\n var inner$b = makeInner();\r\n var treemapVisual = {\r\n seriesType: 'treemap',\r\n reset: function (seriesModel) {\r\n var tree = seriesModel.getData().tree;\r\n var root = tree.root;\r\n var seriesItemStyleModel = seriesModel.getModel(ITEM_STYLE_NORMAL);\r\n if (root.isRemoved()) {\r\n return;\r\n }\r\n var levelItemStyles = map(tree.levelModels, function (levelModel) {\r\n return levelModel ? levelModel.get(ITEM_STYLE_NORMAL) : null;\r\n });\r\n travelTree(root, {}, levelItemStyles, seriesItemStyleModel, seriesModel.getViewRoot().getAncestors(), seriesModel);\r\n }\r\n };\r\n function travelTree(node, designatedVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel) {\r\n var nodeModel = node.getModel();\r\n var nodeLayout = node.getLayout();\r\n var data = node.hostTree.data;\r\n if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\r\n return;\r\n }\r\n var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\r\n var levelItemStyle = levelItemStyles[node.depth];\r\n var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel);\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n var borderColor = nodeItemStyleModel.get('borderColor');\r\n var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\r\n var thisNodeColor;\r\n if (borderColorSaturation != null) {\r\n thisNodeColor = calculateColor(visuals);\r\n borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\r\n }\r\n existsStyle.stroke = borderColor;\r\n var viewChildren = node.viewChildren;\r\n if (!viewChildren || !viewChildren.length) {\r\n thisNodeColor = calculateColor(visuals);\r\n existsStyle.fill = thisNodeColor;\r\n }\r\n else {\r\n var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\r\n each(viewChildren, function (child, index) {\r\n if (child.depth >= viewRootAncestors.length\r\n || child === viewRootAncestors[child.depth]) {\r\n var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\r\n travelTree(child, childVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel);\r\n }\r\n });\r\n }\r\n }\r\n function buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel) {\r\n var visuals = extend({}, designatedVisual);\r\n each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\r\n var val = nodeItemStyleModel.get(visualName, true);\r\n val == null && levelItemStyle && (val = levelItemStyle[visualName]);\r\n val == null && (val = designatedVisual[visualName]);\r\n val == null && (val = seriesItemStyleModel.get(visualName));\r\n val != null && (visuals[visualName] = val);\r\n });\r\n return visuals;\r\n }\r\n function calculateColor(visuals) {\r\n var color = getValueVisualDefine(visuals, 'color');\r\n if (color) {\r\n var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\r\n var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\r\n if (colorSaturation) {\r\n color = modifyHSL(color, null, null, colorSaturation);\r\n }\r\n if (colorAlpha) {\r\n color = modifyAlpha(color, colorAlpha);\r\n }\r\n return color;\r\n }\r\n }\r\n function calculateBorderColor(borderColorSaturation, thisNodeColor) {\r\n return thisNodeColor != null\r\n ? modifyHSL(thisNodeColor, null, null, borderColorSaturation)\r\n : null;\r\n }\r\n function getValueVisualDefine(visuals, name) {\r\n var value = visuals[name];\r\n if (value != null && value !== 'none') {\r\n return value;\r\n }\r\n }\r\n function buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\r\n if (!viewChildren || !viewChildren.length) {\r\n return;\r\n }\r\n var rangeVisual = getRangeVisual(nodeModel, 'color')\r\n || (visuals.color != null\r\n && visuals.color !== 'none'\r\n && (getRangeVisual(nodeModel, 'colorAlpha')\r\n || getRangeVisual(nodeModel, 'colorSaturation')));\r\n if (!rangeVisual) {\r\n return;\r\n }\r\n var visualMin = nodeModel.get('visualMin');\r\n var visualMax = nodeModel.get('visualMax');\r\n var dataExtent = nodeLayout.dataExtent.slice();\r\n visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\r\n visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\r\n var colorMappingBy = nodeModel.get('colorMappingBy');\r\n var opt = {\r\n type: rangeVisual.name,\r\n dataExtent: dataExtent,\r\n visual: rangeVisual.range\r\n };\r\n if (opt.type === 'color'\r\n && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\r\n opt.mappingMethod = 'category';\r\n opt.loop = true;\r\n }\r\n else {\r\n opt.mappingMethod = 'linear';\r\n }\r\n var mapping = new VisualMapping(opt);\r\n inner$b(mapping).drColorMappingBy = colorMappingBy;\r\n return mapping;\r\n }\r\n function getRangeVisual(nodeModel, name) {\r\n var range = nodeModel.get(name);\r\n return (isArray(range) && range.length) ? {\r\n name: name,\r\n range: range\r\n } : null;\r\n }\r\n function mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\r\n var childVisuals = extend({}, visuals);\r\n if (mapping) {\r\n var mappingType = mapping.type;\r\n var colorMappingBy = mappingType === 'color' && inner$b(mapping).drColorMappingBy;\r\n var value = colorMappingBy === 'index'\r\n ? index\r\n : colorMappingBy === 'id'\r\n ? seriesModel.mapIdToIndex(child.getId())\r\n : child.getValue(nodeModel.get('visualDimension'));\r\n childVisuals[mappingType] = mapping.mapValueToVisual(value);\r\n }\r\n return childVisuals;\r\n }\n\n var mathMax$5 = Math.max;\r\n var mathMin$5 = Math.min;\r\n var retrieveValue = retrieve;\r\n var each$5 = each;\r\n var PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\r\n var PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\r\n var PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\r\n var PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\r\n var treemapLayout = {\r\n seriesType: 'treemap',\r\n reset: function (seriesModel, ecModel, api, payload) {\r\n var ecWidth = api.getWidth();\r\n var ecHeight = api.getHeight();\r\n var seriesOption = seriesModel.option;\r\n var layoutInfo = getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n var size = seriesOption.size || [];\r\n var containerWidth = parsePercent$2(retrieveValue(layoutInfo.width, size[0]), ecWidth);\r\n var containerHeight = parsePercent$2(retrieveValue(layoutInfo.height, size[1]), ecHeight);\r\n var payloadType = payload && payload.type;\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, seriesModel);\r\n var rootRect = (payloadType === 'treemapRender' || payloadType === 'treemapMove')\r\n ? payload.rootRect : null;\r\n var viewRoot = seriesModel.getViewRoot();\r\n var viewAbovePath = getPathToRoot(viewRoot);\r\n if (payloadType !== 'treemapMove') {\r\n var rootSize = payloadType === 'treemapZoomToNode'\r\n ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight)\r\n : rootRect\r\n ? [rootRect.width, rootRect.height]\r\n : [containerWidth, containerHeight];\r\n var sort_1 = seriesOption.sort;\r\n if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\r\n sort_1 = 'desc';\r\n }\r\n var options = {\r\n squareRatio: seriesOption.squareRatio,\r\n sort: sort_1,\r\n leafDepth: seriesOption.leafDepth\r\n };\r\n viewRoot.hostTree.clearLayouts();\r\n var viewRootLayout_1 = {\r\n x: 0,\r\n y: 0,\r\n width: rootSize[0],\r\n height: rootSize[1],\r\n area: rootSize[0] * rootSize[1]\r\n };\r\n viewRoot.setLayout(viewRootLayout_1);\r\n squarify(viewRoot, options, false, 0);\r\n viewRootLayout_1 = viewRoot.getLayout();\r\n each$5(viewAbovePath, function (node, index) {\r\n var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\r\n node.setLayout(extend({\r\n dataExtent: [childValue, childValue],\r\n borderWidth: 0,\r\n upperHeight: 0\r\n }, viewRootLayout_1));\r\n });\r\n }\r\n var treeRoot = seriesModel.getData().tree.root;\r\n treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\r\n seriesModel.setLayoutInfo(layoutInfo);\r\n prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\r\n }\r\n };\r\n function squarify(node, options, hideChildren, depth) {\r\n var width;\r\n var height;\r\n if (node.isRemoved()) {\r\n return;\r\n }\r\n var thisLayout = node.getLayout();\r\n width = thisLayout.width;\r\n height = thisLayout.height;\r\n var nodeModel = node.getModel();\r\n var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\r\n var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\r\n var upperLabelHeight = getUpperLabelHeight(nodeModel);\r\n var upperHeight = Math.max(borderWidth, upperLabelHeight);\r\n var layoutOffset = borderWidth - halfGapWidth;\r\n var layoutOffsetUpper = upperHeight - halfGapWidth;\r\n node.setLayout({\r\n borderWidth: borderWidth,\r\n upperHeight: upperHeight,\r\n upperLabelHeight: upperLabelHeight\r\n }, true);\r\n width = mathMax$5(width - 2 * layoutOffset, 0);\r\n height = mathMax$5(height - layoutOffset - layoutOffsetUpper, 0);\r\n var totalArea = width * height;\r\n var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\r\n if (!viewChildren.length) {\r\n return;\r\n }\r\n var rect = { x: layoutOffset, y: layoutOffsetUpper, width: width, height: height };\r\n var rowFixedLength = mathMin$5(width, height);\r\n var best = Infinity;\r\n var row = [];\r\n row.area = 0;\r\n for (var i = 0, len = viewChildren.length; i < len;) {\r\n var child = viewChildren[i];\r\n row.push(child);\r\n row.area += child.getLayout().area;\r\n var score = worst(row, rowFixedLength, options.squareRatio);\r\n if (score <= best) {\r\n i++;\r\n best = score;\r\n }\r\n else {\r\n row.area -= row.pop().getLayout().area;\r\n position(row, rowFixedLength, rect, halfGapWidth, false);\r\n rowFixedLength = mathMin$5(rect.width, rect.height);\r\n row.length = row.area = 0;\r\n best = Infinity;\r\n }\r\n }\r\n if (row.length) {\r\n position(row, rowFixedLength, rect, halfGapWidth, true);\r\n }\r\n if (!hideChildren) {\r\n var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\r\n if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\r\n hideChildren = true;\r\n }\r\n }\r\n for (var i = 0, len = viewChildren.length; i < len; i++) {\r\n squarify(viewChildren[i], options, hideChildren, depth + 1);\r\n }\r\n }\r\n function initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\r\n var viewChildren = node.children || [];\r\n var orderBy = options.sort;\r\n orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\r\n var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\r\n if (hideChildren && !overLeafDepth) {\r\n return (node.viewChildren = []);\r\n }\r\n viewChildren = filter(viewChildren, function (child) {\r\n return !child.isRemoved();\r\n });\r\n sort$1(viewChildren, orderBy);\r\n var info = statistic(nodeModel, viewChildren, orderBy);\r\n if (info.sum === 0) {\r\n return (node.viewChildren = []);\r\n }\r\n info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\r\n if (info.sum === 0) {\r\n return (node.viewChildren = []);\r\n }\r\n for (var i = 0, len = viewChildren.length; i < len; i++) {\r\n var area = viewChildren[i].getValue() / info.sum * totalArea;\r\n viewChildren[i].setLayout({\r\n area: area\r\n });\r\n }\r\n if (overLeafDepth) {\r\n viewChildren.length && node.setLayout({\r\n isLeafRoot: true\r\n }, true);\r\n viewChildren.length = 0;\r\n }\r\n node.viewChildren = viewChildren;\r\n node.setLayout({\r\n dataExtent: info.dataExtent\r\n }, true);\r\n return viewChildren;\r\n }\r\n function filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\r\n if (!orderBy) {\r\n return sum;\r\n }\r\n var visibleMin = nodeModel.get('visibleMin');\r\n var len = orderedChildren.length;\r\n var deletePoint = len;\r\n for (var i = len - 1; i >= 0; i--) {\r\n var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\r\n if (value / sum * totalArea < visibleMin) {\r\n deletePoint = i;\r\n sum -= value;\r\n }\r\n }\r\n orderBy === 'asc'\r\n ? orderedChildren.splice(0, len - deletePoint)\r\n : orderedChildren.splice(deletePoint, len - deletePoint);\r\n return sum;\r\n }\r\n function sort$1(viewChildren, orderBy) {\r\n if (orderBy) {\r\n viewChildren.sort(function (a, b) {\r\n var diff = orderBy === 'asc'\r\n ? a.getValue() - b.getValue()\r\n : b.getValue() - a.getValue();\r\n return diff === 0\r\n ? (orderBy === 'asc'\r\n ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex)\r\n : diff;\r\n });\r\n }\r\n return viewChildren;\r\n }\r\n function statistic(nodeModel, children, orderBy) {\r\n var sum = 0;\r\n for (var i = 0, len = children.length; i < len; i++) {\r\n sum += children[i].getValue();\r\n }\r\n var dimension = nodeModel.get('visualDimension');\r\n var dataExtent;\r\n if (!children || !children.length) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n else if (dimension === 'value' && orderBy) {\r\n dataExtent = [\r\n children[children.length - 1].getValue(),\r\n children[0].getValue()\r\n ];\r\n orderBy === 'asc' && dataExtent.reverse();\r\n }\r\n else {\r\n dataExtent = [Infinity, -Infinity];\r\n each$5(children, function (child) {\r\n var value = child.getValue(dimension);\r\n value < dataExtent[0] && (dataExtent[0] = value);\r\n value > dataExtent[1] && (dataExtent[1] = value);\r\n });\r\n }\r\n return { sum: sum, dataExtent: dataExtent };\r\n }\r\n function worst(row, rowFixedLength, ratio) {\r\n var areaMax = 0;\r\n var areaMin = Infinity;\r\n for (var i = 0, area = void 0, len = row.length; i < len; i++) {\r\n area = row[i].getLayout().area;\r\n if (area) {\r\n area < areaMin && (areaMin = area);\r\n area > areaMax && (areaMax = area);\r\n }\r\n }\r\n var squareArea = row.area * row.area;\r\n var f = rowFixedLength * rowFixedLength * ratio;\r\n return squareArea\r\n ? mathMax$5((f * areaMax) / squareArea, squareArea / (f * areaMin))\r\n : Infinity;\r\n }\r\n function position(row, rowFixedLength, rect, halfGapWidth, flush) {\r\n var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\r\n var idx1WhenH = 1 - idx0WhenH;\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n var last = rect[xy[idx0WhenH]];\r\n var rowOtherLength = rowFixedLength\r\n ? row.area / rowFixedLength : 0;\r\n if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\r\n rowOtherLength = rect[wh[idx1WhenH]];\r\n }\r\n for (var i = 0, rowLen = row.length; i < rowLen; i++) {\r\n var node = row[i];\r\n var nodeLayout = {};\r\n var step = rowOtherLength\r\n ? node.getLayout().area / rowOtherLength : 0;\r\n var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax$5(rowOtherLength - 2 * halfGapWidth, 0);\r\n var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\r\n var modWH = (i === rowLen - 1 || remain < step) ? remain : step;\r\n var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax$5(modWH - 2 * halfGapWidth, 0);\r\n nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin$5(halfGapWidth, wh1 / 2);\r\n nodeLayout[xy[idx0WhenH]] = last + mathMin$5(halfGapWidth, wh0 / 2);\r\n last += modWH;\r\n node.setLayout(nodeLayout, true);\r\n }\r\n rect[xy[idx1WhenH]] += rowOtherLength;\r\n rect[wh[idx1WhenH]] -= rowOtherLength;\r\n }\r\n function estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\r\n var currNode = (targetInfo || {}).node;\r\n var defaultSize = [containerWidth, containerHeight];\r\n if (!currNode || currNode === viewRoot) {\r\n return defaultSize;\r\n }\r\n var parent;\r\n var viewArea = containerWidth * containerHeight;\r\n var area = viewArea * seriesModel.option.zoomToNodeRatio;\r\n while (parent = currNode.parentNode) {\r\n var sum = 0;\r\n var siblings = parent.children;\r\n for (var i = 0, len = siblings.length; i < len; i++) {\r\n sum += siblings[i].getValue();\r\n }\r\n var currNodeValue = currNode.getValue();\r\n if (currNodeValue === 0) {\r\n return defaultSize;\r\n }\r\n area *= sum / currNodeValue;\r\n var parentModel = parent.getModel();\r\n var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\r\n var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\r\n area += 4 * borderWidth * borderWidth\r\n + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\r\n area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\r\n currNode = parent;\r\n }\r\n area < viewArea && (area = viewArea);\r\n var scale = Math.pow(area / viewArea, 0.5);\r\n return [containerWidth * scale, containerHeight * scale];\r\n }\r\n function calculateRootPosition(layoutInfo, rootRect, targetInfo) {\r\n if (rootRect) {\r\n return { x: rootRect.x, y: rootRect.y };\r\n }\r\n var defaultPosition = { x: 0, y: 0 };\r\n if (!targetInfo) {\r\n return defaultPosition;\r\n }\r\n var targetNode = targetInfo.node;\r\n var layout = targetNode.getLayout();\r\n if (!layout) {\r\n return defaultPosition;\r\n }\r\n var targetCenter = [layout.width / 2, layout.height / 2];\r\n var node = targetNode;\r\n while (node) {\r\n var nodeLayout = node.getLayout();\r\n targetCenter[0] += nodeLayout.x;\r\n targetCenter[1] += nodeLayout.y;\r\n node = node.parentNode;\r\n }\r\n return {\r\n x: layoutInfo.width / 2 - targetCenter[0],\r\n y: layoutInfo.height / 2 - targetCenter[1]\r\n };\r\n }\r\n function prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\r\n var nodeLayout = node.getLayout();\r\n var nodeInViewAbovePath = viewAbovePath[depth];\r\n var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\r\n if ((nodeInViewAbovePath && !isAboveViewRoot)\r\n || (depth === viewAbovePath.length && node !== viewRoot)) {\r\n return;\r\n }\r\n node.setLayout({\r\n isInView: true,\r\n invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\r\n isAboveViewRoot: isAboveViewRoot\r\n }, true);\r\n var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\r\n each$5(node.viewChildren || [], function (child) {\r\n prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\r\n });\r\n }\r\n function getUpperLabelHeight(model) {\r\n return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\r\n }\n\n registerVisual(treemapVisual);\r\n registerLayout(treemapLayout);\n\n function generateNodeKey(id) {\r\n return '_EC_' + id;\r\n }\r\n var Graph = (function () {\r\n function Graph(directed) {\r\n this.type = 'graph';\r\n this.nodes = [];\r\n this.edges = [];\r\n this._nodesMap = {};\r\n this._edgesMap = {};\r\n this._directed = directed || false;\r\n }\r\n Graph.prototype.isDirected = function () {\r\n return this._directed;\r\n };\r\n Graph.prototype.addNode = function (id, dataIndex) {\r\n id = id == null ? ('' + dataIndex) : ('' + id);\r\n var nodesMap = this._nodesMap;\r\n if (nodesMap[generateNodeKey(id)]) {\r\n if (__DEV__) {\r\n console.error('Graph nodes have duplicate name or id');\r\n }\r\n return;\r\n }\r\n var node = new GraphNode(id, dataIndex);\r\n node.hostGraph = this;\r\n this.nodes.push(node);\r\n nodesMap[generateNodeKey(id)] = node;\r\n return node;\r\n };\r\n Graph.prototype.getNodeByIndex = function (dataIndex) {\r\n var rawIdx = this.data.getRawIndex(dataIndex);\r\n return this.nodes[rawIdx];\r\n };\r\n Graph.prototype.getNodeById = function (id) {\r\n return this._nodesMap[generateNodeKey(id)];\r\n };\r\n Graph.prototype.addEdge = function (n1, n2, dataIndex) {\r\n var nodesMap = this._nodesMap;\r\n var edgesMap = this._edgesMap;\r\n if (typeof n1 === 'number') {\r\n n1 = this.nodes[n1];\r\n }\r\n if (typeof n2 === 'number') {\r\n n2 = this.nodes[n2];\r\n }\r\n if (!(n1 instanceof GraphNode)) {\r\n n1 = nodesMap[generateNodeKey(n1)];\r\n }\r\n if (!(n2 instanceof GraphNode)) {\r\n n2 = nodesMap[generateNodeKey(n2)];\r\n }\r\n if (!n1 || !n2) {\r\n return;\r\n }\r\n var key = n1.id + '-' + n2.id;\r\n if (edgesMap[key]) {\r\n return;\r\n }\r\n var edge = new GraphEdge(n1, n2, dataIndex);\r\n edge.hostGraph = this;\r\n if (this._directed) {\r\n n1.outEdges.push(edge);\r\n n2.inEdges.push(edge);\r\n }\r\n n1.edges.push(edge);\r\n if (n1 !== n2) {\r\n n2.edges.push(edge);\r\n }\r\n this.edges.push(edge);\r\n edgesMap[key] = edge;\r\n return edge;\r\n };\r\n Graph.prototype.getEdgeByIndex = function (dataIndex) {\r\n var rawIdx = this.edgeData.getRawIndex(dataIndex);\r\n return this.edges[rawIdx];\r\n };\r\n Graph.prototype.getEdge = function (n1, n2) {\r\n if (n1 instanceof GraphNode) {\r\n n1 = n1.id;\r\n }\r\n if (n2 instanceof GraphNode) {\r\n n2 = n2.id;\r\n }\r\n var edgesMap = this._edgesMap;\r\n if (this._directed) {\r\n return edgesMap[n1 + '-' + n2];\r\n }\r\n else {\r\n return edgesMap[n1 + '-' + n2]\r\n || edgesMap[n2 + '-' + n1];\r\n }\r\n };\r\n Graph.prototype.eachNode = function (cb, context) {\r\n var nodes = this.nodes;\r\n var len = nodes.length;\r\n for (var i = 0; i < len; i++) {\r\n if (nodes[i].dataIndex >= 0) {\r\n cb.call(context, nodes[i], i);\r\n }\r\n }\r\n };\r\n Graph.prototype.eachEdge = function (cb, context) {\r\n var edges = this.edges;\r\n var len = edges.length;\r\n for (var i = 0; i < len; i++) {\r\n if (edges[i].dataIndex >= 0\r\n && edges[i].node1.dataIndex >= 0\r\n && edges[i].node2.dataIndex >= 0) {\r\n cb.call(context, edges[i], i);\r\n }\r\n }\r\n };\r\n Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\r\n if (!(startNode instanceof GraphNode)) {\r\n startNode = this._nodesMap[generateNodeKey(startNode)];\r\n }\r\n if (!startNode) {\r\n return;\r\n }\r\n var edgeType = direction === 'out'\r\n ? 'outEdges' : (direction === 'in' ? 'inEdges' : 'edges');\r\n for (var i = 0; i < this.nodes.length; i++) {\r\n this.nodes[i].__visited = false;\r\n }\r\n if (cb.call(context, startNode, null)) {\r\n return;\r\n }\r\n var queue = [startNode];\r\n while (queue.length) {\r\n var currentNode = queue.shift();\r\n var edges = currentNode[edgeType];\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n var otherNode = e.node1 === currentNode\r\n ? e.node2 : e.node1;\r\n if (!otherNode.__visited) {\r\n if (cb.call(context, otherNode, currentNode)) {\r\n return;\r\n }\r\n queue.push(otherNode);\r\n otherNode.__visited = true;\r\n }\r\n }\r\n }\r\n };\r\n Graph.prototype.update = function () {\r\n var data = this.data;\r\n var edgeData = this.edgeData;\r\n var nodes = this.nodes;\r\n var edges = this.edges;\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n nodes[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n nodes[data.getRawIndex(i)].dataIndex = i;\r\n }\r\n edgeData.filterSelf(function (idx) {\r\n var edge = edges[edgeData.getRawIndex(idx)];\r\n return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\r\n });\r\n for (var i = 0, len = edges.length; i < len; i++) {\r\n edges[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = edgeData.count(); i < len; i++) {\r\n edges[edgeData.getRawIndex(i)].dataIndex = i;\r\n }\r\n };\r\n Graph.prototype.clone = function () {\r\n var graph = new Graph(this._directed);\r\n var nodes = this.nodes;\r\n var edges = this.edges;\r\n for (var i = 0; i < nodes.length; i++) {\r\n graph.addNode(nodes[i].id, nodes[i].dataIndex);\r\n }\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\r\n }\r\n return graph;\r\n };\r\n return Graph;\r\n }());\r\n var GraphNode = (function () {\r\n function GraphNode(id, dataIndex) {\r\n this.inEdges = [];\r\n this.outEdges = [];\r\n this.edges = [];\r\n this.dataIndex = -1;\r\n this.id = id == null ? '' : id;\r\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\r\n }\r\n GraphNode.prototype.degree = function () {\r\n return this.edges.length;\r\n };\r\n GraphNode.prototype.inDegree = function () {\r\n return this.inEdges.length;\r\n };\r\n GraphNode.prototype.outDegree = function () {\r\n return this.outEdges.length;\r\n };\r\n GraphNode.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var graph = this.hostGraph;\r\n var itemModel = graph.data.getItemModel(this.dataIndex);\r\n return itemModel.getModel(path);\r\n };\r\n GraphNode.prototype.getAdjacentDataIndices = function () {\r\n var dataIndices = {\r\n edge: [],\r\n node: []\r\n };\r\n for (var i = 0; i < this.edges.length; i++) {\r\n var adjacentEdge = this.edges[i];\r\n if (adjacentEdge.dataIndex < 0) {\r\n continue;\r\n }\r\n dataIndices.edge.push(adjacentEdge.dataIndex);\r\n dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\r\n }\r\n return dataIndices;\r\n };\r\n return GraphNode;\r\n }());\r\n var GraphEdge = (function () {\r\n function GraphEdge(n1, n2, dataIndex) {\r\n this.dataIndex = -1;\r\n this.node1 = n1;\r\n this.node2 = n2;\r\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\r\n }\r\n GraphEdge.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var graph = this.hostGraph;\r\n var itemModel = graph.edgeData.getItemModel(this.dataIndex);\r\n return itemModel.getModel(path);\r\n };\r\n GraphEdge.prototype.getAdjacentDataIndices = function () {\r\n return {\r\n edge: [this.dataIndex],\r\n node: [this.node1.dataIndex, this.node2.dataIndex]\r\n };\r\n };\r\n return GraphEdge;\r\n }());\r\n function createGraphDataProxyMixin(hostName, dataName) {\r\n return {\r\n getValue: function (dimension) {\r\n var data = this[hostName][dataName];\r\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\r\n },\r\n setVisual: function (key, value) {\r\n this.dataIndex >= 0\r\n && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\r\n },\r\n getVisual: function (key) {\r\n return this[hostName][dataName].getItemVisual(this.dataIndex, key);\r\n },\r\n setLayout: function (layout, merge) {\r\n this.dataIndex >= 0\r\n && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\r\n },\r\n getLayout: function () {\r\n return this[hostName][dataName].getItemLayout(this.dataIndex);\r\n },\r\n getGraphicEl: function () {\r\n return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\r\n },\r\n getRawIndex: function () {\r\n return this[hostName][dataName].getRawIndex(this.dataIndex);\r\n }\r\n };\r\n }\r\n mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\r\n mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\n\n function createGraphFromNodeEdge (nodes, edges, seriesModel, directed, beforeLink) {\r\n var graph = new Graph(directed);\r\n for (var i = 0; i < nodes.length; i++) {\r\n graph.addNode(retrieve(nodes[i].id, nodes[i].name, i), i);\r\n }\r\n var linkNameList = [];\r\n var validEdges = [];\r\n var linkCount = 0;\r\n for (var i = 0; i < edges.length; i++) {\r\n var link = edges[i];\r\n var source = link.source;\r\n var target = link.target;\r\n if (graph.addEdge(source, target, linkCount)) {\r\n validEdges.push(link);\r\n linkNameList.push(retrieve(link.id != null ? link.id + '' : null, source + ' > ' + target));\r\n linkCount++;\r\n }\r\n }\r\n var coordSys = seriesModel.get('coordinateSystem');\r\n var nodeData;\r\n if (coordSys === 'cartesian2d' || coordSys === 'polar') {\r\n nodeData = createListFromArray(nodes, seriesModel);\r\n }\r\n else {\r\n var coordSysCtor = CoordinateSystemManager.get(coordSys);\r\n var coordDimensions = coordSysCtor\r\n ? (coordSysCtor.dimensions || []) : [];\r\n if (indexOf(coordDimensions, 'value') < 0) {\r\n coordDimensions.concat(['value']);\r\n }\r\n var dimensionNames = createDimensions(nodes, {\r\n coordDimensions: coordDimensions\r\n });\r\n nodeData = new List(dimensionNames, seriesModel);\r\n nodeData.initData(nodes);\r\n }\r\n var edgeData = new List(['value'], seriesModel);\r\n edgeData.initData(validEdges, linkNameList);\r\n beforeLink && beforeLink(nodeData, edgeData);\r\n linkList({\r\n mainData: nodeData,\r\n struct: graph,\r\n structAttr: 'graph',\r\n datas: { node: nodeData, edge: edgeData },\r\n datasAttr: { node: 'data', edge: 'edgeData' }\r\n });\r\n graph.update();\r\n return graph;\r\n }\n\n var GraphSeriesModel = (function (_super) {\r\n __extends(GraphSeriesModel, _super);\r\n function GraphSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n GraphSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n var self = this;\r\n function getCategoriesData() {\r\n return self._categoriesData;\r\n }\r\n this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\r\n this.fillDataTextStyle(option.edges || option.links);\r\n this._updateCategoriesData();\r\n };\r\n GraphSeriesModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n this.fillDataTextStyle(option.edges || option.links);\r\n this._updateCategoriesData();\r\n };\r\n GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\r\n _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\r\n defaultEmphasis(option, 'edgeLabel', ['show']);\r\n };\r\n GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var edges = option.edges || option.links || [];\r\n var nodes = option.data || option.nodes || [];\r\n var self = this;\r\n if (nodes && edges) {\r\n return createGraphFromNodeEdge(nodes, edges, this, true, beforeLink).data;\r\n }\r\n function beforeLink(nodeData, edgeData) {\r\n nodeData.wrapMethod('getItemModel', function (model) {\r\n var categoriesModels = self._categoriesModels;\r\n var categoryIdx = model.getShallow('category');\r\n var categoryModel = categoriesModels[categoryIdx];\r\n if (categoryModel) {\r\n categoryModel.parentModel = model.parentModel;\r\n model.parentModel = categoryModel;\r\n }\r\n return model;\r\n });\r\n var oldGetModel = Model.prototype.getModel;\r\n function newGetModel(path, parentModel) {\r\n var model = oldGetModel.call(this, path, parentModel);\r\n model.resolveParentPath = resolveParentPath;\r\n return model;\r\n }\r\n edgeData.wrapMethod('getItemModel', function (model) {\r\n model.resolveParentPath = resolveParentPath;\r\n model.getModel = newGetModel;\r\n return model;\r\n });\r\n function resolveParentPath(pathArr) {\r\n if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\r\n var newPathArr = pathArr.slice();\r\n if (pathArr[0] === 'label') {\r\n newPathArr[0] = 'edgeLabel';\r\n }\r\n else if (pathArr[1] === 'label') {\r\n newPathArr[1] = 'edgeLabel';\r\n }\r\n return newPathArr;\r\n }\r\n return pathArr;\r\n }\r\n }\r\n };\r\n GraphSeriesModel.prototype.getGraph = function () {\r\n return this.getData().graph;\r\n };\r\n GraphSeriesModel.prototype.getEdgeData = function () {\r\n return this.getGraph().edgeData;\r\n };\r\n GraphSeriesModel.prototype.getCategoriesData = function () {\r\n return this._categoriesData;\r\n };\r\n GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n if (dataType === 'edge') {\r\n var nodeData = this.getData();\r\n var params = this.getDataParams(dataIndex, dataType);\r\n var edge = nodeData.graph.getEdgeByIndex(dataIndex);\r\n var sourceName = nodeData.getName(edge.node1.dataIndex);\r\n var targetName = nodeData.getName(edge.node2.dataIndex);\r\n var html = [];\r\n sourceName != null && html.push(sourceName);\r\n targetName != null && html.push(targetName);\r\n var htmlStr = encodeHTML(html.join(' > '));\r\n if (params.value) {\r\n htmlStr += ' : ' + encodeHTML(params.value);\r\n }\r\n return htmlStr;\r\n }\r\n else {\r\n return _super.prototype.formatTooltip.apply(this, arguments);\r\n }\r\n };\r\n GraphSeriesModel.prototype._updateCategoriesData = function () {\r\n var categories = map(this.option.categories || [], function (category) {\r\n return category.value != null ? category : extend({\r\n value: 0\r\n }, category);\r\n });\r\n var categoriesData = new List(['value'], this);\r\n categoriesData.initData(categories);\r\n this._categoriesData = categoriesData;\r\n this._categoriesModels = categoriesData.mapArray(function (idx) {\r\n return categoriesData.getItemModel(idx);\r\n });\r\n };\r\n GraphSeriesModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n GraphSeriesModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n GraphSeriesModel.prototype.isAnimationEnabled = function () {\r\n return _super.prototype.isAnimationEnabled.call(this)\r\n && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\r\n };\r\n GraphSeriesModel.type = 'series.graph';\r\n GraphSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n legendHoverLink: true,\r\n layout: null,\r\n focusNodeAdjacency: false,\r\n circular: {\r\n rotateLabel: false\r\n },\r\n force: {\r\n initLayout: null,\r\n repulsion: [0, 50],\r\n gravity: 0.1,\r\n friction: 0.6,\r\n edgeLength: 30,\r\n layoutAnimation: true\r\n },\r\n left: 'center',\r\n top: 'center',\r\n symbol: 'circle',\r\n symbolSize: 10,\r\n edgeSymbol: ['none', 'none'],\r\n edgeSymbolSize: 10,\r\n edgeLabel: {\r\n position: 'middle',\r\n distance: 5\r\n },\r\n draggable: false,\r\n roam: false,\r\n center: null,\r\n zoom: 1,\r\n nodeScaleRatio: 0.6,\r\n label: {\r\n show: false,\r\n formatter: '{b}'\r\n },\r\n itemStyle: {},\r\n lineStyle: {\r\n color: '#aaa',\r\n width: 1,\r\n curveness: 0,\r\n opacity: 0.5\r\n },\r\n emphasis: {\r\n scale: true,\r\n label: {\r\n show: true\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return GraphSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(GraphSeriesModel);\n\n var straightLineProto = Line.prototype;\r\n var bezierCurveProto = BezierCurve.prototype;\r\n var StraightLineShape = (function () {\r\n function StraightLineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return StraightLineShape;\r\n }());\r\n var CurveShape = (function (_super) {\r\n __extends(CurveShape, _super);\r\n function CurveShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return CurveShape;\r\n }(StraightLineShape));\r\n function isStraightLine(shape) {\r\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\r\n }\r\n var ECLinePath = (function (_super) {\r\n __extends(ECLinePath, _super);\r\n function ECLinePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-line';\r\n return _this;\r\n }\r\n ECLinePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECLinePath.prototype.getDefaultShape = function () {\r\n return new StraightLineShape();\r\n };\r\n ECLinePath.prototype.buildPath = function (ctx, shape) {\r\n if (isStraightLine(shape)) {\r\n straightLineProto.buildPath.call(this, ctx, shape);\r\n }\r\n else {\r\n bezierCurveProto.buildPath.call(this, ctx, shape);\r\n }\r\n };\r\n ECLinePath.prototype.pointAt = function (t) {\r\n if (isStraightLine(this.shape)) {\r\n return straightLineProto.pointAt.call(this, t);\r\n }\r\n else {\r\n return bezierCurveProto.pointAt.call(this, t);\r\n }\r\n };\r\n ECLinePath.prototype.tangentAt = function (t) {\r\n var shape = this.shape;\r\n var p = isStraightLine(shape)\r\n ? [shape.x2 - shape.x1, shape.y2 - shape.y1]\r\n : bezierCurveProto.tangentAt.call(this, t);\r\n return normalize(p, p);\r\n };\r\n return ECLinePath;\r\n }(Path));\n\n var SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\r\n function makeSymbolTypeKey(symbolCategory) {\r\n return '_' + symbolCategory + 'Type';\r\n }\r\n function createSymbol$1(name, lineData, idx) {\r\n var symbolType = lineData.getItemVisual(idx, name);\r\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\r\n if (!symbolType || symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSizeArr = isArray(symbolSize)\r\n ? symbolSize : [symbolSize, symbolSize];\r\n var symbolPath = createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\r\n symbolPath.name = name;\r\n return symbolPath;\r\n }\r\n function createLine(points) {\r\n var line = new ECLinePath({\r\n name: 'line',\r\n subPixelOptimize: true\r\n });\r\n setLinePoints(line.shape, points);\r\n return line;\r\n }\r\n function setLinePoints(targetShape, points) {\r\n targetShape.x1 = points[0][0];\r\n targetShape.y1 = points[0][1];\r\n targetShape.x2 = points[1][0];\r\n targetShape.y2 = points[1][1];\r\n targetShape.percent = 1;\r\n var cp1 = points[2];\r\n if (cp1) {\r\n targetShape.cpx1 = cp1[0];\r\n targetShape.cpy1 = cp1[1];\r\n }\r\n else {\r\n targetShape.cpx1 = NaN;\r\n targetShape.cpy1 = NaN;\r\n }\r\n }\r\n var Line$1 = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createLine(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var linePoints = lineData.getItemLayout(idx);\r\n var line = createLine(linePoints);\r\n line.shape.percent = 0;\r\n initProps(line, {\r\n shape: {\r\n percent: 1\r\n }\r\n }, seriesModel, idx);\r\n this.add(line);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var linePoints = lineData.getItemLayout(idx);\r\n var target = {\r\n shape: {}\r\n };\r\n setLinePoints(target.shape, linePoints);\r\n updateProps(line, target, seriesModel, idx);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\r\n var key = makeSymbolTypeKey(symbolCategory);\r\n if (this[key] !== symbolType) {\r\n this.remove(this.childOfName(symbolCategory));\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n }\r\n this[key] = symbolType;\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.getLinePath = function () {\r\n return this.childAt(0);\r\n };\r\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\r\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\r\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n var itemModel = lineData.getItemModel(idx);\r\n emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\r\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var visualColor = lineStyle.stroke;\r\n line.useStyle(lineStyle);\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n line.ensureState('emphasis').style = emphasisLineStyle;\r\n line.ensureState('blur').style = blurLineStyle;\r\n line.ensureState('select').style = selectLineStyle;\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = this.childOfName(symbolCategory);\r\n if (symbol) {\r\n symbol.setColor(visualColor);\r\n symbol.style.opacity = lineStyle.opacity;\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var lineState = line.getState(stateName);\r\n if (lineState) {\r\n var lineStateStyle = lineState.style || {};\r\n var state = symbol.ensureState(stateName);\r\n var stateStyle = state.style || (state.style = {});\r\n if (lineStateStyle.stroke != null) {\r\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\r\n }\r\n if (lineStateStyle.opacity != null) {\r\n stateStyle.opacity = lineStateStyle.opacity;\r\n }\r\n }\r\n }\r\n symbol.markRedraw();\r\n }\r\n }, this);\r\n var rawVal = seriesModel.getRawValue(idx);\r\n setLabelStyle(this, labelStatesModels, {\r\n labelDataIndex: idx,\r\n labelFetcher: {\r\n getFormattedLabel: function (dataIndex, stateName) {\r\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\r\n }\r\n },\r\n inheritColor: visualColor || '#000',\r\n defaultText: (rawVal == null\r\n ? lineData.getName(idx)\r\n : isFinite(rawVal)\r\n ? round$1(rawVal)\r\n : rawVal) + ''\r\n });\r\n var label = this.getTextContent();\r\n if (label) {\r\n var labelNormalModel = labelStatesModels.normal;\r\n label.__align = label.style.align;\r\n label.__verticalAlign = label.style.verticalAlign;\r\n label.__position = labelNormalModel.get('position') || 'middle';\r\n var distance = labelNormalModel.get('distance');\r\n if (!isArray(distance)) {\r\n distance = [distance, distance];\r\n }\r\n label.__labelDistance = distance;\r\n }\r\n this.setTextConfig({\r\n position: null,\r\n local: true,\r\n inside: false\r\n });\r\n enableHoverEmphasis(this);\r\n };\r\n Line.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n Line.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n Line.prototype.updateLayout = function (lineData, idx) {\r\n this.setLinePoints(lineData.getItemLayout(idx));\r\n };\r\n Line.prototype.setLinePoints = function (points) {\r\n var linePath = this.childOfName('line');\r\n setLinePoints(linePath.shape, points);\r\n linePath.dirty();\r\n };\r\n Line.prototype.beforeUpdate = function () {\r\n var lineGroup = this;\r\n var symbolFrom = lineGroup.childOfName('fromSymbol');\r\n var symbolTo = lineGroup.childOfName('toSymbol');\r\n var label = lineGroup.getTextContent();\r\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\r\n return;\r\n }\r\n var invScale = 1;\r\n var parentNode = this.parent;\r\n while (parentNode) {\r\n if (parentNode.scaleX) {\r\n invScale /= parentNode.scaleX;\r\n }\r\n parentNode = parentNode.parent;\r\n }\r\n var line = lineGroup.childOfName('line');\r\n if (!this.__dirty && !line.__dirty) {\r\n return;\r\n }\r\n var percent = line.shape.percent;\r\n var fromPos = line.pointAt(0);\r\n var toPos = line.pointAt(percent);\r\n var d = sub([], toPos, fromPos);\r\n normalize(d, d);\r\n if (symbolFrom) {\r\n symbolFrom.setPosition(fromPos);\r\n var tangent = line.tangentAt(0);\r\n symbolFrom.rotation = Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\r\n symbolFrom.markRedraw();\r\n }\r\n if (symbolTo) {\r\n symbolTo.setPosition(toPos);\r\n var tangent = line.tangentAt(1);\r\n symbolTo.rotation = -Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\r\n symbolTo.markRedraw();\r\n }\r\n if (label && !label.ignore) {\r\n label.x = label.y = 0;\r\n label.originX = label.originY = 0;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var distance = label.__labelDistance;\r\n var distanceX = distance[0] * invScale;\r\n var distanceY = distance[1] * invScale;\r\n var halfPercent = percent / 2;\r\n var tangent = line.tangentAt(halfPercent);\r\n var n = [tangent[1], -tangent[0]];\r\n var cp = line.pointAt(halfPercent);\r\n if (n[1] > 0) {\r\n n[0] = -n[0];\r\n n[1] = -n[1];\r\n }\r\n var dir = tangent[0] < 0 ? -1 : 1;\r\n if (label.__position !== 'start' && label.__position !== 'end') {\r\n var rotation = -Math.atan2(tangent[1], tangent[0]);\r\n if (toPos[0] < fromPos[0]) {\r\n rotation = Math.PI + rotation;\r\n }\r\n label.rotation = rotation;\r\n }\r\n var dy = void 0;\r\n switch (label.__position) {\r\n case 'insideStartTop':\r\n case 'insideMiddleTop':\r\n case 'insideEndTop':\r\n case 'middle':\r\n dy = -distanceY;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideStartBottom':\r\n case 'insideMiddleBottom':\r\n case 'insideEndBottom':\r\n dy = distanceY;\r\n textVerticalAlign = 'top';\r\n break;\r\n default:\r\n dy = 0;\r\n textVerticalAlign = 'middle';\r\n }\r\n switch (label.__position) {\r\n case 'end':\r\n label.x = d[0] * distanceX + toPos[0];\r\n label.y = d[1] * distanceY + toPos[1];\r\n textAlign = d[0] > 0.8 ? 'left' : (d[0] < -0.8 ? 'right' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'top' : (d[1] < -0.8 ? 'bottom' : 'middle');\r\n break;\r\n case 'start':\r\n label.x = -d[0] * distanceX + fromPos[0];\r\n label.y = -d[1] * distanceY + fromPos[1];\r\n textAlign = d[0] > 0.8 ? 'right' : (d[0] < -0.8 ? 'left' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : (d[1] < -0.8 ? 'top' : 'middle');\r\n break;\r\n case 'insideStartTop':\r\n case 'insideStart':\r\n case 'insideStartBottom':\r\n label.x = distanceX * dir + fromPos[0];\r\n label.y = fromPos[1] + dy;\r\n textAlign = tangent[0] < 0 ? 'right' : 'left';\r\n label.originX = -distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n case 'insideMiddleTop':\r\n case 'insideMiddle':\r\n case 'insideMiddleBottom':\r\n case 'middle':\r\n label.x = cp[0];\r\n label.y = cp[1] + dy;\r\n textAlign = 'center';\r\n label.originY = -dy;\r\n break;\r\n case 'insideEndTop':\r\n case 'insideEnd':\r\n case 'insideEndBottom':\r\n label.x = -distanceX * dir + toPos[0];\r\n label.y = toPos[1] + dy;\r\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\r\n label.originX = distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n }\r\n label.scaleX = label.scaleY = invScale;\r\n label.setStyle({\r\n verticalAlign: label.__verticalAlign || textVerticalAlign,\r\n align: label.__align || textAlign\r\n });\r\n }\r\n };\r\n return Line;\r\n }(Group));\n\n var LineDraw = (function () {\r\n function LineDraw(LineCtor) {\r\n this.group = new Group();\r\n this._LineCtor = LineCtor || Line$1;\r\n }\r\n LineDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n LineDraw.prototype.updateData = function (lineData) {\r\n var _this = this;\r\n var lineDraw = this;\r\n var group = lineDraw.group;\r\n var oldLineData = lineDraw._lineData;\r\n lineDraw._lineData = lineData;\r\n if (!oldLineData) {\r\n group.removeAll();\r\n }\r\n var seriesScope = makeSeriesScope$1(lineData);\r\n lineData.diff(oldLineData)\r\n .add(function (idx) {\r\n _this._doAdd(lineData, idx, seriesScope);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldLineData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n };\r\n LineDraw.prototype.updateLayout = function () {\r\n var lineData = this._lineData;\r\n if (!lineData) {\r\n return;\r\n }\r\n lineData.eachItemGraphicEl(function (el, idx) {\r\n el.updateLayout(lineData, idx);\r\n }, this);\r\n };\r\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\r\n this._seriesScope = makeSeriesScope$1(lineData);\r\n this._lineData = null;\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup && !isEffectObject(el)) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (lineNeedsDraw(itemLayout)) {\r\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n this.group.add(el);\r\n lineData.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n LineDraw.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (!lineNeedsDraw(itemLayout)) {\r\n return;\r\n }\r\n var el = new this._LineCtor(lineData, idx, seriesScope);\r\n lineData.setItemGraphicEl(idx, el);\r\n this.group.add(el);\r\n };\r\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\r\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\r\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\r\n this.group.remove(itemEl);\r\n return;\r\n }\r\n if (!itemEl) {\r\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\r\n }\r\n else {\r\n itemEl.updateData(newLineData, newIdx, seriesScope);\r\n }\r\n newLineData.setItemGraphicEl(newIdx, itemEl);\r\n this.group.add(itemEl);\r\n };\r\n return LineDraw;\r\n }());\r\n function isEffectObject(el) {\r\n return el.animators && el.animators.length > 0;\r\n }\r\n function makeSeriesScope$1(lineData) {\r\n var hostModel = lineData.hostModel;\r\n return {\r\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\r\n emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\r\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\r\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\r\n labelStatesModels: getLabelStatesModels(hostModel)\r\n };\r\n }\r\n function isPointNaN(pt) {\r\n return isNaN(pt[0]) || isNaN(pt[1]);\r\n }\r\n function lineNeedsDraw(pts) {\r\n return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\r\n }\n\n function getNodeGlobalScale(seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type !== 'view') {\r\n return 1;\r\n }\r\n var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\r\n var groupZoom = coordSys.scaleX;\r\n var roamZoom = coordSys.getZoom();\r\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\r\n return nodeScale / groupZoom;\r\n }\r\n function getSymbolSize(node) {\r\n var symbolSize = node.getVisual('symbolSize');\r\n if (symbolSize instanceof Array) {\r\n symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\r\n }\r\n return +symbolSize;\r\n }\n\n var v1 = [];\r\n var v2 = [];\r\n var v3 = [];\r\n var quadraticAt$1 = quadraticAt;\r\n var v2DistSquare = distSquare;\r\n var mathAbs$1 = Math.abs;\r\n function intersectCurveCircle(curvePoints, center, radius) {\r\n var p0 = curvePoints[0];\r\n var p1 = curvePoints[1];\r\n var p2 = curvePoints[2];\r\n var d = Infinity;\r\n var t;\r\n var radiusSquare = radius * radius;\r\n var interval = 0.1;\r\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\r\n v1[0] = quadraticAt$1(p0[0], p1[0], p2[0], _t);\r\n v1[1] = quadraticAt$1(p0[1], p1[1], p2[1], _t);\r\n var diff = mathAbs$1(v2DistSquare(v1, center) - radiusSquare);\r\n if (diff < d) {\r\n d = diff;\r\n t = _t;\r\n }\r\n }\r\n for (var i = 0; i < 32; i++) {\r\n var next = t + interval;\r\n v2[0] = quadraticAt$1(p0[0], p1[0], p2[0], t);\r\n v2[1] = quadraticAt$1(p0[1], p1[1], p2[1], t);\r\n v3[0] = quadraticAt$1(p0[0], p1[0], p2[0], next);\r\n v3[1] = quadraticAt$1(p0[1], p1[1], p2[1], next);\r\n var diff = v2DistSquare(v2, center) - radiusSquare;\r\n if (mathAbs$1(diff) < 1e-2) {\r\n break;\r\n }\r\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\r\n interval /= 2;\r\n if (diff < 0) {\r\n if (nextDiff >= 0) {\r\n t = t + interval;\r\n }\r\n else {\r\n t = t - interval;\r\n }\r\n }\r\n else {\r\n if (nextDiff >= 0) {\r\n t = t - interval;\r\n }\r\n else {\r\n t = t + interval;\r\n }\r\n }\r\n }\r\n return t;\r\n }\r\n function adjustEdge (graph, scale) {\r\n var tmp0 = [];\r\n var quadraticSubdivide$1 = quadraticSubdivide;\r\n var pts = [[], [], []];\r\n var pts2 = [[], []];\r\n var v = [];\r\n scale /= 2;\r\n graph.eachEdge(function (edge, idx) {\r\n var linePoints = edge.getLayout();\r\n var fromSymbol = edge.getVisual('fromSymbol');\r\n var toSymbol = edge.getVisual('toSymbol');\r\n if (!linePoints.__original) {\r\n linePoints.__original = [\r\n clone$1(linePoints[0]),\r\n clone$1(linePoints[1])\r\n ];\r\n if (linePoints[2]) {\r\n linePoints.__original.push(clone$1(linePoints[2]));\r\n }\r\n }\r\n var originalPoints = linePoints.__original;\r\n if (linePoints[2] != null) {\r\n copy(pts[0], originalPoints[0]);\r\n copy(pts[1], originalPoints[2]);\r\n copy(pts[2], originalPoints[1]);\r\n if (fromSymbol && fromSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node1);\r\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\r\n quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\r\n pts[0][0] = tmp0[3];\r\n pts[1][0] = tmp0[4];\r\n quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\r\n pts[0][1] = tmp0[3];\r\n pts[1][1] = tmp0[4];\r\n }\r\n if (toSymbol && toSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node2);\r\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\r\n quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\r\n pts[1][0] = tmp0[1];\r\n pts[2][0] = tmp0[2];\r\n quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\r\n pts[1][1] = tmp0[1];\r\n pts[2][1] = tmp0[2];\r\n }\r\n copy(linePoints[0], pts[0]);\r\n copy(linePoints[1], pts[2]);\r\n copy(linePoints[2], pts[1]);\r\n }\r\n else {\r\n copy(pts2[0], originalPoints[0]);\r\n copy(pts2[1], originalPoints[1]);\r\n sub(v, pts2[1], pts2[0]);\r\n normalize(v, v);\r\n if (fromSymbol && fromSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node1);\r\n scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\r\n }\r\n if (toSymbol && toSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node2);\r\n scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\r\n }\r\n copy(linePoints[0], pts2[0]);\r\n copy(linePoints[1], pts2[1]);\r\n }\r\n });\r\n }\n\n function isViewCoordSys(coordSys) {\r\n return coordSys.type === 'view';\r\n }\r\n var GraphView = (function (_super) {\r\n __extends(GraphView, _super);\r\n function GraphView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphView.type;\r\n return _this;\r\n }\r\n GraphView.prototype.init = function (ecModel, api) {\r\n var symbolDraw = new SymbolDraw();\r\n var lineDraw = new LineDraw();\r\n var group = this.group;\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = {\r\n target: group\r\n };\r\n group.add(symbolDraw.group);\r\n group.add(lineDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineDraw = lineDraw;\r\n this._firstRender = true;\r\n };\r\n GraphView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n this._model = seriesModel;\r\n var symbolDraw = this._symbolDraw;\r\n var lineDraw = this._lineDraw;\r\n var group = this.group;\r\n if (isViewCoordSys(coordSys)) {\r\n var groupNewProp = {\r\n x: coordSys.x, y: coordSys.y,\r\n scaleX: coordSys.scaleX, scaleY: coordSys.scaleY\r\n };\r\n if (this._firstRender) {\r\n group.attr(groupNewProp);\r\n }\r\n else {\r\n updateProps(group, groupNewProp, seriesModel);\r\n }\r\n }\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n var data = seriesModel.getData();\r\n symbolDraw.updateData(data);\r\n var edgeData = seriesModel.getEdgeData();\r\n lineDraw.updateData(edgeData);\r\n this._updateNodeAndLinkScale();\r\n this._updateController(seriesModel, ecModel, api);\r\n clearTimeout(this._layoutTimeout);\r\n var forceLayout = seriesModel.forceLayout;\r\n var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\r\n if (forceLayout) {\r\n this._startForceLayoutIteration(forceLayout, layoutAnimation);\r\n }\r\n data.graph.eachNode(function (node) {\r\n var idx = node.dataIndex;\r\n var el = node.getGraphicEl();\r\n var itemModel = node.getModel();\r\n el.off('drag').off('dragend');\r\n var draggable = itemModel.get('draggable');\r\n if (draggable) {\r\n el.on('drag', function () {\r\n if (forceLayout) {\r\n forceLayout.warmUp();\r\n !_this._layouting\r\n && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\r\n forceLayout.setFixed(idx);\r\n data.setItemLayout(idx, [el.x, el.y]);\r\n }\r\n }).on('dragend', function () {\r\n if (forceLayout) {\r\n forceLayout.setUnfixed(idx);\r\n }\r\n });\r\n }\r\n el.setDraggable(draggable && !!forceLayout);\r\n var focus = itemModel.get(['emphasis', 'focus']);\r\n if (focus === 'adjacency') {\r\n getECData(el).focus = node.getAdjacentDataIndices();\r\n }\r\n });\r\n data.graph.eachEdge(function (edge) {\r\n var el = edge.getGraphicEl();\r\n var focus = edge.getModel().get(['emphasis', 'focus']);\r\n if (focus === 'adjacency') {\r\n getECData(el).focus = {\r\n edge: [edge.dataIndex],\r\n node: [edge.node1.dataIndex, edge.node2.dataIndex]\r\n };\r\n }\r\n });\r\n var circularRotateLabel = seriesModel.get('layout') === 'circular'\r\n && seriesModel.get(['circular', 'rotateLabel']);\r\n var cx = data.getLayout('cx');\r\n var cy = data.getLayout('cy');\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var labelRotate = itemModel.get(['label', 'rotate']) || 0;\r\n var symbolPath = el.getSymbolPath();\r\n if (circularRotateLabel) {\r\n var pos = data.getItemLayout(idx);\r\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n var isLeft = pos[0] < cx;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n var textPosition = isLeft ? 'left' : 'right';\r\n symbolPath.setTextConfig({\r\n rotation: -rad,\r\n position: textPosition,\r\n origin: 'center'\r\n });\r\n var emphasisState = symbolPath.ensureState('emphasis');\r\n extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\r\n position: textPosition\r\n });\r\n }\r\n else {\r\n symbolPath.setTextConfig({\r\n rotation: labelRotate *= Math.PI / 180\r\n });\r\n }\r\n });\r\n this._firstRender = false;\r\n };\r\n GraphView.prototype.dispose = function () {\r\n this._controller && this._controller.dispose();\r\n this._controllerHost = null;\r\n };\r\n GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\r\n var self = this;\r\n (function step() {\r\n forceLayout.step(function (stopped) {\r\n self.updateLayout(self._model);\r\n (self._layouting = !stopped) && (layoutAnimation\r\n ? (self._layoutTimeout = setTimeout(step, 16))\r\n : step());\r\n });\r\n })();\r\n };\r\n GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n var group = this.group;\r\n controller.setPointerChecker(function (e, x, y) {\r\n var rect = group.getBoundingRect();\r\n rect.applyTransform(group.transform);\r\n return rect.contain(x, y)\r\n && !onIrrelevantElement(e, api, seriesModel);\r\n });\r\n if (!isViewCoordSys(seriesModel.coordinateSystem)) {\r\n controller.disable();\r\n return;\r\n }\r\n controller.enable(seriesModel.get('roam'));\r\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\r\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\r\n controller\r\n .off('pan')\r\n .off('zoom')\r\n .on('pan', function (e) {\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'graphRoam',\r\n dx: e.dx,\r\n dy: e.dy\r\n });\r\n })\r\n .on('zoom', function (e) {\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'graphRoam',\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n });\r\n _this._updateNodeAndLinkScale();\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n _this._lineDraw.updateLayout();\r\n api.updateLabelLayout();\r\n });\r\n };\r\n GraphView.prototype._updateNodeAndLinkScale = function () {\r\n var seriesModel = this._model;\r\n var data = seriesModel.getData();\r\n var nodeScale = getNodeGlobalScale(seriesModel);\r\n data.eachItemGraphicEl(function (el, idx) {\r\n el.setSymbolScale(nodeScale);\r\n });\r\n };\r\n GraphView.prototype.updateLayout = function (seriesModel) {\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n this._symbolDraw.updateLayout();\r\n this._lineDraw.updateLayout();\r\n };\r\n GraphView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove();\r\n this._lineDraw && this._lineDraw.remove();\r\n };\r\n GraphView.type = 'graph';\r\n return GraphView;\r\n }(ChartView));\r\n ChartView.registerClass(GraphView);\n\n registerAction({\r\n type: 'focusNodeAdjacency',\r\n event: 'focusNodeAdjacency',\r\n update: 'series:focusNodeAdjacency'\r\n }, function () { });\r\n registerAction({\r\n type: 'unfocusNodeAdjacency',\r\n event: 'unfocusNodeAdjacency',\r\n update: 'series:unfocusNodeAdjacency'\r\n }, function () { });\n\n var actionInfo = {\r\n type: 'graphRoam',\r\n event: 'graphRoam',\r\n update: 'none'\r\n };\r\n registerAction(actionInfo, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', query: payload\r\n }, function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var res = updateCenterAndZoom(coordSys, payload);\r\n seriesModel.setCenter\r\n && seriesModel.setCenter(res.center);\r\n seriesModel.setZoom\r\n && seriesModel.setZoom(res.zoom);\r\n });\r\n });\n\n function categoryFilter (ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n ecModel.eachSeriesByType('graph', function (graphSeries) {\r\n var categoriesData = graphSeries.getCategoriesData();\r\n var graph = graphSeries.getGraph();\r\n var data = graph.data;\r\n var categoryNames = categoriesData.mapArray(categoriesData.getName);\r\n data.filterSelf(function (idx) {\r\n var model = data.getItemModel(idx);\r\n var category = model.getShallow('category');\r\n if (category != null) {\r\n if (typeof category === 'number') {\r\n category = categoryNames[category];\r\n }\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(category)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n });\r\n }\n\n function categoryVisual (ecModel) {\r\n var paletteScope = {};\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var categoriesData = seriesModel.getCategoriesData();\r\n var data = seriesModel.getData();\r\n var categoryNameIdxMap = {};\r\n categoriesData.each(function (idx) {\r\n var name = categoriesData.getName(idx);\r\n categoryNameIdxMap['ec-' + name] = idx;\r\n var itemModel = categoriesData.getItemModel(idx);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (!style.fill) {\r\n style.fill = seriesModel.getColorFromPalette(name, paletteScope);\r\n }\r\n categoriesData.setItemVisual(idx, 'style', style);\r\n var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\r\n for (var i = 0; i < symbolVisualList.length; i++) {\r\n var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\r\n if (symbolVisual != null) {\r\n categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\r\n }\r\n }\r\n });\r\n if (categoriesData.count()) {\r\n data.each(function (idx) {\r\n var model = data.getItemModel(idx);\r\n var categoryIdx = model.getShallow('category');\r\n if (categoryIdx != null) {\r\n if (typeof categoryIdx === 'string') {\r\n categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\r\n }\r\n var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\r\n var style = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(style, categoryStyle);\r\n var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\r\n for (var i = 0; i < visualList.length; i++) {\r\n data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\n\n function normalize$2(a) {\r\n if (!(a instanceof Array)) {\r\n a = [a, a];\r\n }\r\n return a;\r\n }\r\n function edgeVisual (ecModel) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var graph = seriesModel.getGraph();\r\n var edgeData = seriesModel.getEdgeData();\r\n var symbolType = normalize$2(seriesModel.get('edgeSymbol'));\r\n var symbolSize = normalize$2(seriesModel.get('edgeSymbolSize'));\r\n edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\r\n edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\r\n edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\r\n edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\r\n edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\r\n edgeData.each(function (idx) {\r\n var itemModel = edgeData.getItemModel(idx);\r\n var edge = graph.getEdgeByIndex(idx);\r\n var symbolType = normalize$2(itemModel.getShallow('symbol', true));\r\n var symbolSize = normalize$2(itemModel.getShallow('symbolSize', true));\r\n var style = itemModel.getModel('lineStyle').getLineStyle();\r\n var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n switch (existsStyle.stroke) {\r\n case 'source': {\r\n var nodeStyle = edge.node1.getVisual('style');\r\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\r\n break;\r\n }\r\n case 'target': {\r\n var nodeStyle = edge.node2.getVisual('style');\r\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\r\n break;\r\n }\r\n }\r\n symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\r\n symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\r\n symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\r\n symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\r\n });\r\n });\r\n }\n\n function simpleLayout(seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n var graph = seriesModel.getGraph();\r\n graph.eachNode(function (node) {\r\n var model = node.getModel();\r\n node.setLayout([+model.get('x'), +model.get('y')]);\r\n });\r\n simpleLayoutEdge(graph);\r\n }\r\n function simpleLayoutEdge(graph) {\r\n graph.eachEdge(function (edge, idx) {\r\n var curveness = edge.getModel().get(['lineStyle', 'curveness']) || 0;\r\n var p1 = clone$1(edge.node1.getLayout());\r\n var p2 = clone$1(edge.node2.getLayout());\r\n var points = [p1, p2];\r\n if (+curveness) {\r\n points.push([\r\n (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness,\r\n (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness\r\n ]);\r\n }\r\n edge.setLayout(points);\r\n });\r\n }\n\n function simpleLayout$1 (ecModel, api) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var layout = seriesModel.get('layout');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n var data_1 = seriesModel.getData();\r\n var dimensions_1 = [];\r\n each(coordSys.dimensions, function (coordDim) {\r\n dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\r\n });\r\n for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\r\n var value = [];\r\n var hasValue = false;\r\n for (var i = 0; i < dimensions_1.length; i++) {\r\n var val = data_1.get(dimensions_1[i], dataIndex);\r\n if (!isNaN(val)) {\r\n hasValue = true;\r\n }\r\n value.push(val);\r\n }\r\n if (hasValue) {\r\n data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\r\n }\r\n else {\r\n data_1.setItemLayout(dataIndex, [NaN, NaN]);\r\n }\r\n }\r\n simpleLayoutEdge(data_1.graph);\r\n }\r\n else if (!layout || layout === 'none') {\r\n simpleLayout(seriesModel);\r\n }\r\n });\r\n }\n\n var PI$6 = Math.PI;\r\n var _symbolRadiansHalf = [];\r\n function circularLayout(seriesModel, basedOn) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n var rect = coordSys.getBoundingRect();\r\n var nodeData = seriesModel.getData();\r\n var graph = nodeData.graph;\r\n var cx = rect.width / 2 + rect.x;\r\n var cy = rect.height / 2 + rect.y;\r\n var r = Math.min(rect.width, rect.height) / 2;\r\n var count = nodeData.count();\r\n nodeData.setLayout({\r\n cx: cx,\r\n cy: cy\r\n });\r\n if (!count) {\r\n return;\r\n }\r\n _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\r\n graph.eachEdge(function (edge) {\r\n var curveness = edge.getModel().get(['lineStyle', 'curveness']) || 0;\r\n var p1 = clone$1(edge.node1.getLayout());\r\n var p2 = clone$1(edge.node2.getLayout());\r\n var cp1;\r\n var x12 = (p1[0] + p2[0]) / 2;\r\n var y12 = (p1[1] + p2[1]) / 2;\r\n if (+curveness) {\r\n curveness *= 3;\r\n cp1 = [\r\n cx * curveness + x12 * (1 - curveness),\r\n cy * curveness + y12 * (1 - curveness)\r\n ];\r\n }\r\n edge.setLayout([p1, p2, cp1]);\r\n });\r\n }\r\n var _layoutNodesBasedOn = {\r\n value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\r\n var angle = 0;\r\n var sum = nodeData.getSum('value');\r\n var unitAngle = Math.PI * 2 / (sum || count);\r\n graph.eachNode(function (node) {\r\n var value = node.getValue('value');\r\n var radianHalf = unitAngle * (sum ? value : 1) / 2;\r\n angle += radianHalf;\r\n node.setLayout([\r\n r * Math.cos(angle) + cx,\r\n r * Math.sin(angle) + cy\r\n ]);\r\n angle += radianHalf;\r\n });\r\n },\r\n symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\r\n var sumRadian = 0;\r\n _symbolRadiansHalf.length = count;\r\n var nodeScale = getNodeGlobalScale(seriesModel);\r\n graph.eachNode(function (node) {\r\n var symbolSize = getSymbolSize(node);\r\n isNaN(symbolSize) && (symbolSize = 2);\r\n symbolSize < 0 && (symbolSize = 0);\r\n symbolSize *= nodeScale;\r\n var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\r\n isNaN(symbolRadianHalf) && (symbolRadianHalf = PI$6 / 2);\r\n _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\r\n sumRadian += symbolRadianHalf * 2;\r\n });\r\n var halfRemainRadian = (2 * PI$6 - sumRadian) / count / 2;\r\n var angle = 0;\r\n graph.eachNode(function (node) {\r\n var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\r\n angle += radianHalf;\r\n node.setLayout([\r\n r * Math.cos(angle) + cx,\r\n r * Math.sin(angle) + cy\r\n ]);\r\n angle += radianHalf;\r\n });\r\n }\r\n };\n\n function circularLayout$1 (ecModel) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n if (seriesModel.get('layout') === 'circular') {\r\n circularLayout(seriesModel, 'symbolSize');\r\n }\r\n });\r\n }\n\n var scaleAndAdd$2 = scaleAndAdd;\r\n function forceLayout(inNodes, inEdges, opts) {\r\n var nodes = inNodes;\r\n var edges = inEdges;\r\n var rect = opts.rect;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var center = [rect.x + width / 2, rect.y + height / 2];\r\n var gravity = opts.gravity == null ? 0.1 : opts.gravity;\r\n for (var i = 0; i < nodes.length; i++) {\r\n var n = nodes[i];\r\n if (!n.p) {\r\n n.p = create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\r\n }\r\n n.pp = clone$1(n.p);\r\n n.edges = null;\r\n }\r\n var initialFriction = opts.friction == null ? 0.6 : opts.friction;\r\n var friction = initialFriction;\r\n var beforeStepCallback;\r\n var afterStepCallback;\r\n return {\r\n warmUp: function () {\r\n friction = initialFriction * 0.8;\r\n },\r\n setFixed: function (idx) {\r\n nodes[idx].fixed = true;\r\n },\r\n setUnfixed: function (idx) {\r\n nodes[idx].fixed = false;\r\n },\r\n beforeStep: function (cb) {\r\n beforeStepCallback = cb;\r\n },\r\n afterStep: function (cb) {\r\n afterStepCallback = cb;\r\n },\r\n step: function (cb) {\r\n beforeStepCallback && beforeStepCallback(nodes, edges);\r\n var v12 = [];\r\n var nLen = nodes.length;\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n if (e.ignoreForceLayout) {\r\n continue;\r\n }\r\n var n1 = e.n1;\r\n var n2 = e.n2;\r\n sub(v12, n2.p, n1.p);\r\n var d = len(v12) - e.d;\r\n var w = n2.w / (n1.w + n2.w);\r\n if (isNaN(w)) {\r\n w = 0;\r\n }\r\n normalize(v12, v12);\r\n !n1.fixed && scaleAndAdd$2(n1.p, n1.p, v12, w * d * friction);\r\n !n2.fixed && scaleAndAdd$2(n2.p, n2.p, v12, -(1 - w) * d * friction);\r\n }\r\n for (var i = 0; i < nLen; i++) {\r\n var n = nodes[i];\r\n if (!n.fixed) {\r\n sub(v12, center, n.p);\r\n scaleAndAdd$2(n.p, n.p, v12, gravity * friction);\r\n }\r\n }\r\n for (var i = 0; i < nLen; i++) {\r\n var n1 = nodes[i];\r\n for (var j = i + 1; j < nLen; j++) {\r\n var n2 = nodes[j];\r\n sub(v12, n2.p, n1.p);\r\n var d = len(v12);\r\n if (d === 0) {\r\n set(v12, Math.random() - 0.5, Math.random() - 0.5);\r\n d = 1;\r\n }\r\n var repFact = (n1.rep + n2.rep) / d / d;\r\n !n1.fixed && scaleAndAdd$2(n1.pp, n1.pp, v12, repFact);\r\n !n2.fixed && scaleAndAdd$2(n2.pp, n2.pp, v12, -repFact);\r\n }\r\n }\r\n var v = [];\r\n for (var i = 0; i < nLen; i++) {\r\n var n = nodes[i];\r\n if (!n.fixed) {\r\n sub(v, n.p, n.pp);\r\n scaleAndAdd$2(n.p, n.p, v, friction);\r\n copy(n.pp, n.p);\r\n }\r\n }\r\n friction = friction * 0.992;\r\n var finished = friction < 0.01;\r\n afterStepCallback && afterStepCallback(nodes, edges, finished);\r\n cb && cb(finished);\r\n }\r\n };\r\n }\n\n function forceLayout$1 (ecModel) {\r\n ecModel.eachSeriesByType('graph', function (graphSeries) {\r\n var coordSys = graphSeries.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n if (graphSeries.get('layout') === 'force') {\r\n var preservedPoints_1 = graphSeries.preservedPoints || {};\r\n var graph_1 = graphSeries.getGraph();\r\n var nodeData_1 = graph_1.data;\r\n var edgeData = graph_1.edgeData;\r\n var forceModel = graphSeries.getModel('force');\r\n var initLayout = forceModel.get('initLayout');\r\n if (graphSeries.preservedPoints) {\r\n nodeData_1.each(function (idx) {\r\n var id = nodeData_1.getId(idx);\r\n nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\r\n });\r\n }\r\n else if (!initLayout || initLayout === 'none') {\r\n simpleLayout(graphSeries);\r\n }\r\n else if (initLayout === 'circular') {\r\n circularLayout(graphSeries, 'value');\r\n }\r\n var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\r\n var edgeDataExtent_1 = edgeData.getDataExtent('value');\r\n var repulsion = forceModel.get('repulsion');\r\n var edgeLength = forceModel.get('edgeLength');\r\n var repulsionArr_1 = isArray(repulsion)\r\n ? repulsion : [repulsion, repulsion];\r\n var edgeLengthArr_1 = isArray(edgeLength)\r\n ? edgeLength : [edgeLength, edgeLength];\r\n edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\r\n var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\r\n var point = nodeData_1.getItemLayout(idx);\r\n var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\r\n if (isNaN(rep)) {\r\n rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\r\n }\r\n return {\r\n w: rep,\r\n rep: rep,\r\n fixed: nodeData_1.getItemModel(idx).get('fixed'),\r\n p: (!point || isNaN(point[0]) || isNaN(point[1])) ? null : point\r\n };\r\n });\r\n var edges = edgeData.mapArray('value', function (value, idx) {\r\n var edge = graph_1.getEdgeByIndex(idx);\r\n var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\r\n if (isNaN(d)) {\r\n d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\r\n }\r\n var edgeModel = edge.getModel();\r\n return {\r\n n1: nodes_1[edge.node1.dataIndex],\r\n n2: nodes_1[edge.node2.dataIndex],\r\n d: d,\r\n curveness: edgeModel.get(['lineStyle', 'curveness']) || 0,\r\n ignoreForceLayout: edgeModel.get('ignoreForceLayout')\r\n };\r\n });\r\n var rect = coordSys.getBoundingRect();\r\n var forceInstance = forceLayout(nodes_1, edges, {\r\n rect: rect,\r\n gravity: forceModel.get('gravity'),\r\n friction: forceModel.get('friction')\r\n });\r\n forceInstance.beforeStep(function (nodes, edges) {\r\n for (var i = 0, l = nodes.length; i < l; i++) {\r\n if (nodes[i].fixed) {\r\n copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\r\n }\r\n }\r\n });\r\n forceInstance.afterStep(function (nodes, edges, stopped) {\r\n for (var i = 0, l = nodes.length; i < l; i++) {\r\n if (!nodes[i].fixed) {\r\n graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\r\n }\r\n preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\r\n }\r\n for (var i = 0, l = edges.length; i < l; i++) {\r\n var e = edges[i];\r\n var edge = graph_1.getEdgeByIndex(i);\r\n var p1 = e.n1.p;\r\n var p2 = e.n2.p;\r\n var points = edge.getLayout();\r\n points = points ? points.slice() : [];\r\n points[0] = points[0] || [];\r\n points[1] = points[1] || [];\r\n copy(points[0], p1);\r\n copy(points[1], p2);\r\n if (+e.curveness) {\r\n points[2] = [\r\n (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness,\r\n (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness\r\n ];\r\n }\r\n edge.setLayout(points);\r\n }\r\n });\r\n graphSeries.forceLayout = forceInstance;\r\n graphSeries.preservedPoints = preservedPoints_1;\r\n forceInstance.step();\r\n }\r\n else {\r\n graphSeries.forceLayout = null;\r\n }\r\n });\r\n }\n\n function getViewRect$2(seriesModel, api, aspect) {\r\n var option = extend(seriesModel.getBoxLayoutParams(), {\r\n aspect: aspect\r\n });\r\n return getLayoutRect(option, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function createView (ecModel, api) {\r\n var viewList = [];\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var coordSysType = seriesModel.get('coordinateSystem');\r\n if (!coordSysType || coordSysType === 'view') {\r\n var data_1 = seriesModel.getData();\r\n var positions = data_1.mapArray(function (idx) {\r\n var itemModel = data_1.getItemModel(idx);\r\n return [+itemModel.get('x'), +itemModel.get('y')];\r\n });\r\n var min = [];\r\n var max = [];\r\n fromPoints(positions, min, max);\r\n if (max[0] - min[0] === 0) {\r\n max[0] += 1;\r\n min[0] -= 1;\r\n }\r\n if (max[1] - min[1] === 0) {\r\n max[1] += 1;\r\n min[1] -= 1;\r\n }\r\n var aspect = (max[0] - min[0]) / (max[1] - min[1]);\r\n var viewRect = getViewRect$2(seriesModel, api, aspect);\r\n if (isNaN(aspect)) {\r\n min = [viewRect.x, viewRect.y];\r\n max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\r\n }\r\n var bbWidth = max[0] - min[0];\r\n var bbHeight = max[1] - min[1];\r\n var viewWidth = viewRect.width;\r\n var viewHeight = viewRect.height;\r\n var viewCoordSys = seriesModel.coordinateSystem = new View();\r\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\r\n viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\r\n viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\r\n viewCoordSys.setCenter(seriesModel.get('center'));\r\n viewCoordSys.setZoom(seriesModel.get('zoom'));\r\n viewList.push(viewCoordSys);\r\n }\r\n });\r\n return viewList;\r\n }\n\n registerProcessor(categoryFilter);\r\n registerVisual(categoryVisual);\r\n registerVisual(edgeVisual);\r\n registerLayout(simpleLayout$1);\r\n registerLayout(PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout$1);\r\n registerLayout(forceLayout$1);\r\n registerCoordinateSystem('graphView', {\r\n dimensions: View.dimensions,\r\n create: createView\r\n });\n\n var GaugeSeriesModel = (function (_super) {\r\n __extends(GaugeSeriesModel, _super);\r\n function GaugeSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GaugeSeriesModel.type;\r\n return _this;\r\n }\r\n GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, ['value']);\r\n };\r\n GaugeSeriesModel.type = 'series.gauge';\r\n GaugeSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n center: ['50%', '50%'],\r\n legendHoverLink: true,\r\n radius: '75%',\r\n startAngle: 225,\r\n endAngle: -45,\r\n clockwise: true,\r\n min: 0,\r\n max: 100,\r\n splitNumber: 10,\r\n axisLine: {\r\n show: true,\r\n lineStyle: {\r\n color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']],\r\n width: 30\r\n }\r\n },\r\n splitLine: {\r\n show: true,\r\n length: 30,\r\n lineStyle: {\r\n color: '#eee',\r\n width: 2,\r\n type: 'solid'\r\n }\r\n },\r\n axisTick: {\r\n show: true,\r\n splitNumber: 5,\r\n length: 8,\r\n lineStyle: {\r\n color: '#eee',\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n distance: 5,\r\n color: 'auto'\r\n },\r\n pointer: {\r\n show: true,\r\n length: '80%',\r\n width: 8\r\n },\r\n itemStyle: {\r\n color: 'auto'\r\n },\r\n title: {\r\n show: true,\r\n offsetCenter: [0, '-40%'],\r\n color: '#333',\r\n fontSize: 15\r\n },\r\n detail: {\r\n show: true,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 0,\r\n borderColor: '#ccc',\r\n width: 100,\r\n height: null,\r\n padding: [5, 10],\r\n offsetCenter: [0, '40%'],\r\n color: 'auto',\r\n fontSize: 30\r\n }\r\n };\r\n return GaugeSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(GaugeSeriesModel);\n\n var PointerShape = (function () {\r\n function PointerShape() {\r\n this.angle = 0;\r\n this.width = 10;\r\n this.r = 10;\r\n this.x = 0;\r\n this.y = 0;\r\n }\r\n return PointerShape;\r\n }());\r\n var PointerPath = (function (_super) {\r\n __extends(PointerPath, _super);\r\n function PointerPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'pointer';\r\n return _this;\r\n }\r\n PointerPath.prototype.getDefaultShape = function () {\r\n return new PointerShape();\r\n };\r\n PointerPath.prototype.buildPath = function (ctx, shape) {\r\n var mathCos = Math.cos;\r\n var mathSin = Math.sin;\r\n var r = shape.r;\r\n var width = shape.width;\r\n var angle = shape.angle;\r\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\r\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\r\n angle = shape.angle - Math.PI / 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\r\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\r\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\r\n ctx.lineTo(x, y);\r\n };\r\n return PointerPath;\r\n }(Path));\n\n function parsePosition(seriesModel, api) {\r\n var center = seriesModel.get('center');\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], api.getWidth());\r\n var cy = parsePercent$2(center[1], api.getHeight());\r\n var r = parsePercent$2(seriesModel.get('radius'), size / 2);\r\n return {\r\n cx: cx,\r\n cy: cy,\r\n r: r\r\n };\r\n }\r\n function formatLabel(value, labelFormatter) {\r\n var label = value == null ? '' : (value + '');\r\n if (labelFormatter) {\r\n if (typeof labelFormatter === 'string') {\r\n label = labelFormatter.replace('{value}', label);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n label = labelFormatter(value);\r\n }\r\n }\r\n return label;\r\n }\r\n var PI2$7 = Math.PI * 2;\r\n var GaugeView = (function (_super) {\r\n __extends(GaugeView, _super);\r\n function GaugeView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GaugeView.type;\r\n return _this;\r\n }\r\n GaugeView.prototype.render = function (seriesModel, ecModel, api) {\r\n this.group.removeAll();\r\n var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\r\n var posInfo = parsePosition(seriesModel, api);\r\n this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\r\n };\r\n GaugeView.prototype.dispose = function () { };\r\n GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\r\n var group = this.group;\r\n var axisLineModel = seriesModel.getModel('axisLine');\r\n var lineStyleModel = axisLineModel.getModel('lineStyle');\r\n var clockwise = seriesModel.get('clockwise');\r\n var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\r\n var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\r\n var angleRangeSpan = (endAngle - startAngle) % PI2$7;\r\n var prevEndAngle = startAngle;\r\n var axisLineWidth = lineStyleModel.get('width');\r\n var showAxis = axisLineModel.get('show');\r\n for (var i = 0; showAxis && i < colorList.length; i++) {\r\n var percent = Math.min(Math.max(colorList[i][0], 0), 1);\r\n endAngle = startAngle + angleRangeSpan * percent;\r\n var sector = new Sector({\r\n shape: {\r\n startAngle: prevEndAngle,\r\n endAngle: endAngle,\r\n cx: posInfo.cx,\r\n cy: posInfo.cy,\r\n clockwise: clockwise,\r\n r0: posInfo.r - axisLineWidth,\r\n r: posInfo.r\r\n },\r\n silent: true\r\n });\r\n sector.setStyle({\r\n fill: colorList[i][1]\r\n });\r\n sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\r\n group.add(sector);\r\n prevEndAngle = endAngle;\r\n }\r\n var getColor = function (percent) {\r\n if (percent <= 0) {\r\n return colorList[0][1];\r\n }\r\n var i;\r\n for (i = 0; i < colorList.length; i++) {\r\n if (colorList[i][0] >= percent\r\n && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\r\n return colorList[i][1];\r\n }\r\n }\r\n return colorList[i - 1][1];\r\n };\r\n if (!clockwise) {\r\n var tmp = startAngle;\r\n startAngle = endAngle;\r\n endAngle = tmp;\r\n }\r\n this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\r\n this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\r\n this._renderTitle(seriesModel, ecModel, api, getColor, posInfo);\r\n this._renderDetail(seriesModel, ecModel, api, getColor, posInfo);\r\n };\r\n GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\r\n var group = this.group;\r\n var cx = posInfo.cx;\r\n var cy = posInfo.cy;\r\n var r = posInfo.r;\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n var splitLineModel = seriesModel.getModel('splitLine');\r\n var tickModel = seriesModel.getModel('axisTick');\r\n var labelModel = seriesModel.getModel('axisLabel');\r\n var splitNumber = seriesModel.get('splitNumber');\r\n var subSplitNumber = tickModel.get('splitNumber');\r\n var splitLineLen = parsePercent$2(splitLineModel.get('length'), r);\r\n var tickLen = parsePercent$2(tickModel.get('length'), r);\r\n var angle = startAngle;\r\n var step = (endAngle - startAngle) / splitNumber;\r\n var subStep = step / subSplitNumber;\r\n var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\r\n var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\r\n var unitX;\r\n var unitY;\r\n for (var i = 0; i <= splitNumber; i++) {\r\n unitX = Math.cos(angle);\r\n unitY = Math.sin(angle);\r\n if (splitLineModel.get('show')) {\r\n var splitLine = new Line({\r\n shape: {\r\n x1: unitX * r + cx,\r\n y1: unitY * r + cy,\r\n x2: unitX * (r - splitLineLen) + cx,\r\n y2: unitY * (r - splitLineLen) + cy\r\n },\r\n style: splitLineStyle,\r\n silent: true\r\n });\r\n if (splitLineStyle.stroke === 'auto') {\r\n splitLine.setStyle({\r\n stroke: getColor(i / splitNumber)\r\n });\r\n }\r\n group.add(splitLine);\r\n }\r\n if (labelModel.get('show')) {\r\n var label = formatLabel(round$1(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\r\n var distance = labelModel.get('distance');\r\n var autoColor = getColor(i / splitNumber);\r\n group.add(new ZRText({\r\n style: createTextStyle(labelModel, {\r\n text: label,\r\n x: unitX * (r - splitLineLen - distance) + cx,\r\n y: unitY * (r - splitLineLen - distance) + cy,\r\n verticalAlign: unitY < -0.4 ? 'top' : (unitY > 0.4 ? 'bottom' : 'middle'),\r\n align: unitX < -0.4 ? 'left' : (unitX > 0.4 ? 'right' : 'center')\r\n }, {\r\n inheritColor: autoColor\r\n }),\r\n silent: true\r\n }));\r\n }\r\n if (tickModel.get('show') && i !== splitNumber) {\r\n for (var j = 0; j <= subSplitNumber; j++) {\r\n unitX = Math.cos(angle);\r\n unitY = Math.sin(angle);\r\n var tickLine = new Line({\r\n shape: {\r\n x1: unitX * r + cx,\r\n y1: unitY * r + cy,\r\n x2: unitX * (r - tickLen) + cx,\r\n y2: unitY * (r - tickLen) + cy\r\n },\r\n silent: true,\r\n style: tickLineStyle\r\n });\r\n if (tickLineStyle.stroke === 'auto') {\r\n tickLine.setStyle({\r\n stroke: getColor((i + j / subSplitNumber) / splitNumber)\r\n });\r\n }\r\n group.add(tickLine);\r\n angle += subStep;\r\n }\r\n angle -= subStep;\r\n }\r\n else {\r\n angle += step;\r\n }\r\n }\r\n };\r\n GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n if (!seriesModel.get(['pointer', 'show'])) {\r\n oldData && oldData.eachItemGraphicEl(function (el) {\r\n group.remove(el);\r\n });\r\n return;\r\n }\r\n var valueExtent = [+seriesModel.get('min'), +seriesModel.get('max')];\r\n var angleExtent = [startAngle, endAngle];\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var pointer = new PointerPath({\r\n shape: {\r\n angle: startAngle\r\n }\r\n });\r\n initProps(pointer, {\r\n shape: {\r\n angle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true)\r\n }\r\n }, seriesModel);\r\n group.add(pointer);\r\n data.setItemGraphicEl(idx, pointer);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var pointer = oldData.getItemGraphicEl(oldIdx);\r\n updateProps(pointer, {\r\n shape: {\r\n angle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true)\r\n }\r\n }, seriesModel);\r\n group.add(pointer);\r\n data.setItemGraphicEl(newIdx, pointer);\r\n })\r\n .remove(function (idx) {\r\n var pointer = oldData.getItemGraphicEl(idx);\r\n group.remove(pointer);\r\n })\r\n .execute();\r\n data.eachItemGraphicEl(function (pointer, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var pointerModel = itemModel.getModel('pointer');\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n pointer.setShape({\r\n x: posInfo.cx,\r\n y: posInfo.cy,\r\n width: parsePercent$2(pointerModel.get('width'), posInfo.r),\r\n r: parsePercent$2(pointerModel.get('length'), posInfo.r)\r\n });\r\n pointer.useStyle(itemModel.getModel('itemStyle').getItemStyle());\r\n if (pointer.style.fill === 'auto') {\r\n pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\r\n }\r\n setStatesStylesFromModel(pointer, itemModel);\r\n enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n });\r\n this._data = data;\r\n };\r\n GaugeView.prototype._renderTitle = function (seriesModel, ecModel, api, getColor, posInfo) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var titleModel = seriesModel.getModel('title');\r\n if (titleModel.get('show')) {\r\n var offsetCenter = titleModel.get('offsetCenter');\r\n var x = posInfo.cx + parsePercent$2(offsetCenter[0], posInfo.r);\r\n var y = posInfo.cy + parsePercent$2(offsetCenter[1], posInfo.r);\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n var value = seriesModel.getData().get(valueDim, 0);\r\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\r\n this.group.add(new ZRText({\r\n silent: true,\r\n style: createTextStyle(titleModel, {\r\n x: x,\r\n y: y,\r\n text: data.getName(0),\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n }, { inheritColor: autoColor })\r\n }));\r\n }\r\n };\r\n GaugeView.prototype._renderDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\r\n var detailModel = seriesModel.getModel('detail');\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n if (detailModel.get('show')) {\r\n var offsetCenter = detailModel.get('offsetCenter');\r\n var x = posInfo.cx + parsePercent$2(offsetCenter[0], posInfo.r);\r\n var y = posInfo.cy + parsePercent$2(offsetCenter[1], posInfo.r);\r\n var width = parsePercent$2(detailModel.get('width'), posInfo.r);\r\n var height = parsePercent$2(detailModel.get('height'), posInfo.r);\r\n var data = seriesModel.getData();\r\n var value = data.get(data.mapDimension('value'), 0);\r\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\r\n this.group.add(new ZRText({\r\n silent: true,\r\n style: createTextStyle(detailModel, {\r\n x: x,\r\n y: y,\r\n text: formatLabel(value, detailModel.get('formatter')),\r\n width: isNaN(width) ? null : width,\r\n height: isNaN(height) ? null : height,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n }, { inheritColor: autoColor })\r\n }));\r\n }\r\n };\r\n GaugeView.type = 'gauge';\r\n return GaugeView;\r\n }(ChartView));\r\n ChartView.registerClass(GaugeView);\n\n var FunnelSeriesModel = (function (_super) {\r\n __extends(FunnelSeriesModel, _super);\r\n function FunnelSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = FunnelSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n FunnelSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueDim = data.mapDimension('value');\r\n var sum = data.getSum(valueDim);\r\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n FunnelSeriesModel.type = 'series.funnel';\r\n FunnelSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n left: 80,\r\n top: 60,\r\n right: 80,\r\n bottom: 60,\r\n minSize: '0%',\r\n maxSize: '100%',\r\n sort: 'descending',\r\n gap: 0,\r\n funnelAlign: 'center',\r\n label: {\r\n show: true,\r\n position: 'outer'\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 20,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n itemStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return FunnelSeriesModel;\r\n }(SeriesModel));\r\n ComponentModel.registerClass(FunnelSeriesModel);\n\n var opacityAccessPath = ['itemStyle', 'opacity'];\r\n var FunnelPiece = (function (_super) {\r\n __extends(FunnelPiece, _super);\r\n function FunnelPiece(data, idx) {\r\n var _this = _super.call(this) || this;\r\n var polygon = _this;\r\n var labelLine = new Polyline();\r\n var text = new ZRText();\r\n polygon.setTextContent(text);\r\n _this.setTextGuideLine(labelLine);\r\n _this.updateData(data, idx, true);\r\n return _this;\r\n }\r\n FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\r\n var polygon = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var layout = data.getItemLayout(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var opacity = itemModel.get(opacityAccessPath);\r\n opacity = opacity == null ? 1 : opacity;\r\n polygon.useStyle(data.getItemVisual(idx, 'style'));\r\n polygon.style.lineJoin = 'round';\r\n if (firstCreate) {\r\n polygon.setShape({\r\n points: layout.points\r\n });\r\n polygon.style.opacity = 0;\r\n initProps(polygon, {\r\n style: {\r\n opacity: opacity\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n updateProps(polygon, {\r\n style: {\r\n opacity: opacity\r\n },\r\n shape: {\r\n points: layout.points\r\n }\r\n }, seriesModel, idx);\r\n }\r\n setStatesStylesFromModel(polygon, itemModel);\r\n this._updateLabel(data, idx);\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n FunnelPiece.prototype._updateLabel = function (data, idx) {\r\n var polygon = this;\r\n var labelLine = this.getTextGuideLine();\r\n var labelText = polygon.getTextContent();\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var layout = data.getItemLayout(idx);\r\n var labelLayout = layout.label;\r\n var visualColor = data.getItemVisual(idx, 'style').fill;\r\n setLabelStyle(labelText, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n defaultText: data.getName(idx)\r\n }, { normal: {\r\n align: labelLayout.textAlign,\r\n verticalAlign: labelLayout.verticalAlign\r\n } });\r\n polygon.setTextConfig({\r\n local: true,\r\n inside: !!labelLayout.inside,\r\n insideStroke: visualColor,\r\n outsideFill: visualColor\r\n });\r\n var linePoints = labelLayout.linePoints;\r\n labelLine.setShape({\r\n points: linePoints\r\n });\r\n polygon.textGuideLineConfig = {\r\n anchor: linePoints ? new Point(linePoints[0][0], linePoints[0][1]) : null\r\n };\r\n updateProps(labelText, {\r\n style: {\r\n x: labelLayout.x,\r\n y: labelLayout.y\r\n }\r\n }, seriesModel, idx);\r\n labelText.attr({\r\n rotation: labelLayout.rotation,\r\n originX: labelLayout.x,\r\n originY: labelLayout.y,\r\n z2: 10\r\n });\r\n setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor\r\n });\r\n };\r\n return FunnelPiece;\r\n }(Polygon));\r\n var FunnelView = (function (_super) {\r\n __extends(FunnelView, _super);\r\n function FunnelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = FunnelView.type;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n FunnelView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var funnelPiece = new FunnelPiece(data, idx);\r\n data.setItemGraphicEl(idx, funnelPiece);\r\n group.add(funnelPiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piece = oldData.getItemGraphicEl(oldIdx);\r\n piece.updateData(data, newIdx);\r\n group.add(piece);\r\n data.setItemGraphicEl(newIdx, piece);\r\n })\r\n .remove(function (idx) {\r\n var piece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piece, seriesModel, idx);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n FunnelView.prototype.remove = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n FunnelView.prototype.dispose = function () { };\r\n FunnelView.type = 'funnel';\r\n return FunnelView;\r\n }(ChartView));\r\n ChartView.registerClass(FunnelView);\n\n function getViewRect$3(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function getSortedIndices(data, sort) {\r\n var valueDim = data.mapDimension('value');\r\n var valueArr = data.mapArray(valueDim, function (val) {\r\n return val;\r\n });\r\n var indices = [];\r\n var isAscending = sort === 'ascending';\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n indices[i] = i;\r\n }\r\n if (typeof sort === 'function') {\r\n indices.sort(sort);\r\n }\r\n else if (sort !== 'none') {\r\n indices.sort(function (a, b) {\r\n return isAscending\r\n ? valueArr[a] - valueArr[b]\r\n : valueArr[b] - valueArr[a];\r\n });\r\n }\r\n return indices;\r\n }\r\n function labelLayout$1(data) {\r\n data.each(function (idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var layout = data.getItemLayout(idx);\r\n var points = layout.points;\r\n var isLabelInside = labelPosition === 'inner'\r\n || labelPosition === 'inside' || labelPosition === 'center'\r\n || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\r\n var textAlign;\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n if (isLabelInside) {\r\n if (labelPosition === 'insideLeft') {\r\n textX = (points[0][0] + points[3][0]) / 2 + 5;\r\n textY = (points[0][1] + points[3][1]) / 2;\r\n textAlign = 'left';\r\n }\r\n else if (labelPosition === 'insideRight') {\r\n textX = (points[1][0] + points[2][0]) / 2 - 5;\r\n textY = (points[1][1] + points[2][1]) / 2;\r\n textAlign = 'right';\r\n }\r\n else {\r\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\r\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\r\n textAlign = 'center';\r\n }\r\n linePoints = [\r\n [textX, textY], [textX, textY]\r\n ];\r\n }\r\n else {\r\n var x1 = void 0;\r\n var y1 = void 0;\r\n var x2 = void 0;\r\n var labelLineLen = labelLineModel.get('length');\r\n if (labelPosition === 'left') {\r\n x1 = (points[3][0] + points[0][0]) / 2;\r\n y1 = (points[3][1] + points[0][1]) / 2;\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n else if (labelPosition === 'right') {\r\n x1 = (points[1][0] + points[2][0]) / 2;\r\n y1 = (points[1][1] + points[2][1]) / 2;\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'left';\r\n }\r\n else if (labelPosition === 'rightTop') {\r\n x1 = points[1][0];\r\n y1 = points[1][1];\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'top';\r\n }\r\n else if (labelPosition === 'rightBottom') {\r\n x1 = points[2][0];\r\n y1 = points[2][1];\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'bottom';\r\n }\r\n else if (labelPosition === 'leftTop') {\r\n x1 = points[0][0];\r\n y1 = points[1][1];\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n else if (labelPosition === 'leftBottom') {\r\n x1 = points[3][0];\r\n y1 = points[2][1];\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n else {\r\n x1 = (points[1][0] + points[2][0]) / 2;\r\n y1 = (points[1][1] + points[2][1]) / 2;\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'left';\r\n }\r\n var y2 = y1;\r\n linePoints = [[x1, y1], [x2, y2]];\r\n textY = y2;\r\n }\r\n layout.label = {\r\n linePoints: linePoints,\r\n x: textX,\r\n y: textY,\r\n verticalAlign: 'middle',\r\n textAlign: textAlign,\r\n inside: isLabelInside\r\n };\r\n });\r\n }\r\n function funnelLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var sort = seriesModel.get('sort');\r\n var viewRect = getViewRect$3(seriesModel, api);\r\n var indices = getSortedIndices(data, sort);\r\n var sizeExtent = [\r\n parsePercent$2(seriesModel.get('minSize'), viewRect.width),\r\n parsePercent$2(seriesModel.get('maxSize'), viewRect.width)\r\n ];\r\n var dataExtent = data.getDataExtent(valueDim);\r\n var min = seriesModel.get('min');\r\n var max = seriesModel.get('max');\r\n if (min == null) {\r\n min = Math.min(dataExtent[0], 0);\r\n }\r\n if (max == null) {\r\n max = dataExtent[1];\r\n }\r\n var funnelAlign = seriesModel.get('funnelAlign');\r\n var gap = seriesModel.get('gap');\r\n var itemHeight = (viewRect.height - gap * (data.count() - 1)) / data.count();\r\n var y = viewRect.y;\r\n var getLinePoints = function (idx, offY) {\r\n var val = data.get(valueDim, idx) || 0;\r\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\r\n var x0;\r\n switch (funnelAlign) {\r\n case 'left':\r\n x0 = viewRect.x;\r\n break;\r\n case 'center':\r\n x0 = viewRect.x + (viewRect.width - itemWidth) / 2;\r\n break;\r\n case 'right':\r\n x0 = viewRect.x + viewRect.width - itemWidth;\r\n break;\r\n }\r\n return [\r\n [x0, offY],\r\n [x0 + itemWidth, offY]\r\n ];\r\n };\r\n if (sort === 'ascending') {\r\n itemHeight = -itemHeight;\r\n gap = -gap;\r\n y += viewRect.height;\r\n indices = indices.reverse();\r\n }\r\n for (var i = 0; i < indices.length; i++) {\r\n var idx = indices[i];\r\n var nextIdx = indices[i + 1];\r\n var itemModel = data.getItemModel(idx);\r\n var height = itemModel.get(['itemStyle', 'height']);\r\n if (height == null) {\r\n height = itemHeight;\r\n }\r\n else {\r\n height = parsePercent$2(height, viewRect.height);\r\n if (sort === 'ascending') {\r\n height = -height;\r\n }\r\n }\r\n var start = getLinePoints(idx, y);\r\n var end = getLinePoints(nextIdx, y + height);\r\n y += height + gap;\r\n data.setItemLayout(idx, {\r\n points: start.concat(end.slice().reverse())\r\n });\r\n }\r\n labelLayout$1(data);\r\n });\r\n }\n\n registerLayout(funnelLayout);\r\n registerProcessor(dataFilter('funnel'));\n\n function parallelPreprocessor (option) {\r\n createParallelIfNeeded(option);\r\n mergeAxisOptionFromParallel(option);\r\n }\r\n function createParallelIfNeeded(option) {\r\n if (option.parallel) {\r\n return;\r\n }\r\n var hasParallelSeries = false;\r\n each(option.series, function (seriesOpt) {\r\n if (seriesOpt && seriesOpt.type === 'parallel') {\r\n hasParallelSeries = true;\r\n }\r\n });\r\n if (hasParallelSeries) {\r\n option.parallel = [{}];\r\n }\r\n }\r\n function mergeAxisOptionFromParallel(option) {\r\n var axes = normalizeToArray(option.parallelAxis);\r\n each(axes, function (axisOption) {\r\n if (!isObject(axisOption)) {\r\n return;\r\n }\r\n var parallelIndex = axisOption.parallelIndex || 0;\r\n var parallelOption = normalizeToArray(option.parallel)[parallelIndex];\r\n if (parallelOption && parallelOption.parallelAxisDefault) {\r\n merge(axisOption, parallelOption.parallelAxisDefault, false);\r\n }\r\n });\r\n }\n\n var ParallelAxis = (function (_super) {\r\n __extends(ParallelAxis, _super);\r\n function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n _this.axisIndex = axisIndex;\r\n return _this;\r\n }\r\n ParallelAxis.prototype.isHorizontal = function () {\r\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\r\n };\r\n return ParallelAxis;\r\n }(Axis));\n\n function sliderMove (delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\r\n delta = delta || 0;\r\n var extentSpan = extent[1] - extent[0];\r\n if (minSpan != null) {\r\n minSpan = restrict(minSpan, [0, extentSpan]);\r\n }\r\n if (maxSpan != null) {\r\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\r\n }\r\n if (handleIndex === 'all') {\r\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\r\n handleSpan = restrict(handleSpan, [0, extentSpan]);\r\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\r\n handleIndex = 0;\r\n }\r\n handleEnds[0] = restrict(handleEnds[0], extent);\r\n handleEnds[1] = restrict(handleEnds[1], extent);\r\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\r\n handleEnds[handleIndex] += delta;\r\n var extentMinSpan = minSpan || 0;\r\n var realExtent = extent.slice();\r\n originalDistSign.sign < 0 ? (realExtent[0] += extentMinSpan) : (realExtent[1] -= extentMinSpan);\r\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\r\n var currDistSign;\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\r\n }\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (maxSpan != null && currDistSign.span > maxSpan) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\r\n }\r\n return handleEnds;\r\n }\r\n function getSpanSign(handleEnds, handleIndex) {\r\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\r\n return { span: Math.abs(dist), sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 };\r\n }\r\n function restrict(value, extend) {\r\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\r\n }\n\n var each$6 = each;\r\n var mathMin$6 = Math.min;\r\n var mathMax$6 = Math.max;\r\n var mathFloor$1 = Math.floor;\r\n var mathCeil$1 = Math.ceil;\r\n var round$2 = round$1;\r\n var PI$7 = Math.PI;\r\n var Parallel = (function () {\r\n function Parallel(parallelModel, ecModel, api) {\r\n this.type = 'parallel';\r\n this._axesMap = createHashMap();\r\n this._axesLayout = {};\r\n this.dimensions = parallelModel.dimensions;\r\n this._model = parallelModel;\r\n this._init(parallelModel, ecModel, api);\r\n }\r\n Parallel.prototype._init = function (parallelModel, ecModel, api) {\r\n var dimensions = parallelModel.dimensions;\r\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\r\n each$6(dimensions, function (dim, idx) {\r\n var axisIndex = parallelAxisIndex[idx];\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.coordinateSystem = axisModel.coordinateSystem = this;\r\n }, this);\r\n };\r\n Parallel.prototype.update = function (ecModel, api) {\r\n this._updateAxesFromSeries(this._model, ecModel);\r\n };\r\n Parallel.prototype.containPoint = function (point) {\r\n var layoutInfo = this._makeLayoutInfo();\r\n var axisBase = layoutInfo.axisBase;\r\n var layoutBase = layoutInfo.layoutBase;\r\n var pixelDimIndex = layoutInfo.pixelDimIndex;\r\n var pAxis = point[1 - pixelDimIndex];\r\n var pLayout = point[pixelDimIndex];\r\n return pAxis >= axisBase\r\n && pAxis <= axisBase + layoutInfo.axisLength\r\n && pLayout >= layoutBase\r\n && pLayout <= layoutBase + layoutInfo.layoutLength;\r\n };\r\n Parallel.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!parallelModel.contains(seriesModel, ecModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n each$6(this.dimensions, function (dim) {\r\n var axis = this._axesMap.get(dim);\r\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\r\n niceScaleExtent(axis.scale, axis.model);\r\n }, this);\r\n }, this);\r\n };\r\n Parallel.prototype.resize = function (parallelModel, api) {\r\n this._rect = getLayoutRect(parallelModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._layoutAxes();\r\n };\r\n Parallel.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Parallel.prototype._makeLayoutInfo = function () {\r\n var parallelModel = this._model;\r\n var rect = this._rect;\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n var layout = parallelModel.get('layout');\r\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\r\n var layoutLength = rect[wh[pixelDimIndex]];\r\n var layoutExtent = [0, layoutLength];\r\n var axisCount = this.dimensions.length;\r\n var axisExpandWidth = restrict$1(parallelModel.get('axisExpandWidth'), layoutExtent);\r\n var axisExpandCount = restrict$1(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\r\n var axisExpandable = parallelModel.get('axisExpandable')\r\n && axisCount > 3\r\n && axisCount > axisExpandCount\r\n && axisExpandCount > 1\r\n && axisExpandWidth > 0\r\n && layoutLength > 0;\r\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\r\n var winSize;\r\n if (!axisExpandWindow) {\r\n winSize = restrict$1(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\r\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor$1(axisCount / 2);\r\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\r\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\r\n }\r\n else {\r\n winSize = restrict$1(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\r\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\r\n }\r\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\r\n axisCollapseWidth < 3 && (axisCollapseWidth = 0);\r\n var winInnerIndices = [\r\n mathFloor$1(round$2(axisExpandWindow[0] / axisExpandWidth, 1)) + 1,\r\n mathCeil$1(round$2(axisExpandWindow[1] / axisExpandWidth, 1)) - 1\r\n ];\r\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\r\n return {\r\n layout: layout,\r\n pixelDimIndex: pixelDimIndex,\r\n layoutBase: rect[xy[pixelDimIndex]],\r\n layoutLength: layoutLength,\r\n axisBase: rect[xy[1 - pixelDimIndex]],\r\n axisLength: rect[wh[1 - pixelDimIndex]],\r\n axisExpandable: axisExpandable,\r\n axisExpandWidth: axisExpandWidth,\r\n axisCollapseWidth: axisCollapseWidth,\r\n axisExpandWindow: axisExpandWindow,\r\n axisCount: axisCount,\r\n winInnerIndices: winInnerIndices,\r\n axisExpandWindow0Pos: axisExpandWindow0Pos\r\n };\r\n };\r\n Parallel.prototype._layoutAxes = function () {\r\n var rect = this._rect;\r\n var axes = this._axesMap;\r\n var dimensions = this.dimensions;\r\n var layoutInfo = this._makeLayoutInfo();\r\n var layout = layoutInfo.layout;\r\n axes.each(function (axis) {\r\n var axisExtent = [0, layoutInfo.axisLength];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\r\n });\r\n each$6(dimensions, function (dim, idx) {\r\n var posInfo = (layoutInfo.axisExpandable\r\n ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\r\n var positionTable = {\r\n horizontal: {\r\n x: posInfo.position,\r\n y: layoutInfo.axisLength\r\n },\r\n vertical: {\r\n x: 0,\r\n y: posInfo.position\r\n }\r\n };\r\n var rotationTable = {\r\n horizontal: PI$7 / 2,\r\n vertical: 0\r\n };\r\n var position = [\r\n positionTable[layout].x + rect.x,\r\n positionTable[layout].y + rect.y\r\n ];\r\n var rotation = rotationTable[layout];\r\n var transform = create$1();\r\n rotate(transform, transform, rotation);\r\n translate(transform, transform, position);\r\n this._axesLayout[dim] = {\r\n position: position,\r\n rotation: rotation,\r\n transform: transform,\r\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\r\n axisLabelShow: posInfo.axisLabelShow,\r\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\r\n tickDirection: 1,\r\n labelDirection: 1\r\n };\r\n }, this);\r\n };\r\n Parallel.prototype.getAxis = function (dim) {\r\n return this._axesMap.get(dim);\r\n };\r\n Parallel.prototype.dataToPoint = function (value, dim) {\r\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\r\n };\r\n Parallel.prototype.eachActiveState = function (data, callback, start, end) {\r\n start == null && (start = 0);\r\n end == null && (end = data.count());\r\n var axesMap = this._axesMap;\r\n var dimensions = this.dimensions;\r\n var dataDimensions = [];\r\n var axisModels = [];\r\n each(dimensions, function (axisDim) {\r\n dataDimensions.push(data.mapDimension(axisDim));\r\n axisModels.push(axesMap.get(axisDim).model);\r\n });\r\n var hasActiveSet = this.hasAxisBrushed();\r\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\r\n var activeState = void 0;\r\n if (!hasActiveSet) {\r\n activeState = 'normal';\r\n }\r\n else {\r\n activeState = 'active';\r\n var values = data.getValues(dataDimensions, dataIndex);\r\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\r\n var state = axisModels[j].getActiveState(values[j]);\r\n if (state === 'inactive') {\r\n activeState = 'inactive';\r\n break;\r\n }\r\n }\r\n }\r\n callback(activeState, dataIndex);\r\n }\r\n };\r\n Parallel.prototype.hasAxisBrushed = function () {\r\n var dimensions = this.dimensions;\r\n var axesMap = this._axesMap;\r\n var hasActiveSet = false;\r\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\r\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\r\n hasActiveSet = true;\r\n }\r\n }\r\n return hasActiveSet;\r\n };\r\n Parallel.prototype.axisCoordToPoint = function (coord, dim) {\r\n var axisLayout = this._axesLayout[dim];\r\n return applyTransform$1([coord, 0], axisLayout.transform);\r\n };\r\n Parallel.prototype.getAxisLayout = function (dim) {\r\n return clone(this._axesLayout[dim]);\r\n };\r\n Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\r\n var layoutInfo = this._makeLayoutInfo();\r\n var pixelDimIndex = layoutInfo.pixelDimIndex;\r\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\r\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\r\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\r\n if (!this.containPoint(point)) {\r\n return { behavior: 'none', axisExpandWindow: axisExpandWindow };\r\n }\r\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\r\n var delta;\r\n var behavior = 'slide';\r\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\r\n var triggerArea = this._model.get('axisExpandSlideTriggerArea');\r\n var useJump = triggerArea[0] != null;\r\n if (axisCollapseWidth) {\r\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\r\n behavior = 'jump';\r\n delta = pointCoord - winSize * triggerArea[2];\r\n }\r\n else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\r\n behavior = 'jump';\r\n delta = pointCoord - winSize * (1 - triggerArea[2]);\r\n }\r\n else {\r\n (delta = pointCoord - winSize * triggerArea[1]) >= 0\r\n && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0\r\n && (delta = 0);\r\n }\r\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\r\n delta\r\n ? sliderMove(delta, axisExpandWindow, extent, 'all')\r\n : (behavior = 'none');\r\n }\r\n else {\r\n var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\r\n var pos = extent[1] * pointCoord / winSize2;\r\n axisExpandWindow = [mathMax$6(0, pos - winSize2 / 2)];\r\n axisExpandWindow[1] = mathMin$6(extent[1], axisExpandWindow[0] + winSize2);\r\n axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\r\n }\r\n return {\r\n axisExpandWindow: axisExpandWindow,\r\n behavior: behavior\r\n };\r\n };\r\n return Parallel;\r\n }());\r\n function restrict$1(len, extent) {\r\n return mathMin$6(mathMax$6(len, extent[0]), extent[1]);\r\n }\r\n function layoutAxisWithoutExpand(axisIndex, layoutInfo) {\r\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\r\n return {\r\n position: step * axisIndex,\r\n axisNameAvailableWidth: step,\r\n axisLabelShow: true\r\n };\r\n }\r\n function layoutAxisWithExpand(axisIndex, layoutInfo) {\r\n var layoutLength = layoutInfo.layoutLength;\r\n var axisExpandWidth = layoutInfo.axisExpandWidth;\r\n var axisCount = layoutInfo.axisCount;\r\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\r\n var winInnerIndices = layoutInfo.winInnerIndices;\r\n var position;\r\n var axisNameAvailableWidth = axisCollapseWidth;\r\n var axisLabelShow = false;\r\n var nameTruncateMaxWidth;\r\n if (axisIndex < winInnerIndices[0]) {\r\n position = axisIndex * axisCollapseWidth;\r\n nameTruncateMaxWidth = axisCollapseWidth;\r\n }\r\n else if (axisIndex <= winInnerIndices[1]) {\r\n position = layoutInfo.axisExpandWindow0Pos\r\n + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\r\n axisNameAvailableWidth = axisExpandWidth;\r\n axisLabelShow = true;\r\n }\r\n else {\r\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\r\n nameTruncateMaxWidth = axisCollapseWidth;\r\n }\r\n return {\r\n position: position,\r\n axisNameAvailableWidth: axisNameAvailableWidth,\r\n axisLabelShow: axisLabelShow,\r\n nameTruncateMaxWidth: nameTruncateMaxWidth\r\n };\r\n }\n\n function create$2(ecModel, api) {\r\n var coordSysList = [];\r\n ecModel.eachComponent('parallel', function (parallelModel, idx) {\r\n var coordSys = new Parallel(parallelModel, ecModel, api);\r\n coordSys.name = 'parallel_' + idx;\r\n coordSys.resize(parallelModel, api);\r\n parallelModel.coordinateSystem = coordSys;\r\n coordSys.model = parallelModel;\r\n coordSysList.push(coordSys);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'parallel') {\r\n var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\r\n seriesModel.coordinateSystem = parallelModel.coordinateSystem;\r\n }\r\n });\r\n return coordSysList;\r\n }\r\n CoordinateSystemManager.register('parallel', { create: create$2 });\n\n var ParallelAxisModel = (function (_super) {\r\n __extends(ParallelAxisModel, _super);\r\n function ParallelAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelAxisModel.type;\r\n _this.activeIntervals = [];\r\n return _this;\r\n }\r\n ParallelAxisModel.prototype.getAreaSelectStyle = function () {\r\n return makeStyleMapper([\r\n ['fill', 'color'],\r\n ['lineWidth', 'borderWidth'],\r\n ['stroke', 'borderColor'],\r\n ['width', 'width'],\r\n ['opacity', 'opacity']\r\n ])(this.getModel('areaSelectStyle'));\r\n };\r\n ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\r\n var activeIntervals = this.activeIntervals = clone(intervals);\r\n if (activeIntervals) {\r\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\r\n asc(activeIntervals[i]);\r\n }\r\n }\r\n };\r\n ParallelAxisModel.prototype.getActiveState = function (value) {\r\n var activeIntervals = this.activeIntervals;\r\n if (!activeIntervals.length) {\r\n return 'normal';\r\n }\r\n if (value == null || isNaN(+value)) {\r\n return 'inactive';\r\n }\r\n if (activeIntervals.length === 1) {\r\n var interval = activeIntervals[0];\r\n if (interval[0] <= value && value <= interval[1]) {\r\n return 'active';\r\n }\r\n }\r\n else {\r\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\r\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\r\n return 'active';\r\n }\r\n }\r\n }\r\n return 'inactive';\r\n };\r\n return ParallelAxisModel;\r\n }(ComponentModel));\r\n var defaultOption$1 = {\r\n type: 'value',\r\n areaSelectStyle: {\r\n width: 20,\r\n borderWidth: 1,\r\n borderColor: 'rgba(160,197,232)',\r\n color: 'rgba(160,197,232)',\r\n opacity: 0.3\r\n },\r\n realtime: true,\r\n z: 10\r\n };\r\n ComponentModel.registerClass(ParallelAxisModel);\r\n mixin(ParallelAxisModel, AxisModelCommonMixin);\r\n axisModelCreator('parallel', ParallelAxisModel, defaultOption$1);\n\n var ParallelModel = (function (_super) {\r\n __extends(ParallelModel, _super);\r\n function ParallelModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelModel.type;\r\n return _this;\r\n }\r\n ParallelModel.prototype.init = function () {\r\n _super.prototype.init.apply(this, arguments);\r\n this.mergeOption({});\r\n };\r\n ParallelModel.prototype.mergeOption = function (newOption) {\r\n var thisOption = this.option;\r\n newOption && merge(thisOption, newOption, true);\r\n this._initDimensions();\r\n };\r\n ParallelModel.prototype.contains = function (model, ecModel) {\r\n var parallelIndex = model.get('parallelIndex');\r\n return parallelIndex != null\r\n && ecModel.getComponent('parallel', parallelIndex) === this;\r\n };\r\n ParallelModel.prototype.setAxisExpand = function (opt) {\r\n each([\r\n 'axisExpandable',\r\n 'axisExpandCenter',\r\n 'axisExpandCount',\r\n 'axisExpandWidth',\r\n 'axisExpandWindow'\r\n ], function (name) {\r\n if (opt.hasOwnProperty(name)) {\r\n this.option[name] = opt[name];\r\n }\r\n }, this);\r\n };\r\n ParallelModel.prototype._initDimensions = function () {\r\n var dimensions = this.dimensions = [];\r\n var parallelAxisIndex = this.parallelAxisIndex = [];\r\n var axisModels = filter(this.ecModel.queryComponents({ mainType: 'parallelAxis' }), function (axisModel) {\r\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\r\n }, this);\r\n each(axisModels, function (axisModel) {\r\n dimensions.push('dim' + axisModel.get('dim'));\r\n parallelAxisIndex.push(axisModel.componentIndex);\r\n });\r\n };\r\n ParallelModel.type = 'parallel';\r\n ParallelModel.dependencies = ['parallelAxis'];\r\n ParallelModel.layoutMode = 'box';\r\n ParallelModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n left: 80,\r\n top: 60,\r\n right: 80,\r\n bottom: 60,\r\n layout: 'horizontal',\r\n axisExpandable: false,\r\n axisExpandCenter: null,\r\n axisExpandCount: 0,\r\n axisExpandWidth: 50,\r\n axisExpandRate: 17,\r\n axisExpandDebounce: 50,\r\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\r\n axisExpandTriggerOn: 'click',\r\n parallelAxisDefault: null\r\n };\r\n return ParallelModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ParallelModel);\n\n var actionInfo$1 = {\r\n type: 'axisAreaSelect',\r\n event: 'axisAreaSelected'\r\n };\r\n registerAction(actionInfo$1, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'parallelAxis', query: payload }, function (parallelAxisModel) {\r\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\r\n });\r\n });\r\n registerAction('parallelAxisExpand', function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'parallel', query: payload }, function (parallelModel) {\r\n parallelModel.setAxisExpand(payload);\r\n });\r\n });\n\n var BRUSH_PANEL_GLOBAL = true;\r\n var mathMin$7 = Math.min;\r\n var mathMax$7 = Math.max;\r\n var mathPow$2 = Math.pow;\r\n var COVER_Z = 10000;\r\n var UNSELECT_THRESHOLD = 6;\r\n var MIN_RESIZE_LINE_WIDTH = 6;\r\n var MUTEX_RESOURCE_KEY = 'globalPan';\r\n var DIRECTION_MAP = {\r\n w: [0, 0],\r\n e: [0, 1],\r\n n: [1, 0],\r\n s: [1, 1]\r\n };\r\n var CURSOR_MAP = {\r\n w: 'ew',\r\n e: 'ew',\r\n n: 'ns',\r\n s: 'ns',\r\n ne: 'nesw',\r\n sw: 'nesw',\r\n nw: 'nwse',\r\n se: 'nwse'\r\n };\r\n var DEFAULT_BRUSH_OPT = {\r\n brushStyle: {\r\n lineWidth: 2,\r\n stroke: 'rgba(0,0,0,0.3)',\r\n fill: 'rgba(0,0,0,0.1)'\r\n },\r\n transformable: true,\r\n brushMode: 'single',\r\n removeOnClick: false\r\n };\r\n var baseUID = 0;\r\n var BrushController = (function (_super) {\r\n __extends(BrushController, _super);\r\n function BrushController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._track = [];\r\n _this._covers = [];\r\n _this._handlers = {};\r\n if (__DEV__) {\r\n assert(zr);\r\n }\r\n _this._zr = zr;\r\n _this.group = new Group();\r\n _this._uid = 'brushController_' + baseUID++;\r\n each(pointerHandlers, function (handler, eventName) {\r\n this._handlers[eventName] = bind(handler, this);\r\n }, _this);\r\n return _this;\r\n }\r\n BrushController.prototype.enableBrush = function (brushOption) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n this._brushType && this._doDisableBrush();\r\n brushOption.brushType && this._doEnableBrush(brushOption);\r\n return this;\r\n };\r\n BrushController.prototype._doEnableBrush = function (brushOption) {\r\n var zr = this._zr;\r\n if (!this._enableGlobalPan) {\r\n take(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n }\r\n each(this._handlers, function (handler, eventName) {\r\n zr.on(eventName, handler);\r\n });\r\n this._brushType = brushOption.brushType;\r\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\r\n };\r\n BrushController.prototype._doDisableBrush = function () {\r\n var zr = this._zr;\r\n release(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n each(this._handlers, function (handler, eventName) {\r\n zr.off(eventName, handler);\r\n });\r\n this._brushType = this._brushOption = null;\r\n };\r\n BrushController.prototype.setPanels = function (panelOpts) {\r\n if (panelOpts && panelOpts.length) {\r\n var panels_1 = this._panels = {};\r\n each(panelOpts, function (panelOpts) {\r\n panels_1[panelOpts.panelId] = clone(panelOpts);\r\n });\r\n }\r\n else {\r\n this._panels = null;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.mount = function (opt) {\r\n opt = opt || {};\r\n if (__DEV__) {\r\n this._mounted = true;\r\n }\r\n this._enableGlobalPan = opt.enableGlobalPan;\r\n var thisGroup = this.group;\r\n this._zr.add(thisGroup);\r\n thisGroup.attr({\r\n x: opt.x || 0,\r\n y: opt.y || 0,\r\n rotation: opt.rotation || 0,\r\n scaleX: opt.scaleX || 1,\r\n scaleY: opt.scaleY || 1\r\n });\r\n this._transform = thisGroup.getLocalTransform();\r\n return this;\r\n };\r\n BrushController.prototype.updateCovers = function (coverConfigList) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n coverConfigList = map(coverConfigList, function (coverConfig) {\r\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\r\n });\r\n var tmpIdPrefix = '\\0-brush-index-';\r\n var oldCovers = this._covers;\r\n var newCovers = this._covers = [];\r\n var controller = this;\r\n var creatingCover = this._creatingCover;\r\n (new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey))\r\n .add(addOrUpdate)\r\n .update(addOrUpdate)\r\n .remove(remove)\r\n .execute();\r\n return this;\r\n function getKey(brushOption, index) {\r\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index)\r\n + '-' + brushOption.brushType;\r\n }\r\n function oldGetKey(cover, index) {\r\n return getKey(cover.__brushOption, index);\r\n }\r\n function addOrUpdate(newIndex, oldIndex) {\r\n var newBrushInternal = coverConfigList[newIndex];\r\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\r\n newCovers[newIndex] = oldCovers[oldIndex];\r\n }\r\n else {\r\n var cover = newCovers[newIndex] = oldIndex != null\r\n ? (oldCovers[oldIndex].__brushOption = newBrushInternal,\r\n oldCovers[oldIndex])\r\n : endCreating(controller, createCover(controller, newBrushInternal));\r\n updateCoverAfterCreation(controller, cover);\r\n }\r\n }\r\n function remove(oldIndex) {\r\n if (oldCovers[oldIndex] !== creatingCover) {\r\n controller.group.remove(oldCovers[oldIndex]);\r\n }\r\n }\r\n };\r\n BrushController.prototype.unmount = function () {\r\n if (__DEV__) {\r\n if (!this._mounted) {\r\n return;\r\n }\r\n }\r\n this.enableBrush(false);\r\n clearCovers(this);\r\n this._zr.remove(this.group);\r\n if (__DEV__) {\r\n this._mounted = false;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.dispose = function () {\r\n this.unmount();\r\n this.off();\r\n };\r\n return BrushController;\r\n }(Eventful));\r\n function createCover(controller, brushOption) {\r\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\r\n cover.__brushOption = brushOption;\r\n updateZ(cover, brushOption);\r\n controller.group.add(cover);\r\n return cover;\r\n }\r\n function endCreating(controller, creatingCover) {\r\n var coverRenderer = getCoverRenderer(creatingCover);\r\n if (coverRenderer.endCreating) {\r\n coverRenderer.endCreating(controller, creatingCover);\r\n updateZ(creatingCover, creatingCover.__brushOption);\r\n }\r\n return creatingCover;\r\n }\r\n function updateCoverShape(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\r\n }\r\n function updateZ(cover, brushOption) {\r\n var z = brushOption.z;\r\n z == null && (z = COVER_Z);\r\n cover.traverse(function (el) {\r\n el.z = z;\r\n el.z2 = z;\r\n });\r\n }\r\n function updateCoverAfterCreation(controller, cover) {\r\n getCoverRenderer(cover).updateCommon(controller, cover);\r\n updateCoverShape(controller, cover);\r\n }\r\n function getCoverRenderer(cover) {\r\n return coverRenderers[cover.__brushOption.brushType];\r\n }\r\n function getPanelByPoint(controller, e, localCursorPoint) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panel;\r\n var transform = controller._transform;\r\n each(panels, function (pn) {\r\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\r\n });\r\n return panel;\r\n }\r\n function getPanelByCover(controller, cover) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panelId = cover.__brushOption.panelId;\r\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\r\n }\r\n function clearCovers(controller) {\r\n var covers = controller._covers;\r\n var originalLength = covers.length;\r\n each(covers, function (cover) {\r\n controller.group.remove(cover);\r\n }, controller);\r\n covers.length = 0;\r\n return !!originalLength;\r\n }\r\n function trigger$1(controller, opt) {\r\n var areas = map(controller._covers, function (cover) {\r\n var brushOption = cover.__brushOption;\r\n var range = clone(brushOption.range);\r\n return {\r\n brushType: brushOption.brushType,\r\n panelId: brushOption.panelId,\r\n range: range\r\n };\r\n });\r\n controller.trigger('brush', {\r\n areas: areas,\r\n isEnd: !!opt.isEnd,\r\n removeOnClick: !!opt.removeOnClick\r\n });\r\n }\r\n function shouldShowCover(controller) {\r\n var track = controller._track;\r\n if (!track.length) {\r\n return false;\r\n }\r\n var p2 = track[track.length - 1];\r\n var p1 = track[0];\r\n var dx = p2[0] - p1[0];\r\n var dy = p2[1] - p1[1];\r\n var dist = mathPow$2(dx * dx + dy * dy, 0.5);\r\n return dist > UNSELECT_THRESHOLD;\r\n }\r\n function getTrackEnds(track) {\r\n var tail = track.length - 1;\r\n tail < 0 && (tail = 0);\r\n return [track[0], track[tail]];\r\n }\r\n function createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\r\n var cover = new Group();\r\n cover.add(new Rect({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true,\r\n draggable: true,\r\n cursor: 'move',\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n each(edgeNameSequences, function (nameSequence) {\r\n cover.add(new Rect({\r\n name: nameSequence.join(''),\r\n style: { opacity: 0 },\r\n draggable: true,\r\n silent: true,\r\n invisible: true,\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n });\r\n return cover;\r\n }\r\n function updateBaseRect(controller, cover, localRange, brushOption) {\r\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\r\n var handleSize = mathMax$7(lineWidth, MIN_RESIZE_LINE_WIDTH);\r\n var x = localRange[0][0];\r\n var y = localRange[1][0];\r\n var xa = x - lineWidth / 2;\r\n var ya = y - lineWidth / 2;\r\n var x2 = localRange[0][1];\r\n var y2 = localRange[1][1];\r\n var x2a = x2 - handleSize + lineWidth / 2;\r\n var y2a = y2 - handleSize + lineWidth / 2;\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var widtha = width + lineWidth;\r\n var heighta = height + lineWidth;\r\n updateRectShape(controller, cover, 'main', x, y, width, height);\r\n if (brushOption.transformable) {\r\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\r\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\r\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\r\n }\r\n }\r\n function updateCommon(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n var transformable = brushOption.transformable;\r\n var mainEl = cover.childAt(0);\r\n mainEl.useStyle(makeStyle(brushOption));\r\n mainEl.attr({\r\n silent: !transformable,\r\n cursor: transformable ? 'move' : 'default'\r\n });\r\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\r\n var el = cover.childOfName(nameSequence.join(''));\r\n var globalDir = nameSequence.length === 1\r\n ? getGlobalDirection1(controller, nameSequence[0])\r\n : getGlobalDirection2(controller, nameSequence);\r\n el && el.attr({\r\n silent: !transformable,\r\n invisible: !transformable,\r\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\r\n });\r\n });\r\n }\r\n function updateRectShape(controller, cover, name, x, y, w, h) {\r\n var el = cover.childOfName(name);\r\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\r\n }\r\n function makeStyle(brushOption) {\r\n return defaults({ strokeNoScale: true }, brushOption.brushStyle);\r\n }\r\n function formatRectRange(x, y, x2, y2) {\r\n var min = [mathMin$7(x, x2), mathMin$7(y, y2)];\r\n var max = [mathMax$7(x, x2), mathMax$7(y, y2)];\r\n return [\r\n [min[0], max[0]],\r\n [min[1], max[1]]\r\n ];\r\n }\r\n function getTransform$1(controller) {\r\n return getTransform(controller.group);\r\n }\r\n function getGlobalDirection1(controller, localDirName) {\r\n var map = { w: 'left', e: 'right', n: 'top', s: 'bottom' };\r\n var inverseMap = { left: 'w', right: 'e', top: 'n', bottom: 's' };\r\n var dir = transformDirection(map[localDirName], getTransform$1(controller));\r\n return inverseMap[dir];\r\n }\r\n function getGlobalDirection2(controller, localDirNameSeq) {\r\n var globalDir = [\r\n getGlobalDirection1(controller, localDirNameSeq[0]),\r\n getGlobalDirection1(controller, localDirNameSeq[1])\r\n ];\r\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\r\n return globalDir.join('');\r\n }\r\n function driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\r\n var brushOption = cover.__brushOption;\r\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(dirNameSequence, function (dirName) {\r\n var ind = DIRECTION_MAP[dirName];\r\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\r\n });\r\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function driftPolygon(controller, cover, dx, dy) {\r\n var range = cover.__brushOption.range;\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(range, function (point) {\r\n point[0] += localDelta[0];\r\n point[1] += localDelta[1];\r\n });\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function toLocalDelta(controller, dx, dy) {\r\n var thisGroup = controller.group;\r\n var localD = thisGroup.transformCoordToLocal(dx, dy);\r\n var localZero = thisGroup.transformCoordToLocal(0, 0);\r\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\r\n }\r\n function clipByPanel(controller, cover, data) {\r\n var panel = getPanelByCover(controller, cover);\r\n return (panel && panel !== BRUSH_PANEL_GLOBAL)\r\n ? panel.clipPath(data, controller._transform)\r\n : clone(data);\r\n }\r\n function pointsToRect(points) {\r\n var xmin = mathMin$7(points[0][0], points[1][0]);\r\n var ymin = mathMin$7(points[0][1], points[1][1]);\r\n var xmax = mathMax$7(points[0][0], points[1][0]);\r\n var ymax = mathMax$7(points[0][1], points[1][1]);\r\n return {\r\n x: xmin,\r\n y: ymin,\r\n width: xmax - xmin,\r\n height: ymax - ymin\r\n };\r\n }\r\n function resetCursor(controller, e, localCursorPoint) {\r\n if (!controller._brushType\r\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\r\n return;\r\n }\r\n var zr = controller._zr;\r\n var covers = controller._covers;\r\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\r\n if (!controller._dragging) {\r\n for (var i = 0; i < covers.length; i++) {\r\n var brushOption = covers[i].__brushOption;\r\n if (currPanel\r\n && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId)\r\n && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\r\n return;\r\n }\r\n }\r\n }\r\n currPanel && zr.setCursorStyle('crosshair');\r\n }\r\n function preventDefault(e) {\r\n var rawE = e.event;\r\n rawE.preventDefault && rawE.preventDefault();\r\n }\r\n function mainShapeContain(cover, x, y) {\r\n return cover.childOfName('main').contain(x, y);\r\n }\r\n function updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\r\n var creatingCover = controller._creatingCover;\r\n var panel = controller._creatingPanel;\r\n var thisBrushOption = controller._brushOption;\r\n var eventParams;\r\n controller._track.push(localCursorPoint.slice());\r\n if (shouldShowCover(controller) || creatingCover) {\r\n if (panel && !creatingCover) {\r\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\r\n var brushOption = clone(thisBrushOption);\r\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\r\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\r\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\r\n controller._covers.push(creatingCover);\r\n }\r\n if (creatingCover) {\r\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\r\n var coverBrushOption = creatingCover.__brushOption;\r\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\r\n if (isEnd) {\r\n endCreating(controller, creatingCover);\r\n coverRenderer.updateCommon(controller, creatingCover);\r\n }\r\n updateCoverShape(controller, creatingCover);\r\n eventParams = { isEnd: isEnd };\r\n }\r\n }\r\n else if (isEnd\r\n && thisBrushOption.brushMode === 'single'\r\n && thisBrushOption.removeOnClick) {\r\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\r\n eventParams = { isEnd: isEnd, removeOnClick: true };\r\n }\r\n }\r\n return eventParams;\r\n }\r\n function determineBrushType(brushType, panel) {\r\n if (brushType === 'auto') {\r\n if (__DEV__) {\r\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\r\n }\r\n return panel.defaultBrushType;\r\n }\r\n return brushType;\r\n }\r\n var pointerHandlers = {\r\n mousedown: function (e) {\r\n if (this._dragging) {\r\n handleDragEnd(this, e);\r\n }\r\n else if (!e.target || !e.target.draggable) {\r\n preventDefault(e);\r\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\r\n this._creatingCover = null;\r\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\r\n if (panel) {\r\n this._dragging = true;\r\n this._track = [localCursorPoint.slice()];\r\n }\r\n }\r\n },\r\n mousemove: function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\r\n resetCursor(this, e, localCursorPoint);\r\n if (this._dragging) {\r\n preventDefault(e);\r\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\r\n eventParams && trigger$1(this, eventParams);\r\n }\r\n },\r\n mouseup: function (e) {\r\n handleDragEnd(this, e);\r\n }\r\n };\r\n function handleDragEnd(controller, e) {\r\n if (controller._dragging) {\r\n preventDefault(e);\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\r\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\r\n controller._dragging = false;\r\n controller._track = [];\r\n controller._creatingCover = null;\r\n eventParams && trigger$1(controller, eventParams);\r\n }\r\n }\r\n function isOutsideZrArea(controller, x, y) {\r\n var zr = controller._zr;\r\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\r\n }\r\n var coverRenderers = {\r\n lineX: getLineRenderer(0),\r\n lineY: getLineRenderer(1),\r\n rect: {\r\n createCover: function (controller, brushOption) {\r\n function returnInput(range) {\r\n return range;\r\n }\r\n return createBaseRectCover({\r\n toRectRange: returnInput,\r\n fromRectRange: returnInput\r\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n updateBaseRect(controller, cover, localRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n },\r\n polygon: {\r\n createCover: function (controller, brushOption) {\r\n var cover = new Group();\r\n cover.add(new Polyline({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true\r\n }));\r\n return cover;\r\n },\r\n getCreatingRange: function (localTrack) {\r\n return localTrack;\r\n },\r\n endCreating: function (controller, cover) {\r\n cover.remove(cover.childAt(0));\r\n cover.add(new Polygon({\r\n name: 'main',\r\n draggable: true,\r\n drift: curry(driftPolygon, controller, cover),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n cover.childAt(0).setShape({\r\n points: clipByPanel(controller, cover, localRange)\r\n });\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n }\r\n };\r\n function getLineRenderer(xyIndex) {\r\n return {\r\n createCover: function (controller, brushOption) {\r\n return createBaseRectCover({\r\n toRectRange: function (range) {\r\n var rectRange = [range, [0, 100]];\r\n xyIndex && rectRange.reverse();\r\n return rectRange;\r\n },\r\n fromRectRange: function (rectRange) {\r\n return rectRange[xyIndex];\r\n }\r\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n var min = mathMin$7(ends[0][xyIndex], ends[1][xyIndex]);\r\n var max = mathMax$7(ends[0][xyIndex], ends[1][xyIndex]);\r\n return [min, max];\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n var otherExtent;\r\n var panel = getPanelByCover(controller, cover);\r\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\r\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\r\n }\r\n else {\r\n var zr = controller._zr;\r\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\r\n }\r\n var rectRange = [localRange, otherExtent];\r\n xyIndex && rectRange.reverse();\r\n updateBaseRect(controller, cover, rectRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n };\r\n }\n\n function makeRectPanelClipPath(rect) {\r\n rect = normalizeRect(rect);\r\n return function (localPoints) {\r\n return clipPointsByRect(localPoints, rect);\r\n };\r\n }\r\n function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\r\n rect = normalizeRect(rect);\r\n return function (xyIndex) {\r\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\r\n var brushWidth = idx ? rect.width : rect.height;\r\n var base = idx ? rect.x : rect.y;\r\n return [base, base + (brushWidth || 0)];\r\n };\r\n }\r\n function makeRectIsTargetByCursor(rect, api, targetModel) {\r\n var boundingRect = normalizeRect(rect);\r\n return function (e, localCursorPoint) {\r\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1])\r\n && !onIrrelevantElement(e, api, targetModel);\r\n };\r\n }\r\n function normalizeRect(rect) {\r\n return BoundingRect.create(rect);\r\n }\n\n var elementList = ['axisLine', 'axisTickLabel', 'axisName'];\r\n var ParallelAxisView = (function (_super) {\r\n __extends(ParallelAxisView, _super);\r\n function ParallelAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelAxisView.type;\r\n return _this;\r\n }\r\n ParallelAxisView.prototype.init = function (ecModel, api) {\r\n _super.prototype.init.apply(this, arguments);\r\n (this._brushController = new BrushController(api.getZr()))\r\n .on('brush', bind(this._onBrush, this));\r\n };\r\n ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\r\n return;\r\n }\r\n this.axisModel = axisModel;\r\n this.api = api;\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var coordSysModel = getCoordSysModel(axisModel, ecModel);\r\n var coordSys = coordSysModel.coordinateSystem;\r\n var areaSelectStyle = axisModel.getAreaSelectStyle();\r\n var areaWidth = areaSelectStyle.width;\r\n var dim = axisModel.axis.dim;\r\n var axisLayout = coordSys.getAxisLayout(dim);\r\n var builderOpt = extend({ strokeContainThreshold: areaWidth }, axisLayout);\r\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\r\n each(elementList, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n };\r\n ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\r\n var extent = axisModel.axis.getExtent();\r\n var extentLen = extent[1] - extent[0];\r\n var extra = Math.min(30, Math.abs(extentLen) * 0.1);\r\n var rect = BoundingRect.create({\r\n x: extent[0],\r\n y: -areaWidth / 2,\r\n width: extentLen,\r\n height: areaWidth\r\n });\r\n rect.x -= extra;\r\n rect.width += 2 * extra;\r\n this._brushController\r\n .mount({\r\n enableGlobalPan: true,\r\n rotation: builderOpt.rotation,\r\n x: builderOpt.position[0],\r\n y: builderOpt.position[1]\r\n })\r\n .setPanels([{\r\n panelId: 'pl',\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect, 0)\r\n }])\r\n .enableBrush({\r\n brushType: 'lineX',\r\n brushStyle: areaSelectStyle,\r\n removeOnClick: true\r\n })\r\n .updateCovers(getCoverInfoList(axisModel));\r\n };\r\n ParallelAxisView.prototype._onBrush = function (eventParam) {\r\n var coverInfoList = eventParam.areas;\r\n var axisModel = this.axisModel;\r\n var axis = axisModel.axis;\r\n var intervals = map(coverInfoList, function (coverInfo) {\r\n return [\r\n axis.coordToData(coverInfo.range[0], true),\r\n axis.coordToData(coverInfo.range[1], true)\r\n ];\r\n });\r\n if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\r\n this.api.dispatchAction({\r\n type: 'axisAreaSelect',\r\n parallelAxisId: axisModel.id,\r\n intervals: intervals\r\n });\r\n }\r\n };\r\n ParallelAxisView.prototype.dispose = function () {\r\n this._brushController.dispose();\r\n };\r\n ParallelAxisView.type = 'parallelAxis';\r\n return ParallelAxisView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ParallelAxisView);\r\n function fromAxisAreaSelect(axisModel, ecModel, payload) {\r\n return payload\r\n && payload.type === 'axisAreaSelect'\r\n && ecModel.findComponents({ mainType: 'parallelAxis', query: payload })[0] === axisModel;\r\n }\r\n function getCoverInfoList(axisModel) {\r\n var axis = axisModel.axis;\r\n return map(axisModel.activeIntervals, function (interval) {\r\n return {\r\n brushType: 'lineX',\r\n panelId: 'pl',\r\n range: [\r\n axis.dataToCoord(interval[0], true),\r\n axis.dataToCoord(interval[1], true)\r\n ]\r\n };\r\n });\r\n }\r\n function getCoordSysModel(axisModel, ecModel) {\r\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\r\n }\n\n var CLICK_THRESHOLD = 5;\r\n var ParallelView = (function (_super) {\r\n __extends(ParallelView, _super);\r\n function ParallelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelView.type;\r\n return _this;\r\n }\r\n ParallelView.prototype.render = function (parallelModel, ecModel, api) {\r\n this._model = parallelModel;\r\n this._api = api;\r\n if (!this._handlers) {\r\n this._handlers = {};\r\n each(handlers, function (handler, eventName) {\r\n api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\r\n }, this);\r\n }\r\n createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\r\n };\r\n ParallelView.prototype.dispose = function (ecModel, api) {\r\n each(this._handlers, function (handler, eventName) {\r\n api.getZr().off(eventName, handler);\r\n });\r\n this._handlers = null;\r\n };\r\n ParallelView.prototype._throttledDispatchExpand = function (opt) {\r\n this._dispatchExpand(opt);\r\n };\r\n ParallelView.prototype._dispatchExpand = function (opt) {\r\n opt && this._api.dispatchAction(extend({ type: 'parallelAxisExpand' }, opt));\r\n };\r\n ParallelView.type = 'parallel';\r\n return ParallelView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ParallelView);\r\n var handlers = {\r\n mousedown: function (e) {\r\n if (checkTrigger(this, 'click')) {\r\n this._mouseDownPoint = [e.offsetX, e.offsetY];\r\n }\r\n },\r\n mouseup: function (e) {\r\n var mouseDownPoint = this._mouseDownPoint;\r\n if (checkTrigger(this, 'click') && mouseDownPoint) {\r\n var point = [e.offsetX, e.offsetY];\r\n var dist = Math.pow(mouseDownPoint[0] - point[0], 2)\r\n + Math.pow(mouseDownPoint[1] - point[1], 2);\r\n if (dist > CLICK_THRESHOLD) {\r\n return;\r\n }\r\n var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\r\n result.behavior !== 'none' && this._dispatchExpand({\r\n axisExpandWindow: result.axisExpandWindow\r\n });\r\n }\r\n this._mouseDownPoint = null;\r\n },\r\n mousemove: function (e) {\r\n if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\r\n return;\r\n }\r\n var model = this._model;\r\n var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\r\n var behavior = result.behavior;\r\n behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\r\n this._throttledDispatchExpand(behavior === 'none'\r\n ? null\r\n : {\r\n axisExpandWindow: result.axisExpandWindow,\r\n animation: behavior === 'jump' ? null : {\r\n duration: 0\r\n }\r\n });\r\n }\r\n };\r\n function checkTrigger(view, triggerOn) {\r\n var model = view._model;\r\n return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\r\n }\r\n registerPreprocessor(parallelPreprocessor);\n\n var ParallelSeriesModel = (function (_super) {\r\n __extends(ParallelSeriesModel, _super);\r\n function ParallelSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelSeriesModel.type;\r\n _this.visualStyleAccessPath = 'lineStyle';\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: bind(makeDefaultEncode, null, this)\r\n });\r\n };\r\n ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\r\n var coordSys = this.coordinateSystem;\r\n var data = this.getData();\r\n var indices = [];\r\n coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\r\n if (activeState === theActiveState) {\r\n indices.push(data.getRawIndex(dataIndex));\r\n }\r\n });\r\n return indices;\r\n };\r\n ParallelSeriesModel.type = 'series.parallel';\r\n ParallelSeriesModel.dependencies = ['parallel'];\r\n ParallelSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'parallel',\r\n parallelIndex: 0,\r\n label: {\r\n show: false\r\n },\r\n inactiveOpacity: 0.05,\r\n activeOpacity: 1,\r\n lineStyle: {\r\n width: 1,\r\n opacity: 0.45,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n label: {\r\n show: false\r\n }\r\n },\r\n progressive: 500,\r\n smooth: false,\r\n animationEasing: 'linear'\r\n };\r\n return ParallelSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ParallelSeriesModel);\r\n function makeDefaultEncode(seriesModel) {\r\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n if (!parallelModel) {\r\n return;\r\n }\r\n var encodeDefine = {};\r\n each(parallelModel.dimensions, function (axisDim) {\r\n var dataDimIndex = convertDimNameToNumber(axisDim);\r\n encodeDefine[axisDim] = dataDimIndex;\r\n });\r\n return encodeDefine;\r\n }\r\n function convertDimNameToNumber(dimName) {\r\n return +dimName.replace('dim', '');\r\n }\n\n var DEFAULT_SMOOTH = 0.3;\r\n var ParallelView$1 = (function (_super) {\r\n __extends(ParallelView, _super);\r\n function ParallelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelView.type;\r\n _this._dataGroup = new Group();\r\n _this._initialized = false;\r\n return _this;\r\n }\r\n ParallelView.prototype.init = function () {\r\n this.group.add(this._dataGroup);\r\n };\r\n ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var dataGroup = this._dataGroup;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var dimensions = coordSys.dimensions;\r\n var seriesScope = makeSeriesScope$2(seriesModel);\r\n data.diff(oldData)\r\n .add(add)\r\n .update(update)\r\n .remove(remove)\r\n .execute();\r\n function add(newDataIndex) {\r\n var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\r\n updateElCommon(line, data, newDataIndex, seriesScope);\r\n }\r\n function update(newDataIndex, oldDataIndex) {\r\n var line = oldData.getItemGraphicEl(oldDataIndex);\r\n var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\r\n data.setItemGraphicEl(newDataIndex, line);\r\n updateProps(line, { shape: { points: points } }, seriesModel, newDataIndex);\r\n updateElCommon(line, data, newDataIndex, seriesScope);\r\n }\r\n function remove(oldDataIndex) {\r\n var line = oldData.getItemGraphicEl(oldDataIndex);\r\n dataGroup.remove(line);\r\n }\r\n if (!this._initialized) {\r\n this._initialized = true;\r\n var clipPath = createGridClipShape(coordSys, seriesModel, function () {\r\n setTimeout(function () {\r\n dataGroup.removeClipPath();\r\n });\r\n });\r\n dataGroup.setClipPath(clipPath);\r\n }\r\n this._data = data;\r\n };\r\n ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this._initialized = true;\r\n this._data = null;\r\n this._dataGroup.removeAll();\r\n };\r\n ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var dimensions = coordSys.dimensions;\r\n var seriesScope = makeSeriesScope$2(seriesModel);\r\n for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\r\n var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\r\n line.incremental = true;\r\n updateElCommon(line, data, dataIndex, seriesScope);\r\n }\r\n };\r\n ParallelView.prototype.remove = function () {\r\n this._dataGroup && this._dataGroup.removeAll();\r\n this._data = null;\r\n };\r\n ParallelView.type = 'parallel';\r\n return ParallelView;\r\n }(ChartView));\r\n function createGridClipShape(coordSys, seriesModel, cb) {\r\n var parallelModel = coordSys.model;\r\n var rect = coordSys.getRect();\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n }\r\n });\r\n var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\r\n rectEl.setShape(dim, 0);\r\n initProps(rectEl, {\r\n shape: {\r\n width: rect.width,\r\n height: rect.height\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n function createLinePoints(data, dataIndex, dimensions, coordSys) {\r\n var points = [];\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimName = dimensions[i];\r\n var value = data.get(data.mapDimension(dimName), dataIndex);\r\n if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\r\n points.push(coordSys.dataToPoint(value, dimName));\r\n }\r\n }\r\n return points;\r\n }\r\n function addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\r\n var points = createLinePoints(data, dataIndex, dimensions, coordSys);\r\n var line = new Polyline({\r\n shape: { points: points },\r\n z2: 10\r\n });\r\n dataGroup.add(line);\r\n data.setItemGraphicEl(dataIndex, line);\r\n return line;\r\n }\r\n function makeSeriesScope$2(seriesModel) {\r\n var smooth = seriesModel.get('smooth', true);\r\n smooth === true && (smooth = DEFAULT_SMOOTH);\r\n return {\r\n smooth: smooth != null ? +smooth : DEFAULT_SMOOTH\r\n };\r\n }\r\n function updateElCommon(el, data, dataIndex, seriesScope) {\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.fill = null;\r\n seriesScope.smooth && (el.shape.smooth = seriesScope.smooth);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n setStatesStylesFromModel(el, itemModel, 'lineStyle', 'getLineStyle');\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n function isEmptyValue(val, axisType) {\r\n return axisType === 'category'\r\n ? val == null\r\n : (val == null || isNaN(val));\r\n }\r\n ChartView.registerClass(ParallelView$1);\n\n var opacityAccessPath$1 = ['lineStyle', 'opacity'];\r\n var parallelVisual = {\r\n seriesType: 'parallel',\r\n reset: function (seriesModel, ecModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var opacityMap = {\r\n normal: seriesModel.get(['lineStyle', 'opacity']),\r\n active: seriesModel.get('activeOpacity'),\r\n inactive: seriesModel.get('inactiveOpacity')\r\n };\r\n return {\r\n progress: function (params, data) {\r\n coordSys.eachActiveState(data, function (activeState, dataIndex) {\r\n var opacity = opacityMap[activeState];\r\n if (activeState === 'normal' && data.hasItemOption) {\r\n var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath$1, true);\r\n itemOpacity != null && (opacity = itemOpacity);\r\n }\r\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n existsStyle.opacity = opacity;\r\n }, params.start, params.end);\r\n }\r\n };\r\n }\r\n };\n\n registerVisual(parallelVisual);\n\n var SankeySeriesModel = (function (_super) {\r\n __extends(SankeySeriesModel, _super);\r\n function SankeySeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SankeySeriesModel.type;\r\n return _this;\r\n }\r\n SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var links = option.edges || option.links;\r\n var nodes = option.data || option.nodes;\r\n var levels = option.levels;\r\n this.levelModels = [];\r\n var levelModels = this.levelModels;\r\n for (var i = 0; i < levels.length; i++) {\r\n if (levels[i].depth != null && levels[i].depth >= 0) {\r\n levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\r\n }\r\n else {\r\n if (__DEV__) {\r\n throw new Error('levels[i].depth is mandatory and should be natural number');\r\n }\r\n }\r\n }\r\n if (nodes && links) {\r\n var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\r\n return graph.data;\r\n }\r\n function beforeLink(nodeData, edgeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var seriesModel = model.parentModel;\r\n var layout = seriesModel.getData().getItemLayout(idx);\r\n if (layout) {\r\n var nodeDepth = layout.depth;\r\n var levelModel = seriesModel.levelModels[nodeDepth];\r\n if (levelModel) {\r\n model.parentModel = levelModel;\r\n }\r\n }\r\n return model;\r\n });\r\n edgeData.wrapMethod('getItemModel', function (model, idx) {\r\n var seriesModel = model.parentModel;\r\n var edge = seriesModel.getGraph().getEdgeByIndex(idx);\r\n var layout = edge.node1.getLayout();\r\n if (layout) {\r\n var depth = layout.depth;\r\n var levelModel = seriesModel.levelModels[depth];\r\n if (levelModel) {\r\n model.parentModel = levelModel;\r\n }\r\n }\r\n return model;\r\n });\r\n }\r\n };\r\n SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\r\n var dataItem = this.option.data[dataIndex];\r\n dataItem.localX = localPosition[0];\r\n dataItem.localY = localPosition[1];\r\n };\r\n SankeySeriesModel.prototype.getGraph = function () {\r\n return this.getData().graph;\r\n };\r\n SankeySeriesModel.prototype.getEdgeData = function () {\r\n return this.getGraph().edgeData;\r\n };\r\n SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n if (dataType === 'edge') {\r\n var params = this.getDataParams(dataIndex, dataType);\r\n var rawDataOpt = params.data;\r\n if (renderMode === 'richText') {\r\n return encodeHTML(rawDataOpt.source + ' -- ' + rawDataOpt.target) + params.value;\r\n }\r\n return '
'\r\n + concatTooltipHtml(rawDataOpt.source + ' -- ' + rawDataOpt.target, params.value || '')\r\n + '
';\r\n }\r\n else if (dataType === 'node') {\r\n var node = this.getGraph().getNodeByIndex(dataIndex);\r\n var value = node.getLayout().value;\r\n var name_1 = this.getDataParams(dataIndex, dataType).data.name;\r\n if (renderMode === 'richText') {\r\n return encodeHTML(value ? name_1 : '') + ': ' + (value || '');\r\n }\r\n return '
'\r\n + concatTooltipHtml(value ? name_1 : '', value || '')\r\n + '
';\r\n }\r\n return _super.prototype.formatTooltip.call(this, dataIndex, multipleSeries, dataType, renderMode);\r\n };\r\n SankeySeriesModel.prototype.optionUpdated = function () {\r\n var option = this.option;\r\n if (option.focusNodeAdjacency === true) {\r\n option.focusNodeAdjacency = 'allEdges';\r\n }\r\n };\r\n SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\r\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\r\n if (params.value == null && dataType === 'node') {\r\n var node = this.getGraph().getNodeByIndex(dataIndex);\r\n var nodeValue = node.getLayout().value;\r\n params.value = nodeValue;\r\n }\r\n return params;\r\n };\r\n SankeySeriesModel.type = 'series.sankey';\r\n SankeySeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n left: '5%',\r\n top: '5%',\r\n right: '20%',\r\n bottom: '5%',\r\n orient: 'horizontal',\r\n nodeWidth: 20,\r\n nodeGap: 8,\r\n draggable: true,\r\n focusNodeAdjacency: false,\r\n layoutIterations: 32,\r\n label: {\r\n show: true,\r\n position: 'right',\r\n color: '#000',\r\n fontSize: 12\r\n },\r\n levels: [],\r\n nodeAlign: 'justify',\r\n itemStyle: {\r\n borderWidth: 1,\r\n borderColor: '#333'\r\n },\r\n lineStyle: {\r\n color: '#314656',\r\n opacity: 0.2,\r\n curveness: 0.5\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n opacity: 0.5\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n animationEasing: 'linear',\r\n animationDuration: 1000\r\n };\r\n return SankeySeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(SankeySeriesModel);\n\n var SankeyPathShape = (function () {\r\n function SankeyPathShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.cpx2 = 0;\r\n this.cpy2 = 0;\r\n this.extent = 0;\r\n }\r\n return SankeyPathShape;\r\n }());\r\n var SankeyPath = (function (_super) {\r\n __extends(SankeyPath, _super);\r\n function SankeyPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n SankeyPath.prototype.getDefaultShape = function () {\r\n return new SankeyPathShape();\r\n };\r\n SankeyPath.prototype.buildPath = function (ctx, shape) {\r\n var extent = shape.extent;\r\n ctx.moveTo(shape.x1, shape.y1);\r\n ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\r\n if (shape.orient === 'vertical') {\r\n ctx.lineTo(shape.x2 + extent, shape.y2);\r\n ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\r\n }\r\n else {\r\n ctx.lineTo(shape.x2, shape.y2 + extent);\r\n ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\r\n }\r\n ctx.closePath();\r\n };\r\n SankeyPath.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n SankeyPath.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n return SankeyPath;\r\n }(Path));\r\n var SankeyView = (function (_super) {\r\n __extends(SankeyView, _super);\r\n function SankeyView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SankeyView.type;\r\n _this._focusAdjacencyDisabled = false;\r\n return _this;\r\n }\r\n SankeyView.prototype.render = function (seriesModel, ecModel, api) {\r\n var sankeyView = this;\r\n var graph = seriesModel.getGraph();\r\n var group = this.group;\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var width = layoutInfo.width;\r\n var height = layoutInfo.height;\r\n var nodeData = seriesModel.getData();\r\n var edgeData = seriesModel.getData('edge');\r\n var orient = seriesModel.get('orient');\r\n this._model = seriesModel;\r\n group.removeAll();\r\n group.x = layoutInfo.x;\r\n group.y = layoutInfo.y;\r\n graph.eachEdge(function (edge) {\r\n var curve = new SankeyPath();\r\n var ecData = getECData(curve);\r\n ecData.dataIndex = edge.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n ecData.dataType = 'edge';\r\n var edgeModel = edge.getModel();\r\n var lineStyleModel = edgeModel.getModel('lineStyle');\r\n var curvature = lineStyleModel.get('curveness');\r\n var n1Layout = edge.node1.getLayout();\r\n var node1Model = edge.node1.getModel();\r\n var dragX1 = node1Model.get('localX');\r\n var dragY1 = node1Model.get('localY');\r\n var n2Layout = edge.node2.getLayout();\r\n var node2Model = edge.node2.getModel();\r\n var dragX2 = node2Model.get('localX');\r\n var dragY2 = node2Model.get('localY');\r\n var edgeLayout = edge.getLayout();\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n var cpx1;\r\n var cpy1;\r\n var cpx2;\r\n var cpy2;\r\n curve.shape.extent = Math.max(1, edgeLayout.dy);\r\n curve.shape.orient = orient;\r\n if (orient === 'vertical') {\r\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\r\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\r\n x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\r\n y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\r\n cpx1 = x1;\r\n cpy1 = y1 * (1 - curvature) + y2 * curvature;\r\n cpx2 = x2;\r\n cpy2 = y1 * curvature + y2 * (1 - curvature);\r\n }\r\n else {\r\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\r\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\r\n x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\r\n y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\r\n cpx1 = x1 * (1 - curvature) + x2 * curvature;\r\n cpy1 = y1;\r\n cpx2 = x1 * curvature + x2 * (1 - curvature);\r\n cpy2 = y2;\r\n }\r\n curve.setShape({\r\n x1: x1,\r\n y1: y1,\r\n x2: x2,\r\n y2: y2,\r\n cpx1: cpx1,\r\n cpy1: cpy1,\r\n cpx2: cpx2,\r\n cpy2: cpy2\r\n });\r\n curve.useStyle(lineStyleModel.getItemStyle());\r\n switch (curve.style.fill) {\r\n case 'source':\r\n curve.style.fill = edge.node1.getVisual('color');\r\n break;\r\n case 'target':\r\n curve.style.fill = edge.node2.getVisual('color');\r\n break;\r\n case 'gradient':\r\n var sourceColor = edge.node1.getVisual('color');\r\n var targetColor = edge.node2.getVisual('color');\r\n if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\r\n curve.style.fill = new LinearGradient(0, 0, 1, 0, [{\r\n color: sourceColor,\r\n offset: 0\r\n }, {\r\n color: targetColor,\r\n offset: 1\r\n }]);\r\n }\r\n }\r\n var emphasisModel = edgeModel.getModel('emphasis');\r\n setStatesStylesFromModel(curve, edgeModel, 'lineStyle', 'getItemStyle');\r\n group.add(curve);\r\n edgeData.setItemGraphicEl(edge.dataIndex, curve);\r\n var focus = emphasisModel.get('focus');\r\n enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\r\n getECData(curve).dataType = 'edge';\r\n });\r\n graph.eachNode(function (node) {\r\n var layout = node.getLayout();\r\n var itemModel = node.getModel();\r\n var dragX = itemModel.get('localX');\r\n var dragY = itemModel.get('localY');\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var rect = new Rect({\r\n shape: {\r\n x: dragX != null ? dragX * width : layout.x,\r\n y: dragY != null ? dragY * height : layout.y,\r\n width: layout.dx,\r\n height: layout.dy\r\n },\r\n style: itemModel.getModel('itemStyle').getItemStyle()\r\n });\r\n setLabelStyle(rect, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: node.dataIndex,\r\n defaultText: node.id\r\n });\r\n rect.disableLabelAnimation = true;\r\n rect.setStyle('fill', node.getVisual('color'));\r\n setStatesStylesFromModel(rect, itemModel);\r\n group.add(rect);\r\n nodeData.setItemGraphicEl(node.dataIndex, rect);\r\n getECData(rect).dataType = 'node';\r\n var focus = emphasisModel.get('focus');\r\n enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\r\n });\r\n nodeData.eachItemGraphicEl(function (el, dataIndex) {\r\n var itemModel = nodeData.getItemModel(dataIndex);\r\n if (itemModel.get('draggable')) {\r\n el.drift = function (dx, dy) {\r\n sankeyView._focusAdjacencyDisabled = true;\r\n this.shape.x += dx;\r\n this.shape.y += dy;\r\n this.dirty();\r\n api.dispatchAction({\r\n type: 'dragNode',\r\n seriesId: seriesModel.id,\r\n dataIndex: nodeData.getRawIndex(dataIndex),\r\n localX: this.shape.x / width,\r\n localY: this.shape.y / height\r\n });\r\n };\r\n el.ondragend = function () {\r\n sankeyView._focusAdjacencyDisabled = false;\r\n };\r\n el.draggable = true;\r\n el.cursor = 'move';\r\n }\r\n });\r\n if (!this._data && seriesModel.isAnimationEnabled()) {\r\n group.setClipPath(createGridClipShape$1(group.getBoundingRect(), seriesModel, function () {\r\n group.removeClipPath();\r\n }));\r\n }\r\n this._data = seriesModel.getData();\r\n };\r\n SankeyView.prototype.dispose = function () {\r\n };\r\n SankeyView.type = 'sankey';\r\n return SankeyView;\r\n }(ChartView));\r\n function createGridClipShape$1(rect, seriesModel, cb) {\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x - 10,\r\n y: rect.y - 10,\r\n width: 0,\r\n height: rect.height + 20\r\n }\r\n });\r\n initProps(rectEl, {\r\n shape: {\r\n width: rect.width + 20\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n ChartView.registerClass(SankeyView);\n\n registerAction({\r\n type: 'dragNode',\r\n event: 'dragnode',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n subType: 'sankey',\r\n query: payload\r\n }, function (seriesModel) {\r\n seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\r\n });\r\n });\n\n function sankeyLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\r\n var nodeWidth = seriesModel.get('nodeWidth');\r\n var nodeGap = seriesModel.get('nodeGap');\r\n var layoutInfo = getViewRect$4(seriesModel, api);\r\n seriesModel.layoutInfo = layoutInfo;\r\n var width = layoutInfo.width;\r\n var height = layoutInfo.height;\r\n var graph = seriesModel.getGraph();\r\n var nodes = graph.nodes;\r\n var edges = graph.edges;\r\n computeNodeValues(nodes);\r\n var filteredNodes = filter(nodes, function (node) {\r\n return node.getLayout().value === 0;\r\n });\r\n var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\r\n var orient = seriesModel.get('orient');\r\n var nodeAlign = seriesModel.get('nodeAlign');\r\n layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\r\n });\r\n }\r\n function getViewRect$4(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\r\n computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\r\n computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\r\n computeEdgeDepths(nodes, orient);\r\n }\r\n function computeNodeValues(nodes) {\r\n each(nodes, function (node) {\r\n var value1 = sum(node.outEdges, getEdgeValue);\r\n var value2 = sum(node.inEdges, getEdgeValue);\r\n var nodeRawValue = node.getValue() || 0;\r\n var value = Math.max(value1, value2, nodeRawValue);\r\n node.setLayout({ value: value }, true);\r\n });\r\n }\r\n function computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\r\n var remainEdges = [];\r\n var indegreeArr = [];\r\n var zeroIndegrees = [];\r\n var nextTargetNode = [];\r\n var x = 0;\r\n for (var i = 0; i < edges.length; i++) {\r\n remainEdges[i] = 1;\r\n }\r\n for (var i = 0; i < nodes.length; i++) {\r\n indegreeArr[i] = nodes[i].inEdges.length;\r\n if (indegreeArr[i] === 0) {\r\n zeroIndegrees.push(nodes[i]);\r\n }\r\n }\r\n var maxNodeDepth = -1;\r\n while (zeroIndegrees.length) {\r\n for (var idx = 0; idx < zeroIndegrees.length; idx++) {\r\n var node = zeroIndegrees[idx];\r\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\r\n var isItemDepth = item.depth != null && item.depth >= 0;\r\n if (isItemDepth && item.depth > maxNodeDepth) {\r\n maxNodeDepth = item.depth;\r\n }\r\n node.setLayout({ depth: isItemDepth ? item.depth : x }, true);\r\n orient === 'vertical'\r\n ? node.setLayout({ dy: nodeWidth }, true)\r\n : node.setLayout({ dx: nodeWidth }, true);\r\n for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\r\n var edge = node.outEdges[edgeIdx];\r\n var indexEdge = edges.indexOf(edge);\r\n remainEdges[indexEdge] = 0;\r\n var targetNode = edge.node2;\r\n var nodeIndex = nodes.indexOf(targetNode);\r\n if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\r\n nextTargetNode.push(targetNode);\r\n }\r\n }\r\n }\r\n ++x;\r\n zeroIndegrees = nextTargetNode;\r\n nextTargetNode = [];\r\n }\r\n for (var i = 0; i < remainEdges.length; i++) {\r\n if (remainEdges[i] === 1) {\r\n throw new Error('Sankey is a DAG, the original data has cycle!');\r\n }\r\n }\r\n var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\r\n if (nodeAlign && nodeAlign !== 'left') {\r\n adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\r\n }\r\n var kx = orient === 'vertical'\r\n ? (height - nodeWidth) / maxDepth\r\n : (width - nodeWidth) / maxDepth;\r\n scaleNodeBreadths(nodes, kx, orient);\r\n }\r\n function isNodeDepth(node) {\r\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\r\n return item.depth != null && item.depth >= 0;\r\n }\r\n function adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\r\n if (nodeAlign === 'right') {\r\n var nextSourceNode = [];\r\n var remainNodes = nodes;\r\n var nodeHeight = 0;\r\n while (remainNodes.length) {\r\n for (var i = 0; i < remainNodes.length; i++) {\r\n var node = remainNodes[i];\r\n node.setLayout({ skNodeHeight: nodeHeight }, true);\r\n for (var j = 0; j < node.inEdges.length; j++) {\r\n var edge = node.inEdges[j];\r\n if (nextSourceNode.indexOf(edge.node1) < 0) {\r\n nextSourceNode.push(edge.node1);\r\n }\r\n }\r\n }\r\n remainNodes = nextSourceNode;\r\n nextSourceNode = [];\r\n ++nodeHeight;\r\n }\r\n each(nodes, function (node) {\r\n if (!isNodeDepth(node)) {\r\n node.setLayout({ depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight) }, true);\r\n }\r\n });\r\n }\r\n else if (nodeAlign === 'justify') {\r\n moveSinksRight(nodes, maxDepth);\r\n }\r\n }\r\n function moveSinksRight(nodes, maxDepth) {\r\n each(nodes, function (node) {\r\n if (!isNodeDepth(node) && !node.outEdges.length) {\r\n node.setLayout({ depth: maxDepth }, true);\r\n }\r\n });\r\n }\r\n function scaleNodeBreadths(nodes, kx, orient) {\r\n each(nodes, function (node) {\r\n var nodeDepth = node.getLayout().depth * kx;\r\n orient === 'vertical'\r\n ? node.setLayout({ y: nodeDepth }, true)\r\n : node.setLayout({ x: nodeDepth }, true);\r\n });\r\n }\r\n function computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\r\n var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\r\n initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n for (var alpha = 1; iterations > 0; iterations--) {\r\n alpha *= 0.99;\r\n relaxRightToLeft(nodesByBreadth, alpha, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n relaxLeftToRight(nodesByBreadth, alpha, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n }\r\n }\r\n function prepareNodesByBreadth(nodes, orient) {\r\n var nodesByBreadth = [];\r\n var keyAttr = orient === 'vertical' ? 'y' : 'x';\r\n var groupResult = groupData(nodes, function (node) {\r\n return node.getLayout()[keyAttr];\r\n });\r\n groupResult.keys.sort(function (a, b) {\r\n return a - b;\r\n });\r\n each(groupResult.keys, function (key) {\r\n nodesByBreadth.push(groupResult.buckets.get(key));\r\n });\r\n return nodesByBreadth;\r\n }\r\n function initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\r\n var minKy = Infinity;\r\n each(nodesByBreadth, function (nodes) {\r\n var n = nodes.length;\r\n var sum = 0;\r\n each(nodes, function (node) {\r\n sum += node.getLayout().value;\r\n });\r\n var ky = orient === 'vertical'\r\n ? (width - (n - 1) * nodeGap) / sum\r\n : (height - (n - 1) * nodeGap) / sum;\r\n if (ky < minKy) {\r\n minKy = ky;\r\n }\r\n });\r\n each(nodesByBreadth, function (nodes) {\r\n each(nodes, function (node, i) {\r\n var nodeDy = node.getLayout().value * minKy;\r\n if (orient === 'vertical') {\r\n node.setLayout({ x: i }, true);\r\n node.setLayout({ dx: nodeDy }, true);\r\n }\r\n else {\r\n node.setLayout({ y: i }, true);\r\n node.setLayout({ dy: nodeDy }, true);\r\n }\r\n });\r\n });\r\n each(edges, function (edge) {\r\n var edgeDy = +edge.getValue() * minKy;\r\n edge.setLayout({ dy: edgeDy }, true);\r\n });\r\n }\r\n function resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\r\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\r\n each(nodesByBreadth, function (nodes) {\r\n nodes.sort(function (a, b) {\r\n return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\r\n });\r\n var nodeX;\r\n var node;\r\n var dy;\r\n var y0 = 0;\r\n var n = nodes.length;\r\n var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\r\n for (var i = 0; i < n; i++) {\r\n node = nodes[i];\r\n dy = y0 - node.getLayout()[keyAttr];\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] + dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n }\r\n y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\r\n }\r\n var viewWidth = orient === 'vertical' ? width : height;\r\n dy = y0 - nodeGap - viewWidth;\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] - dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n y0 = nodeX;\r\n for (var i = n - 2; i >= 0; --i) {\r\n node = nodes[i];\r\n dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] - dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n }\r\n y0 = node.getLayout()[keyAttr];\r\n }\r\n }\r\n });\r\n }\r\n function relaxRightToLeft(nodesByBreadth, alpha, orient) {\r\n each(nodesByBreadth.slice().reverse(), function (nodes) {\r\n each(nodes, function (node) {\r\n if (node.outEdges.length) {\r\n var y = sum(node.outEdges, weightedTarget, orient)\r\n / sum(node.outEdges, getEdgeValue);\r\n if (isNaN(y)) {\r\n var len = node.outEdges.length;\r\n y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\r\n }\r\n if (orient === 'vertical') {\r\n var nodeX = node.getLayout().x + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ x: nodeX }, true);\r\n }\r\n else {\r\n var nodeY = node.getLayout().y + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ y: nodeY }, true);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n function weightedTarget(edge, orient) {\r\n return center$1(edge.node2, orient) * edge.getValue();\r\n }\r\n function centerTarget(edge, orient) {\r\n return center$1(edge.node2, orient);\r\n }\r\n function weightedSource(edge, orient) {\r\n return center$1(edge.node1, orient) * edge.getValue();\r\n }\r\n function centerSource(edge, orient) {\r\n return center$1(edge.node1, orient);\r\n }\r\n function center$1(node, orient) {\r\n return orient === 'vertical'\r\n ? node.getLayout().x + node.getLayout().dx / 2\r\n : node.getLayout().y + node.getLayout().dy / 2;\r\n }\r\n function getEdgeValue(edge) {\r\n return edge.getValue();\r\n }\r\n function sum(array, cb, orient) {\r\n var sum = 0;\r\n var len = array.length;\r\n var i = -1;\r\n while (++i < len) {\r\n var value = +cb(array[i], orient);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n return sum;\r\n }\r\n function relaxLeftToRight(nodesByBreadth, alpha, orient) {\r\n each(nodesByBreadth, function (nodes) {\r\n each(nodes, function (node) {\r\n if (node.inEdges.length) {\r\n var y = sum(node.inEdges, weightedSource, orient)\r\n / sum(node.inEdges, getEdgeValue);\r\n if (isNaN(y)) {\r\n var len = node.inEdges.length;\r\n y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\r\n }\r\n if (orient === 'vertical') {\r\n var nodeX = node.getLayout().x + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ x: nodeX }, true);\r\n }\r\n else {\r\n var nodeY = node.getLayout().y + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ y: nodeY }, true);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n function computeEdgeDepths(nodes, orient) {\r\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\r\n each(nodes, function (node) {\r\n node.outEdges.sort(function (a, b) {\r\n return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\r\n });\r\n node.inEdges.sort(function (a, b) {\r\n return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\r\n });\r\n });\r\n each(nodes, function (node) {\r\n var sy = 0;\r\n var ty = 0;\r\n each(node.outEdges, function (edge) {\r\n edge.setLayout({ sy: sy }, true);\r\n sy += edge.getLayout().dy;\r\n });\r\n each(node.inEdges, function (edge) {\r\n edge.setLayout({ ty: ty }, true);\r\n ty += edge.getLayout().dy;\r\n });\r\n });\r\n }\n\n function sankeyVisual (ecModel) {\r\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\r\n var graph = seriesModel.getGraph();\r\n var nodes = graph.nodes;\r\n if (nodes.length) {\r\n var minValue_1 = Infinity;\r\n var maxValue_1 = -Infinity;\r\n each(nodes, function (node) {\r\n var nodeValue = node.getLayout().value;\r\n if (nodeValue < minValue_1) {\r\n minValue_1 = nodeValue;\r\n }\r\n if (nodeValue > maxValue_1) {\r\n maxValue_1 = nodeValue;\r\n }\r\n });\r\n each(nodes, function (node) {\r\n var mapping = new VisualMapping({\r\n type: 'color',\r\n mappingMethod: 'linear',\r\n dataExtent: [minValue_1, maxValue_1],\r\n visual: seriesModel.get('color')\r\n });\r\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\r\n var customColor = node.getModel().get(['itemStyle', 'color']);\r\n if (customColor != null) {\r\n node.setVisual('color', customColor);\r\n node.setVisual('style', { fill: customColor });\r\n }\r\n else {\r\n node.setVisual('color', mapValueToColor);\r\n node.setVisual('style', { fill: mapValueToColor });\r\n }\r\n });\r\n }\r\n });\r\n }\n\n registerLayout(sankeyLayout);\r\n registerVisual(sankeyVisual);\n\n var WhiskerBoxCommonMixin = (function () {\r\n function WhiskerBoxCommonMixin() {\r\n }\r\n WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\r\n var ordinalMeta;\r\n var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\r\n var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\r\n var xAxisType = xAxisModel.get('type');\r\n var yAxisType = yAxisModel.get('type');\r\n var addOrdinal;\r\n if (xAxisType === 'category') {\r\n option.layout = 'horizontal';\r\n ordinalMeta = xAxisModel.getOrdinalMeta();\r\n addOrdinal = true;\r\n }\r\n else if (yAxisType === 'category') {\r\n option.layout = 'vertical';\r\n ordinalMeta = yAxisModel.getOrdinalMeta();\r\n addOrdinal = true;\r\n }\r\n else {\r\n option.layout = option.layout || 'horizontal';\r\n }\r\n var coordDims = ['x', 'y'];\r\n var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\r\n var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\r\n var otherAxisDim = coordDims[1 - baseAxisDimIndex];\r\n var axisModels = [xAxisModel, yAxisModel];\r\n var baseAxisType = axisModels[baseAxisDimIndex].get('type');\r\n var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\r\n var data = option.data;\r\n if (data && addOrdinal) {\r\n var newOptionData_1 = [];\r\n each(data, function (item, index) {\r\n var newItem;\r\n if (isArray(item)) {\r\n newItem = item.slice();\r\n item.unshift(index);\r\n }\r\n else if (isArray(item.value)) {\r\n newItem = item.value.slice();\r\n item.value.unshift(index);\r\n }\r\n else {\r\n newItem = item;\r\n }\r\n newOptionData_1.push(newItem);\r\n });\r\n option.data = newOptionData_1;\r\n }\r\n var defaultValueDimensions = this.defaultValueDimensions;\r\n var coordDimensions = [{\r\n name: baseAxisDim,\r\n type: getDimensionTypeByAxis(baseAxisType),\r\n ordinalMeta: ordinalMeta,\r\n otherDims: {\r\n tooltip: false,\r\n itemName: 0\r\n },\r\n dimsDef: ['base']\r\n }, {\r\n name: otherAxisDim,\r\n type: getDimensionTypeByAxis(otherAxisType),\r\n dimsDef: defaultValueDimensions.slice()\r\n }];\r\n return createListSimply(this, {\r\n coordDimensions: coordDimensions,\r\n dimensionsCount: defaultValueDimensions.length + 1,\r\n encodeDefaulter: curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\r\n });\r\n };\r\n WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\r\n var dim = this._baseAxisDim;\r\n return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\r\n };\r\n return WhiskerBoxCommonMixin;\r\n }());\n\n var BoxplotSeriesModel = (function (_super) {\r\n __extends(BoxplotSeriesModel, _super);\r\n function BoxplotSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BoxplotSeriesModel.type;\r\n _this.defaultValueDimensions = [\r\n { name: 'min', defaultTooltip: true },\r\n { name: 'Q1', defaultTooltip: true },\r\n { name: 'median', defaultTooltip: true },\r\n { name: 'Q3', defaultTooltip: true },\r\n { name: 'max', defaultTooltip: true }\r\n ];\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n BoxplotSeriesModel.type = 'series.boxplot';\r\n BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\r\n BoxplotSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n layout: null,\r\n boxWidth: [7, 50],\r\n itemStyle: {\r\n color: '#fff',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n scale: true,\r\n itemStyle: {\r\n borderWidth: 2,\r\n shadowBlur: 5,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0,0,0,0.2)'\r\n }\r\n },\r\n animationDuration: 800\r\n };\r\n return BoxplotSeriesModel;\r\n }(SeriesModel));\r\n mixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\r\n SeriesModel.registerClass(BoxplotSeriesModel);\n\n var BoxplotView = (function (_super) {\r\n __extends(BoxplotView, _super);\r\n function BoxplotView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BoxplotView.type;\r\n return _this;\r\n }\r\n BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var group = this.group;\r\n var oldData = this._data;\r\n if (!this._data) {\r\n group.removeAll();\r\n }\r\n var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (data.hasValue(newIdx)) {\r\n var itemLayout = data.getItemLayout(newIdx);\r\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (!data.hasValue(newIdx)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (!symbolEl) {\r\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\r\n }\r\n else {\r\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && group.remove(el);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n BoxplotView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var data = this._data;\r\n this._data = null;\r\n data && data.eachItemGraphicEl(function (el) {\r\n el && group.remove(el);\r\n });\r\n };\r\n BoxplotView.type = 'boxplot';\r\n return BoxplotView;\r\n }(ChartView));\r\n var BoxPathShape = (function () {\r\n function BoxPathShape() {\r\n }\r\n return BoxPathShape;\r\n }());\r\n var BoxPath = (function (_super) {\r\n __extends(BoxPath, _super);\r\n function BoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'boxplotBoxPath';\r\n return _this;\r\n }\r\n BoxPath.prototype.getDefaultShape = function () {\r\n return new BoxPathShape();\r\n };\r\n BoxPath.prototype.buildPath = function (ctx, shape) {\r\n var ends = shape.points;\r\n var i = 0;\r\n ctx.moveTo(ends[i][0], ends[i][1]);\r\n i++;\r\n for (; i < 4; i++) {\r\n ctx.lineTo(ends[i][0], ends[i][1]);\r\n }\r\n ctx.closePath();\r\n for (; i < ends.length; i++) {\r\n ctx.moveTo(ends[i][0], ends[i][1]);\r\n i++;\r\n ctx.lineTo(ends[i][0], ends[i][1]);\r\n }\r\n };\r\n return BoxPath;\r\n }(Path));\r\n function createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\r\n var ends = itemLayout.ends;\r\n var el = new BoxPath({\r\n shape: {\r\n points: isInit\r\n ? transInit(ends, constDim, itemLayout)\r\n : ends\r\n }\r\n });\r\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\r\n return el;\r\n }\r\n function updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\r\n var seriesModel = data.hostModel;\r\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\r\n updateMethod(el, { shape: { points: itemLayout.ends } }, seriesModel, dataIndex);\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.strokeNoScale = true;\r\n el.z2 = 100;\r\n var itemModel = data.getItemModel(dataIndex);\r\n setStatesStylesFromModel(el, itemModel);\r\n enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\r\n }\r\n function transInit(points, dim, itemLayout) {\r\n return map(points, function (point) {\r\n point = point.slice();\r\n point[dim] = itemLayout.initBaseline;\r\n return point;\r\n });\r\n }\r\n ChartView.registerClass(BoxplotView);\n\n function boxplotVisual (ecModel, api) {\r\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n });\r\n }\n\n var each$7 = each;\r\n function boxplotLayout (ecModel) {\r\n var groupResult = groupSeriesByAxis(ecModel);\r\n each$7(groupResult, function (groupItem) {\r\n var seriesModels = groupItem.seriesModels;\r\n if (!seriesModels.length) {\r\n return;\r\n }\r\n calculateBase(groupItem);\r\n each$7(seriesModels, function (seriesModel, idx) {\r\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\r\n });\r\n });\r\n }\r\n function groupSeriesByAxis(ecModel) {\r\n var result = [];\r\n var axisList = [];\r\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\r\n var baseAxis = seriesModel.getBaseAxis();\r\n var idx = indexOf(axisList, baseAxis);\r\n if (idx < 0) {\r\n idx = axisList.length;\r\n axisList[idx] = baseAxis;\r\n result[idx] = {\r\n axis: baseAxis,\r\n seriesModels: []\r\n };\r\n }\r\n result[idx].seriesModels.push(seriesModel);\r\n });\r\n return result;\r\n }\r\n function calculateBase(groupItem) {\r\n var extent;\r\n var baseAxis = groupItem.axis;\r\n var seriesModels = groupItem.seriesModels;\r\n var seriesCount = seriesModels.length;\r\n var boxWidthList = groupItem.boxWidthList = [];\r\n var boxOffsetList = groupItem.boxOffsetList = [];\r\n var boundList = [];\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else {\r\n var maxDataCount_1 = 0;\r\n each$7(seriesModels, function (seriesModel) {\r\n maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\r\n });\r\n extent = baseAxis.getExtent(),\r\n Math.abs(extent[1] - extent[0]) / maxDataCount_1;\r\n }\r\n each$7(seriesModels, function (seriesModel) {\r\n var boxWidthBound = seriesModel.get('boxWidth');\r\n if (!isArray(boxWidthBound)) {\r\n boxWidthBound = [boxWidthBound, boxWidthBound];\r\n }\r\n boundList.push([\r\n parsePercent$2(boxWidthBound[0], bandWidth) || 0,\r\n parsePercent$2(boxWidthBound[1], bandWidth) || 0\r\n ]);\r\n });\r\n var availableWidth = bandWidth * 0.8 - 2;\r\n var boxGap = availableWidth / seriesCount * 0.3;\r\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\r\n var base = boxWidth / 2 - availableWidth / 2;\r\n each$7(seriesModels, function (seriesModel, idx) {\r\n boxOffsetList.push(base);\r\n base += boxGap + boxWidth;\r\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\r\n });\r\n }\r\n function layoutSingleSeries(seriesModel, offset, boxWidth) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var data = seriesModel.getData();\r\n var halfWidth = boxWidth / 2;\r\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\r\n var vDimIdx = 1 - cDimIdx;\r\n var coordDims = ['x', 'y'];\r\n var cDim = data.mapDimension(coordDims[cDimIdx]);\r\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\r\n if (cDim == null || vDims.length < 5) {\r\n return;\r\n }\r\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\r\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\r\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\r\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\r\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\r\n var ends = [];\r\n addBodyEnd(ends, end2, false);\r\n addBodyEnd(ends, end4, true);\r\n ends.push(end1, end2, end5, end4);\r\n layEndLine(ends, end1);\r\n layEndLine(ends, end5);\r\n layEndLine(ends, median);\r\n data.setItemLayout(dataIndex, {\r\n initBaseline: median[vDimIdx],\r\n ends: ends\r\n });\r\n }\r\n function getPoint(axisDimVal, dim, dataIndex) {\r\n var val = data.get(dim, dataIndex);\r\n var p = [];\r\n p[cDimIdx] = axisDimVal;\r\n p[vDimIdx] = val;\r\n var point;\r\n if (isNaN(axisDimVal) || isNaN(val)) {\r\n point = [NaN, NaN];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(p);\r\n point[cDimIdx] += offset;\r\n }\r\n return point;\r\n }\r\n function addBodyEnd(ends, point, start) {\r\n var point1 = point.slice();\r\n var point2 = point.slice();\r\n point1[cDimIdx] += halfWidth;\r\n point2[cDimIdx] -= halfWidth;\r\n start\r\n ? ends.push(point1, point2)\r\n : ends.push(point2, point1);\r\n }\r\n function layEndLine(ends, endCenter) {\r\n var from = endCenter.slice();\r\n var to = endCenter.slice();\r\n from[cDimIdx] -= halfWidth;\r\n to[cDimIdx] += halfWidth;\r\n ends.push(from, to);\r\n }\r\n }\n\n function prepareBoxplotData (rawData, opt) {\r\n opt = opt || {};\r\n var boxData = [];\r\n var outliers = [];\r\n var boundIQR = opt.boundIQR;\r\n var useExtreme = boundIQR === 'none' || boundIQR === 0;\r\n for (var i = 0; i < rawData.length; i++) {\r\n var ascList = asc(rawData[i].slice());\r\n var Q1 = quantile(ascList, 0.25);\r\n var Q2 = quantile(ascList, 0.5);\r\n var Q3 = quantile(ascList, 0.75);\r\n var min = ascList[0];\r\n var max = ascList[ascList.length - 1];\r\n var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\r\n var low = useExtreme\r\n ? min\r\n : Math.max(min, Q1 - bound);\r\n var high = useExtreme\r\n ? max\r\n : Math.min(max, Q3 + bound);\r\n boxData.push([i, low, Q1, Q2, Q3, high]);\r\n for (var j = 0; j < ascList.length; j++) {\r\n var dataItem = ascList[j];\r\n if (dataItem < low || dataItem > high) {\r\n var outlier = [i, dataItem];\r\n opt.layout === 'vertical' && outlier.reverse();\r\n outliers.push(outlier);\r\n }\r\n }\r\n }\r\n return {\r\n boxData: boxData,\r\n outliers: outliers\r\n };\r\n }\n\n var boxplotTransform = {\r\n type: 'echarts:boxplot',\r\n transform: function transform(params) {\r\n var source = params.source;\r\n var config = params.config || {};\r\n var sourceData = source.data;\r\n if (!isArray(sourceData)\r\n || (sourceData[0] && !isArray(sourceData[0]))) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].', 'But actually', sourceData);\r\n }\r\n throwError(errMsg);\r\n }\r\n var result = prepareBoxplotData(source.data, config);\r\n return [{\r\n data: result.boxData\r\n }, {\r\n data: result.outliers\r\n }];\r\n }\r\n };\n\n registerVisual(boxplotVisual);\r\n registerLayout(boxplotLayout);\r\n registerTransform(boxplotTransform);\n\n var CandlestickSeriesModel = (function (_super) {\r\n __extends(CandlestickSeriesModel, _super);\r\n function CandlestickSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CandlestickSeriesModel.type;\r\n _this.defaultValueDimensions = [\r\n { name: 'open', defaultTooltip: true },\r\n { name: 'close', defaultTooltip: true },\r\n { name: 'lowest', defaultTooltip: true },\r\n { name: 'highest', defaultTooltip: true }\r\n ];\r\n return _this;\r\n }\r\n CandlestickSeriesModel.prototype.getShadowDim = function () {\r\n return 'open';\r\n };\r\n CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n var itemLayout = data.getItemLayout(dataIndex);\r\n return itemLayout && selectors.rect(itemLayout.brushRect);\r\n };\r\n CandlestickSeriesModel.type = 'series.candlestick';\r\n CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\r\n CandlestickSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n layout: null,\r\n clip: true,\r\n itemStyle: {\r\n color: '#c23531',\r\n color0: '#314656',\r\n borderWidth: 1,\r\n borderColor: '#c23531',\r\n borderColor0: '#314656'\r\n },\r\n emphasis: {\r\n scale: true,\r\n itemStyle: {\r\n borderWidth: 2\r\n }\r\n },\r\n barMaxWidth: null,\r\n barMinWidth: null,\r\n barWidth: null,\r\n large: true,\r\n largeThreshold: 600,\r\n progressive: 3e3,\r\n progressiveThreshold: 1e4,\r\n progressiveChunkMode: 'mod',\r\n animationEasing: 'linear',\r\n animationDuration: 300\r\n };\r\n return CandlestickSeriesModel;\r\n }(SeriesModel));\r\n mixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\r\n SeriesModel.registerClass(CandlestickSeriesModel);\n\n var SKIP_PROPS = ['color', 'borderColor'];\r\n var CandlestickView = (function (_super) {\r\n __extends(CandlestickView, _super);\r\n function CandlestickView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CandlestickView.type;\r\n return _this;\r\n }\r\n CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\r\n this.group.removeClipPath();\r\n this._updateDrawMode(seriesModel);\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel)\r\n : this._renderNormal(seriesModel);\r\n };\r\n CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n };\r\n CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\r\n this._isLargeDraw\r\n ? this._incrementalRenderLarge(params, seriesModel)\r\n : this._incrementalRenderNormal(params, seriesModel);\r\n };\r\n CandlestickView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n CandlestickView.prototype._renderNormal = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var isSimpleBox = data.getLayout('isSimpleBox');\r\n var needsClip = seriesModel.get('clip', true);\r\n var coord = seriesModel.coordinateSystem;\r\n var clipArea = coord.getArea && coord.getArea();\r\n if (!this._data) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (data.hasValue(newIdx)) {\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\r\n return;\r\n }\r\n var el = createNormalBox$1(itemLayout, newIdx, true);\r\n initProps(el, { shape: { points: itemLayout.ends } }, seriesModel, newIdx);\r\n setBoxCommon(el, data, newIdx, isSimpleBox);\r\n group.add(el);\r\n data.setItemGraphicEl(newIdx, el);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n if (!data.hasValue(newIdx)) {\r\n group.remove(el);\r\n return;\r\n }\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\r\n group.remove(el);\r\n return;\r\n }\r\n if (!el) {\r\n el = createNormalBox$1(itemLayout);\r\n }\r\n else {\r\n updateProps(el, {\r\n shape: {\r\n points: itemLayout.ends\r\n }\r\n }, seriesModel, newIdx);\r\n }\r\n setBoxCommon(el, data, newIdx, isSimpleBox);\r\n group.add(el);\r\n data.setItemGraphicEl(newIdx, el);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && group.remove(el);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n CandlestickView.prototype._renderLarge = function (seriesModel) {\r\n this._clear();\r\n createLarge$1(seriesModel, this.group);\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\r\n var data = seriesModel.getData();\r\n var isSimpleBox = data.getLayout('isSimpleBox');\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var itemLayout = data.getItemLayout(dataIndex);\r\n var el = createNormalBox$1(itemLayout);\r\n setBoxCommon(el, data, dataIndex, isSimpleBox);\r\n el.incremental = true;\r\n this.group.add(el);\r\n }\r\n };\r\n CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n createLarge$1(seriesModel, this.group, true);\r\n };\r\n CandlestickView.prototype.remove = function (ecModel) {\r\n this._clear();\r\n };\r\n CandlestickView.prototype._clear = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n CandlestickView.type = 'candlestick';\r\n return CandlestickView;\r\n }(ChartView));\r\n ChartView.registerClass(CandlestickView);\r\n var NormalBoxPathShape = (function () {\r\n function NormalBoxPathShape() {\r\n }\r\n return NormalBoxPathShape;\r\n }());\r\n var NormalBoxPath = (function (_super) {\r\n __extends(NormalBoxPath, _super);\r\n function NormalBoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'normalCandlestickBox';\r\n return _this;\r\n }\r\n NormalBoxPath.prototype.getDefaultShape = function () {\r\n return new NormalBoxPathShape();\r\n };\r\n NormalBoxPath.prototype.buildPath = function (ctx, shape) {\r\n var ends = shape.points;\r\n if (this.__simpleBox) {\r\n ctx.moveTo(ends[4][0], ends[4][1]);\r\n ctx.lineTo(ends[6][0], ends[6][1]);\r\n }\r\n else {\r\n ctx.moveTo(ends[0][0], ends[0][1]);\r\n ctx.lineTo(ends[1][0], ends[1][1]);\r\n ctx.lineTo(ends[2][0], ends[2][1]);\r\n ctx.lineTo(ends[3][0], ends[3][1]);\r\n ctx.closePath();\r\n ctx.moveTo(ends[4][0], ends[4][1]);\r\n ctx.lineTo(ends[5][0], ends[5][1]);\r\n ctx.moveTo(ends[6][0], ends[6][1]);\r\n ctx.lineTo(ends[7][0], ends[7][1]);\r\n }\r\n };\r\n return NormalBoxPath;\r\n }(Path));\r\n function createNormalBox$1(itemLayout, dataIndex, isInit) {\r\n var ends = itemLayout.ends;\r\n return new NormalBoxPath({\r\n shape: {\r\n points: isInit\r\n ? transInit$1(ends, itemLayout)\r\n : ends\r\n },\r\n z2: 100\r\n });\r\n }\r\n function isNormalBoxClipped(clipArea, itemLayout) {\r\n var clipped = true;\r\n for (var i = 0; i < itemLayout.ends.length; i++) {\r\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\r\n clipped = false;\r\n break;\r\n }\r\n }\r\n return clipped;\r\n }\r\n function setBoxCommon(el, data, dataIndex, isSimpleBox) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.strokeNoScale = true;\r\n el.__simpleBox = isSimpleBox;\r\n setStatesStylesFromModel(el, itemModel);\r\n }\r\n function transInit$1(points, itemLayout) {\r\n return map(points, function (point) {\r\n point = point.slice();\r\n point[1] = itemLayout.initBaseline;\r\n return point;\r\n });\r\n }\r\n var LargeBoxPathShape = (function () {\r\n function LargeBoxPathShape() {\r\n }\r\n return LargeBoxPathShape;\r\n }());\r\n var LargeBoxPath = (function (_super) {\r\n __extends(LargeBoxPath, _super);\r\n function LargeBoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeCandlestickBox';\r\n return _this;\r\n }\r\n LargeBoxPath.prototype.getDefaultShape = function () {\r\n return new LargeBoxPathShape();\r\n };\r\n LargeBoxPath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n for (var i = 0; i < points.length;) {\r\n if (this.__sign === points[i++]) {\r\n var x = points[i++];\r\n ctx.moveTo(x, points[i++]);\r\n ctx.lineTo(x, points[i++]);\r\n }\r\n else {\r\n i += 3;\r\n }\r\n }\r\n };\r\n return LargeBoxPath;\r\n }(Path));\r\n function createLarge$1(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var largePoints = data.getLayout('largePoints');\r\n var elP = new LargeBoxPath({\r\n shape: { points: largePoints },\r\n __sign: 1\r\n });\r\n group.add(elP);\r\n var elN = new LargeBoxPath({\r\n shape: { points: largePoints },\r\n __sign: -1\r\n });\r\n group.add(elN);\r\n setLargeStyle$1(1, elP, seriesModel);\r\n setLargeStyle$1(-1, elN, seriesModel);\r\n if (incremental) {\r\n elP.incremental = true;\r\n elN.incremental = true;\r\n }\r\n }\r\n function setLargeStyle$1(sign, el, seriesModel, data) {\r\n var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0'])\r\n || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\r\n var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n }\n\n function preprocessor (option) {\r\n if (!option || !isArray(option.series)) {\r\n return;\r\n }\r\n each(option.series, function (seriesItem) {\r\n if (isObject(seriesItem) && seriesItem.type === 'k') {\r\n seriesItem.type = 'candlestick';\r\n }\r\n });\r\n }\n\n var positiveBorderColorQuery = ['itemStyle', 'borderColor'];\r\n var negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\r\n var positiveColorQuery = ['itemStyle', 'color'];\r\n var negativeColorQuery = ['itemStyle', 'color0'];\r\n var candlestickVisual = {\r\n seriesType: 'candlestick',\r\n plan: createRenderPlanner(),\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n function getColor(sign, model) {\r\n return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\r\n }\r\n function getBorderColor(sign, model) {\r\n return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\r\n }\r\n var data = seriesModel.getData();\r\n data.setVisual('legendSymbol', 'roundRect');\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var isLargeRender = seriesModel.pipelineContext.large;\r\n return !isLargeRender && {\r\n progress: function (params, data) {\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var sign = data.getItemLayout(dataIndex).sign;\r\n var style = itemModel.getItemStyle();\r\n style.fill = getColor(sign, itemModel);\r\n style.stroke = getBorderColor(sign, itemModel) || style.fill;\r\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n extend(existsStyle, style);\r\n }\r\n }\r\n };\r\n }\r\n };\n\n var LargeArr$1 = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n var candlestickLayout = {\r\n seriesType: 'candlestick',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var data = seriesModel.getData();\r\n var candleWidth = calculateCandleWidth(seriesModel, data);\r\n var cDimIdx = 0;\r\n var vDimIdx = 1;\r\n var coordDims = ['x', 'y'];\r\n var cDim = data.mapDimension(coordDims[cDimIdx]);\r\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\r\n var openDim = vDims[0];\r\n var closeDim = vDims[1];\r\n var lowestDim = vDims[2];\r\n var highestDim = vDims[3];\r\n data.setLayout({\r\n candleWidth: candleWidth,\r\n isSimpleBox: candleWidth <= 1.3\r\n });\r\n if (cDim == null || vDims.length < 4) {\r\n return;\r\n }\r\n return {\r\n progress: seriesModel.pipelineContext.large\r\n ? largeProgress : normalProgress\r\n };\r\n function normalProgress(params, data) {\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var openVal = data.get(openDim, dataIndex);\r\n var closeVal = data.get(closeDim, dataIndex);\r\n var lowestVal = data.get(lowestDim, dataIndex);\r\n var highestVal = data.get(highestDim, dataIndex);\r\n var ocLow = Math.min(openVal, closeVal);\r\n var ocHigh = Math.max(openVal, closeVal);\r\n var ocLowPoint = getPoint(ocLow, axisDimVal);\r\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\r\n var lowestPoint = getPoint(lowestVal, axisDimVal);\r\n var highestPoint = getPoint(highestVal, axisDimVal);\r\n var ends = [];\r\n addBodyEnd(ends, ocHighPoint, 0);\r\n addBodyEnd(ends, ocLowPoint, 1);\r\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\r\n data.setItemLayout(dataIndex, {\r\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\r\n initBaseline: openVal > closeVal\r\n ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\r\n ends: ends,\r\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\r\n });\r\n }\r\n function getPoint(val, axisDimVal) {\r\n var p = [];\r\n p[cDimIdx] = axisDimVal;\r\n p[vDimIdx] = val;\r\n return (isNaN(axisDimVal) || isNaN(val))\r\n ? [NaN, NaN]\r\n : coordSys.dataToPoint(p);\r\n }\r\n function addBodyEnd(ends, point, start) {\r\n var point1 = point.slice();\r\n var point2 = point.slice();\r\n point1[cDimIdx] = subPixelOptimize$1(point1[cDimIdx] + candleWidth / 2, 1, false);\r\n point2[cDimIdx] = subPixelOptimize$1(point2[cDimIdx] - candleWidth / 2, 1, true);\r\n start\r\n ? ends.push(point1, point2)\r\n : ends.push(point2, point1);\r\n }\r\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\r\n var pmin = getPoint(lowestVal, axisDimVal);\r\n var pmax = getPoint(highestVal, axisDimVal);\r\n pmin[cDimIdx] -= candleWidth / 2;\r\n pmax[cDimIdx] -= candleWidth / 2;\r\n return {\r\n x: pmin[0],\r\n y: pmin[1],\r\n width: candleWidth ,\r\n height: pmax[1] - pmin[1] \r\n };\r\n }\r\n function subPixelOptimizePoint(point) {\r\n point[cDimIdx] = subPixelOptimize$1(point[cDimIdx], 1);\r\n return point;\r\n }\r\n }\r\n function largeProgress(params, data) {\r\n var points = new LargeArr$1(params.count * 4);\r\n var offset = 0;\r\n var point;\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var openVal = data.get(openDim, dataIndex);\r\n var closeVal = data.get(closeDim, dataIndex);\r\n var lowestVal = data.get(lowestDim, dataIndex);\r\n var highestVal = data.get(highestDim, dataIndex);\r\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\r\n points[offset++] = NaN;\r\n offset += 3;\r\n continue;\r\n }\r\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\r\n tmpIn[cDimIdx] = axisDimVal;\r\n tmpIn[vDimIdx] = lowestVal;\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n tmpIn[vDimIdx] = highestVal;\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n data.setLayout('largePoints', points);\r\n }\r\n }\r\n };\r\n function getSign(data, dataIndex, openVal, closeVal, closeDim) {\r\n var sign;\r\n if (openVal > closeVal) {\r\n sign = -1;\r\n }\r\n else if (openVal < closeVal) {\r\n sign = 1;\r\n }\r\n else {\r\n sign = dataIndex > 0\r\n ? (data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1)\r\n : 1;\r\n }\r\n return sign;\r\n }\r\n function calculateCandleWidth(seriesModel, data) {\r\n var baseAxis = seriesModel.getBaseAxis();\r\n var extent;\r\n var bandWidth = baseAxis.type === 'category'\r\n ? baseAxis.getBandWidth()\r\n : (extent = baseAxis.getExtent(),\r\n Math.abs(extent[1] - extent[0]) / data.count());\r\n var barMaxWidth = parsePercent$2(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\r\n var barMinWidth = parsePercent$2(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\r\n var barWidth = seriesModel.get('barWidth');\r\n return barWidth != null\r\n ? parsePercent$2(barWidth, bandWidth)\r\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\r\n }\n\n registerPreprocessor(preprocessor);\r\n registerVisual(candlestickVisual);\r\n registerLayout(candlestickLayout);\n\n var EffectScatterSeriesModel = (function (_super) {\r\n __extends(EffectScatterSeriesModel, _super);\r\n function EffectScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = EffectScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n EffectScatterSeriesModel.type = 'series.effectScatter';\r\n EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\r\n EffectScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n effectType: 'ripple',\r\n progressive: 0,\r\n showEffectOn: 'render',\r\n rippleEffect: {\r\n period: 4,\r\n scale: 2.5,\r\n brushType: 'fill'\r\n },\r\n symbolSize: 10\r\n };\r\n return EffectScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(EffectScatterSeriesModel);\n\n var EFFECT_RIPPLE_NUMBER = 3;\r\n function normalizeSymbolSize$1(symbolSize) {\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [+symbolSize, +symbolSize];\r\n }\r\n return symbolSize;\r\n }\r\n function updateRipplePath(rippleGroup, effectCfg) {\r\n var color = effectCfg.rippleEffectColor || effectCfg.color;\r\n rippleGroup.eachChild(function (ripplePath) {\r\n ripplePath.attr({\r\n z: effectCfg.z,\r\n zlevel: effectCfg.zlevel,\r\n style: {\r\n stroke: effectCfg.brushType === 'stroke' ? color : null,\r\n fill: effectCfg.brushType === 'fill' ? color : null\r\n }\r\n });\r\n });\r\n }\r\n var EffectSymbol = (function (_super) {\r\n __extends(EffectSymbol, _super);\r\n function EffectSymbol(data, idx) {\r\n var _this = _super.call(this) || this;\r\n var symbol = new Symbol(data, idx);\r\n var rippleGroup = new Group();\r\n _this.add(symbol);\r\n _this.add(rippleGroup);\r\n _this.updateData(data, idx);\r\n return _this;\r\n }\r\n EffectSymbol.prototype.stopEffectAnimation = function () {\r\n this.childAt(1).removeAll();\r\n };\r\n EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\r\n var symbolType = effectCfg.symbolType;\r\n var color = effectCfg.color;\r\n var rippleGroup = this.childAt(1);\r\n for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\r\n var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\r\n ripplePath.attr({\r\n style: {\r\n strokeNoScale: true\r\n },\r\n z2: 99,\r\n silent: true,\r\n scaleX: 0.5,\r\n scaleY: 0.5\r\n });\r\n var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\r\n ripplePath.animate('', true)\r\n .when(effectCfg.period, {\r\n scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\r\n })\r\n .delay(delay)\r\n .start();\r\n ripplePath.animateStyle(true)\r\n .when(effectCfg.period, {\r\n opacity: 0\r\n })\r\n .delay(delay)\r\n .start();\r\n rippleGroup.add(ripplePath);\r\n }\r\n updateRipplePath(rippleGroup, effectCfg);\r\n };\r\n EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\r\n var oldEffectCfg = this._effectCfg;\r\n var rippleGroup = this.childAt(1);\r\n var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\r\n for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\r\n var propName = DIFFICULT_PROPS[i];\r\n if (oldEffectCfg[propName] !== effectCfg[propName]) {\r\n this.stopEffectAnimation();\r\n this.startEffectAnimation(effectCfg);\r\n return;\r\n }\r\n }\r\n updateRipplePath(rippleGroup, effectCfg);\r\n };\r\n EffectSymbol.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n EffectSymbol.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n EffectSymbol.prototype.updateData = function (data, idx) {\r\n var _this = this;\r\n var seriesModel = data.hostModel;\r\n this.childAt(0).updateData(data, idx);\r\n var rippleGroup = this.childAt(1);\r\n var itemModel = data.getItemModel(idx);\r\n var symbolType = data.getItemVisual(idx, 'symbol');\r\n var symbolSize = normalizeSymbolSize$1(data.getItemVisual(idx, 'symbolSize'));\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var color = symbolStyle && symbolStyle.fill;\r\n rippleGroup.setScale(symbolSize);\r\n rippleGroup.traverse(function (ripplePath) {\r\n ripplePath.setStyle('fill', color);\r\n });\r\n var symbolOffset = itemModel.getShallow('symbolOffset');\r\n if (symbolOffset) {\r\n rippleGroup.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n rippleGroup.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n var effectCfg = {};\r\n effectCfg.showEffectOn = seriesModel.get('showEffectOn');\r\n effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\r\n effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\r\n effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\r\n effectCfg.effectOffset = idx / data.count();\r\n effectCfg.z = seriesModel.getShallow('z') || 0;\r\n effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\r\n effectCfg.symbolType = symbolType;\r\n effectCfg.color = color;\r\n effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\r\n this.off('mouseover').off('mouseout').off('emphasis').off('normal');\r\n if (effectCfg.showEffectOn === 'render') {\r\n this._effectCfg\r\n ? this.updateEffectAnimation(effectCfg)\r\n : this.startEffectAnimation(effectCfg);\r\n this._effectCfg = effectCfg;\r\n }\r\n else {\r\n this._effectCfg = null;\r\n this.stopEffectAnimation();\r\n this.onHoverStateChange = function (toState) {\r\n if (toState === 'emphasis') {\r\n if (effectCfg.showEffectOn !== 'render') {\r\n _this.startEffectAnimation(effectCfg);\r\n }\r\n }\r\n else if (toState === 'normal') {\r\n if (effectCfg.showEffectOn !== 'render') {\r\n _this.stopEffectAnimation();\r\n }\r\n }\r\n };\r\n }\r\n this._effectCfg = effectCfg;\r\n enableHoverEmphasis(this);\r\n };\r\n EffectSymbol.prototype.fadeOut = function (cb) {\r\n this.off('mouseover').off('mouseout');\r\n cb && cb();\r\n };\r\n return EffectSymbol;\r\n }(Group));\r\n inherits(EffectSymbol, Group);\n\n var EffectScatterView = (function (_super) {\r\n __extends(EffectScatterView, _super);\r\n function EffectScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = EffectScatterView.type;\r\n return _this;\r\n }\r\n EffectScatterView.prototype.init = function () {\r\n this._symbolDraw = new SymbolDraw(EffectSymbol);\r\n };\r\n EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var effectSymbolDraw = this._symbolDraw;\r\n effectSymbolDraw.updateData(data);\r\n this.group.add(effectSymbolDraw.group);\r\n };\r\n EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n var res = layoutPoints().reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({\r\n start: 0,\r\n end: data.count(),\r\n count: data.count()\r\n }, data);\r\n }\r\n this._symbolDraw.updateLayout();\r\n };\r\n EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.getRoamTransform) {\r\n this.group.transform = clone$2(coordSys.getRoamTransform());\r\n this.group.decomposeTransform();\r\n }\r\n };\r\n EffectScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n };\r\n EffectScatterView.type = 'effectScatter';\r\n return EffectScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(EffectScatterView);\n\n registerLayout(layoutPoints('effectScatter'));\n\n var Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\r\n var Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\r\n function compatEc2(seriesOpt) {\r\n var data = seriesOpt.data;\r\n if (data && data[0] && data[0][0] && data[0][0].coord) {\r\n if (__DEV__) {\r\n console.warn('Lines data configuration has been changed to'\r\n + ' { coords:[[1,2],[2,3]] }');\r\n }\r\n seriesOpt.data = map(data, function (itemOpt) {\r\n var coords = [\r\n itemOpt[0].coord, itemOpt[1].coord\r\n ];\r\n var target = {\r\n coords: coords\r\n };\r\n if (itemOpt[0].name) {\r\n target.fromName = itemOpt[0].name;\r\n }\r\n if (itemOpt[1].name) {\r\n target.toName = itemOpt[1].name;\r\n }\r\n return mergeAll([target, itemOpt[0], itemOpt[1]]);\r\n });\r\n }\r\n }\r\n var LinesSeriesModel = (function (_super) {\r\n __extends(LinesSeriesModel, _super);\r\n function LinesSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LinesSeriesModel.type;\r\n _this.visualStyleAccessPath = 'lineStyle';\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n LinesSeriesModel.prototype.init = function (option) {\r\n option.data = option.data || [];\r\n compatEc2(option);\r\n var result = this._processFlatCoordsArray(option.data);\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n if (result.flatCoords) {\r\n option.data = new Float32Array(result.count);\r\n }\r\n _super.prototype.init.apply(this, arguments);\r\n };\r\n LinesSeriesModel.prototype.mergeOption = function (option) {\r\n option.data = option.data || [];\r\n compatEc2(option);\r\n if (option.data) {\r\n var result = this._processFlatCoordsArray(option.data);\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n if (result.flatCoords) {\r\n option.data = new Float32Array(result.count);\r\n }\r\n }\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n LinesSeriesModel.prototype.appendData = function (params) {\r\n var result = this._processFlatCoordsArray(params.data);\r\n if (result.flatCoords) {\r\n if (!this._flatCoords) {\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n }\r\n else {\r\n this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\r\n this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\r\n }\r\n params.data = new Float32Array(result.count);\r\n }\r\n this.getRawData().appendData(params.data);\r\n };\r\n LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\r\n var itemModel = this.getData().getItemModel(idx);\r\n var coords = (itemModel.option instanceof Array)\r\n ? itemModel.option : itemModel.getShallow('coords');\r\n if (__DEV__) {\r\n if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\r\n throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\r\n }\r\n }\r\n return coords;\r\n };\r\n LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\r\n if (this._flatCoordsOffset) {\r\n return this._flatCoordsOffset[idx * 2 + 1];\r\n }\r\n else {\r\n return this._getCoordsFromItemModel(idx).length;\r\n }\r\n };\r\n LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\r\n if (this._flatCoordsOffset) {\r\n var offset = this._flatCoordsOffset[idx * 2];\r\n var len = this._flatCoordsOffset[idx * 2 + 1];\r\n for (var i = 0; i < len; i++) {\r\n out[i] = out[i] || [];\r\n out[i][0] = this._flatCoords[offset + i * 2];\r\n out[i][1] = this._flatCoords[offset + i * 2 + 1];\r\n }\r\n return len;\r\n }\r\n else {\r\n var coords = this._getCoordsFromItemModel(idx);\r\n for (var i = 0; i < coords.length; i++) {\r\n out[i] = out[i] || [];\r\n out[i][0] = coords[i][0];\r\n out[i][1] = coords[i][1];\r\n }\r\n return coords.length;\r\n }\r\n };\r\n LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\r\n var startOffset = 0;\r\n if (this._flatCoords) {\r\n startOffset = this._flatCoords.length;\r\n }\r\n if (typeof data[0] === 'number') {\r\n var len = data.length;\r\n var coordsOffsetAndLenStorage = new Uint32Arr(len);\r\n var coordsStorage = new Float64Arr(len);\r\n var coordsCursor = 0;\r\n var offsetCursor = 0;\r\n var dataCount = 0;\r\n for (var i = 0; i < len;) {\r\n dataCount++;\r\n var count = data[i++];\r\n coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\r\n coordsOffsetAndLenStorage[offsetCursor++] = count;\r\n for (var k = 0; k < count; k++) {\r\n var x = data[i++];\r\n var y = data[i++];\r\n coordsStorage[coordsCursor++] = x;\r\n coordsStorage[coordsCursor++] = y;\r\n if (i > len) {\r\n if (__DEV__) {\r\n throw new Error('Invalid data format.');\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\r\n flatCoords: coordsStorage,\r\n count: dataCount\r\n };\r\n }\r\n return {\r\n flatCoordsOffset: null,\r\n flatCoords: null,\r\n count: data.length\r\n };\r\n };\r\n LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n if (__DEV__) {\r\n var CoordSys = CoordinateSystemManager.get(option.coordinateSystem);\r\n if (!CoordSys) {\r\n throw new Error('Unkown coordinate system ' + option.coordinateSystem);\r\n }\r\n }\r\n var lineData = new List(['value'], this);\r\n lineData.hasItemOption = false;\r\n lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\r\n if (dataItem instanceof Array) {\r\n return NaN;\r\n }\r\n else {\r\n lineData.hasItemOption = true;\r\n var value = dataItem.value;\r\n if (value != null) {\r\n return value instanceof Array ? value[dimIndex] : value;\r\n }\r\n }\r\n });\r\n return lineData;\r\n };\r\n LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var itemModel = data.getItemModel(dataIndex);\r\n var name = itemModel.get('name');\r\n if (name) {\r\n return name;\r\n }\r\n var fromName = itemModel.get('fromName');\r\n var toName = itemModel.get('toName');\r\n var html = [];\r\n fromName != null && html.push(fromName);\r\n toName != null && html.push(toName);\r\n return encodeHTML(html.join(' > '));\r\n };\r\n LinesSeriesModel.prototype.preventIncremental = function () {\r\n return !!this.get(['effect', 'show']);\r\n };\r\n LinesSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 1e4 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n LinesSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 2e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n LinesSeriesModel.type = 'series.lines';\r\n LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\r\n LinesSeriesModel.defaultOption = {\r\n coordinateSystem: 'geo',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n xAxisIndex: 0,\r\n yAxisIndex: 0,\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 10],\r\n geoIndex: 0,\r\n effect: {\r\n show: false,\r\n period: 4,\r\n constantSpeed: 0,\r\n symbol: 'circle',\r\n symbolSize: 3,\r\n loop: true,\r\n trailLength: 0.2\r\n },\r\n large: false,\r\n largeThreshold: 2000,\r\n polyline: false,\r\n clip: true,\r\n label: {\r\n show: false,\r\n position: 'end'\r\n },\r\n lineStyle: {\r\n opacity: 0.5\r\n }\r\n };\r\n return LinesSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LinesSeriesModel);\n\n var EffectLine = (function (_super) {\r\n __extends(EffectLine, _super);\r\n function EffectLine(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this.add(_this.createLine(lineData, idx, seriesScope));\r\n _this._updateEffectSymbol(lineData, idx);\r\n return _this;\r\n }\r\n EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\r\n return new Line$1(lineData, idx, seriesScope);\r\n };\r\n EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\r\n var itemModel = lineData.getItemModel(idx);\r\n var effectModel = itemModel.getModel('effect');\r\n var size = effectModel.get('symbolSize');\r\n var symbolType = effectModel.get('symbol');\r\n if (!isArray(size)) {\r\n size = [size, size];\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var color = effectModel.get('color') || (lineStyle && lineStyle.stroke);\r\n var symbol = this.childAt(1);\r\n if (this._symbolType !== symbolType) {\r\n this.remove(symbol);\r\n symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\r\n symbol.z2 = 100;\r\n symbol.culling = true;\r\n this.add(symbol);\r\n }\r\n if (!symbol) {\r\n return;\r\n }\r\n symbol.setStyle('shadowColor', color);\r\n symbol.setStyle(effectModel.getItemStyle(['color']));\r\n symbol.scaleX = size[0];\r\n symbol.scaleY = size[1];\r\n symbol.setColor(color);\r\n this._symbolType = symbolType;\r\n this._symbolScale = size;\r\n this._updateEffectAnimation(lineData, effectModel, idx);\r\n };\r\n EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\r\n var symbol = this.childAt(1);\r\n if (!symbol) {\r\n return;\r\n }\r\n var self = this;\r\n var points = lineData.getItemLayout(idx);\r\n var period = effectModel.get('period') * 1000;\r\n var loop = effectModel.get('loop');\r\n var constantSpeed = effectModel.get('constantSpeed');\r\n var delayExpr = retrieve(effectModel.get('delay'), function (idx) {\r\n return idx / lineData.count() * period / 3;\r\n });\r\n symbol.ignore = true;\r\n this._updateAnimationPoints(symbol, points);\r\n if (constantSpeed > 0) {\r\n period = this._getLineLength(symbol) / constantSpeed * 1000;\r\n }\r\n if (period !== this._period || loop !== this._loop) {\r\n symbol.stopAnimation();\r\n if (period > 0) {\r\n var delayNum = void 0;\r\n if (typeof delayExpr === 'function') {\r\n delayNum = delayExpr(idx);\r\n }\r\n else {\r\n delayNum = delayExpr;\r\n }\r\n if (symbol.__t > 0) {\r\n delayNum = -period * symbol.__t;\r\n }\r\n symbol.__t = 0;\r\n var animator = symbol.animate('', loop)\r\n .when(period, {\r\n __t: 1\r\n })\r\n .delay(delayNum)\r\n .during(function () {\r\n self._updateSymbolPosition(symbol);\r\n });\r\n if (!loop) {\r\n animator.done(function () {\r\n self.remove(symbol);\r\n });\r\n }\r\n animator.start();\r\n }\r\n }\r\n this._period = period;\r\n this._loop = loop;\r\n };\r\n EffectLine.prototype._getLineLength = function (symbol) {\r\n return (dist(symbol.__p1, symbol.__cp1)\r\n + dist(symbol.__cp1, symbol.__p2));\r\n };\r\n EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\r\n symbol.__p1 = points[0];\r\n symbol.__p2 = points[1];\r\n symbol.__cp1 = points[2] || [\r\n (points[0][0] + points[1][0]) / 2,\r\n (points[0][1] + points[1][1]) / 2\r\n ];\r\n };\r\n EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\r\n this.childAt(0).updateData(lineData, idx, seriesScope);\r\n this._updateEffectSymbol(lineData, idx);\r\n };\r\n EffectLine.prototype._updateSymbolPosition = function (symbol) {\r\n var p1 = symbol.__p1;\r\n var p2 = symbol.__p2;\r\n var cp1 = symbol.__cp1;\r\n var t = symbol.__t;\r\n var pos = [symbol.x, symbol.y];\r\n var lastPos = pos.slice();\r\n var quadraticAt$1 = quadraticAt;\r\n var quadraticDerivativeAt$1 = quadraticDerivativeAt;\r\n pos[0] = quadraticAt$1(p1[0], cp1[0], p2[0], t);\r\n pos[1] = quadraticAt$1(p1[1], cp1[1], p2[1], t);\r\n var tx = quadraticDerivativeAt$1(p1[0], cp1[0], p2[0], t);\r\n var ty = quadraticDerivativeAt$1(p1[1], cp1[1], p2[1], t);\r\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\r\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\r\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\r\n symbol.scaleY = dist(lastPos, pos) * 1.05;\r\n if (t === 1) {\r\n pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\r\n pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\r\n }\r\n }\r\n else if (symbol.__lastT === 1) {\r\n symbol.scaleY = 2 * dist(p1, pos);\r\n }\r\n else {\r\n symbol.scaleY = this._symbolScale[1];\r\n }\r\n }\r\n symbol.__lastT = symbol.__t;\r\n symbol.ignore = false;\r\n symbol.x = pos[0];\r\n symbol.y = pos[1];\r\n };\r\n EffectLine.prototype.updateLayout = function (lineData, idx) {\r\n this.childAt(0).updateLayout(lineData, idx);\r\n var effectModel = lineData.getItemModel(idx).getModel('effect');\r\n this._updateEffectAnimation(lineData, effectModel, idx);\r\n };\r\n return EffectLine;\r\n }(Group));\n\n var Polyline$1 = (function (_super) {\r\n __extends(Polyline$1, _super);\r\n function Polyline$1(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createPolyline(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Polyline$1.prototype._createPolyline = function (lineData, idx, seriesScope) {\r\n var points = lineData.getItemLayout(idx);\r\n var line = new Polyline({\r\n shape: {\r\n points: points\r\n }\r\n });\r\n this.add(line);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Polyline$1.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childAt(0);\r\n var target = {\r\n shape: {\r\n points: lineData.getItemLayout(idx)\r\n }\r\n };\r\n updateProps(line, target, seriesModel, idx);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Polyline$1.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var line = this.childAt(0);\r\n var itemModel = lineData.getItemModel(idx);\r\n var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n }\r\n line.useStyle(lineData.getItemVisual(idx, 'style'));\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n var lineEmphasisState = line.ensureState('emphasis');\r\n lineEmphasisState.style = hoverLineStyle;\r\n enableHoverEmphasis(this);\r\n };\r\n Polyline$1.prototype.updateLayout = function (lineData, idx) {\r\n var polyline = this.childAt(0);\r\n polyline.setShape('points', lineData.getItemLayout(idx));\r\n };\r\n return Polyline$1;\r\n }(Group));\n\n var EffectPolyline = (function (_super) {\r\n __extends(EffectPolyline, _super);\r\n function EffectPolyline() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._lastFrame = 0;\r\n _this._lastFramePercent = 0;\r\n return _this;\r\n }\r\n EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\r\n return new Polyline$1(lineData, idx, seriesScope);\r\n };\r\n EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\r\n this._points = points;\r\n var accLenArr = [0];\r\n var len = 0;\r\n for (var i = 1; i < points.length; i++) {\r\n var p1 = points[i - 1];\r\n var p2 = points[i];\r\n len += dist(p1, p2);\r\n accLenArr.push(len);\r\n }\r\n if (len === 0) {\r\n this._length = 0;\r\n return;\r\n }\r\n for (var i = 0; i < accLenArr.length; i++) {\r\n accLenArr[i] /= len;\r\n }\r\n this._offsets = accLenArr;\r\n this._length = len;\r\n };\r\n EffectPolyline.prototype._getLineLength = function () {\r\n return this._length;\r\n };\r\n EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\r\n var t = symbol.__t;\r\n var points = this._points;\r\n var offsets = this._offsets;\r\n var len = points.length;\r\n if (!offsets) {\r\n return;\r\n }\r\n var lastFrame = this._lastFrame;\r\n var frame;\r\n if (t < this._lastFramePercent) {\r\n var start = Math.min(lastFrame + 1, len - 1);\r\n for (frame = start; frame >= 0; frame--) {\r\n if (offsets[frame] <= t) {\r\n break;\r\n }\r\n }\r\n frame = Math.min(frame, len - 2);\r\n }\r\n else {\r\n for (frame = lastFrame; frame < len; frame++) {\r\n if (offsets[frame] > t) {\r\n break;\r\n }\r\n }\r\n frame = Math.min(frame - 1, len - 2);\r\n }\r\n var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\r\n var p0 = points[frame];\r\n var p1 = points[frame + 1];\r\n symbol.x = p0[0] * (1 - p) + p * p1[0];\r\n symbol.y = p0[1] * (1 - p) + p * p1[1];\r\n var tx = p1[0] - p0[0];\r\n var ty = p1[1] - p0[1];\r\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\r\n this._lastFrame = frame;\r\n this._lastFramePercent = t;\r\n symbol.ignore = false;\r\n };\r\n return EffectPolyline;\r\n }(EffectLine));\n\n var LargeLinesPathShape = (function () {\r\n function LargeLinesPathShape() {\r\n this.polyline = false;\r\n this.curveness = 0;\r\n this.segs = [];\r\n }\r\n return LargeLinesPathShape;\r\n }());\r\n var LargeLinesPath = (function (_super) {\r\n __extends(LargeLinesPath, _super);\r\n function LargeLinesPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeLinesPath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n LargeLinesPath.prototype.getDefaultShape = function () {\r\n return new LargeLinesPathShape();\r\n };\r\n LargeLinesPath.prototype.buildPath = function (ctx, shape) {\r\n var segs = shape.segs;\r\n var curveness = shape.curveness;\r\n if (shape.polyline) {\r\n for (var i = 0; i < segs.length;) {\r\n var count = segs[i++];\r\n if (count > 0) {\r\n ctx.moveTo(segs[i++], segs[i++]);\r\n for (var k = 1; k < count; k++) {\r\n ctx.lineTo(segs[i++], segs[i++]);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < segs.length;) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n ctx.moveTo(x0, y0);\r\n if (curveness > 0) {\r\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\r\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\r\n ctx.quadraticCurveTo(x2, y2, x1, y1);\r\n }\r\n else {\r\n ctx.lineTo(x1, y1);\r\n }\r\n }\r\n }\r\n };\r\n LargeLinesPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var segs = shape.segs;\r\n var curveness = shape.curveness;\r\n var lineWidth = this.style.lineWidth;\r\n if (shape.polyline) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < segs.length;) {\r\n var count = segs[i++];\r\n if (count > 0) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n for (var k = 1; k < count; k++) {\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n }\r\n dataIndex++;\r\n }\r\n }\r\n else {\r\n var dataIndex = 0;\r\n for (var i = 0; i < segs.length;) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n if (curveness > 0) {\r\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\r\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\r\n if (containStroke$2(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n else {\r\n if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n dataIndex++;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeLinesPath;\r\n }(Path));\r\n var LargeLineDraw = (function () {\r\n function LargeLineDraw() {\r\n this.group = new Group();\r\n }\r\n LargeLineDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeLineDraw.prototype.updateData = function (data) {\r\n this.group.removeAll();\r\n var lineEl = new LargeLinesPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n lineEl.setShape({\r\n segs: data.getLayout('linesPoints')\r\n });\r\n this._setCommon(lineEl, data);\r\n this.group.add(lineEl);\r\n this._incremental = null;\r\n };\r\n LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 5e5) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\r\n var lineEl = new LargeLinesPath();\r\n lineEl.setShape({\r\n segs: data.getLayout('linesPoints')\r\n });\r\n this._setCommon(lineEl, data, !!this._incremental);\r\n if (!this._incremental) {\r\n lineEl.rectHover = true;\r\n lineEl.cursor = 'default';\r\n lineEl.__startIndex = taskParams.start;\r\n this.group.add(lineEl);\r\n }\r\n else {\r\n this._incremental.addDisplayable(lineEl, true);\r\n }\r\n };\r\n LargeLineDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\r\n var hostModel = data.hostModel;\r\n lineEl.setShape({\r\n polyline: hostModel.get('polyline'),\r\n curveness: hostModel.get(['lineStyle', 'curveness'])\r\n });\r\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\r\n lineEl.style.strokeNoScale = true;\r\n var style = data.getVisual('style');\r\n if (style && style.stroke) {\r\n lineEl.setStyle('stroke', style.stroke);\r\n }\r\n lineEl.setStyle('fill', null);\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(lineEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n lineEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex > 0) {\r\n ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\r\n }\r\n });\r\n }\r\n };\r\n LargeLineDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeLineDraw;\r\n }());\n\n var linesLayout = {\r\n seriesType: 'lines',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var isPolyline = seriesModel.get('polyline');\r\n var isLarge = seriesModel.pipelineContext.large;\r\n return {\r\n progress: function (params, lineData) {\r\n var lineCoords = [];\r\n if (isLarge) {\r\n var points = void 0;\r\n var segCount = params.end - params.start;\r\n if (isPolyline) {\r\n var totalCoordsCount = 0;\r\n for (var i = params.start; i < params.end; i++) {\r\n totalCoordsCount += seriesModel.getLineCoordsCount(i);\r\n }\r\n points = new Float32Array(segCount + totalCoordsCount * 2);\r\n }\r\n else {\r\n points = new Float32Array(segCount * 4);\r\n }\r\n var offset = 0;\r\n var pt = [];\r\n for (var i = params.start; i < params.end; i++) {\r\n var len = seriesModel.getLineCoords(i, lineCoords);\r\n if (isPolyline) {\r\n points[offset++] = len;\r\n }\r\n for (var k = 0; k < len; k++) {\r\n pt = coordSys.dataToPoint(lineCoords[k], false, pt);\r\n points[offset++] = pt[0];\r\n points[offset++] = pt[1];\r\n }\r\n }\r\n lineData.setLayout('linesPoints', points);\r\n }\r\n else {\r\n for (var i = params.start; i < params.end; i++) {\r\n var itemModel = lineData.getItemModel(i);\r\n var len = seriesModel.getLineCoords(i, lineCoords);\r\n var pts = [];\r\n if (isPolyline) {\r\n for (var j = 0; j < len; j++) {\r\n pts.push(coordSys.dataToPoint(lineCoords[j]));\r\n }\r\n }\r\n else {\r\n pts[0] = coordSys.dataToPoint(lineCoords[0]);\r\n pts[1] = coordSys.dataToPoint(lineCoords[1]);\r\n var curveness = itemModel.get(['lineStyle', 'curveness']);\r\n if (+curveness) {\r\n pts[2] = [\r\n (pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness,\r\n (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness\r\n ];\r\n }\r\n }\r\n lineData.setItemLayout(i, pts);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n };\n\n var LinesView = (function (_super) {\r\n __extends(LinesView, _super);\r\n function LinesView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LinesView.type;\r\n return _this;\r\n }\r\n LinesView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var lineDraw = this._updateLineDraw(data, seriesModel);\r\n var zlevel = seriesModel.get('zlevel');\r\n var trailLength = seriesModel.get(['effect', 'trailLength']);\r\n var zr = api.getZr();\r\n var isSvg = zr.painter.getType() === 'svg';\r\n if (!isSvg) {\r\n zr.painter.getLayer(zlevel).clear(true);\r\n }\r\n if (this._lastZlevel != null && !isSvg) {\r\n zr.configLayer(this._lastZlevel, {\r\n motionBlur: false\r\n });\r\n }\r\n if (this._showEffect(seriesModel) && trailLength) {\r\n if (__DEV__) {\r\n var notInIndividual_1 = false;\r\n ecModel.eachSeries(function (otherSeriesModel) {\r\n if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\r\n notInIndividual_1 = true;\r\n }\r\n });\r\n notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\r\n }\r\n if (!isSvg) {\r\n zr.configLayer(zlevel, {\r\n motionBlur: true,\r\n lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\r\n });\r\n }\r\n }\r\n lineDraw.updateData(data);\r\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n this._lastZlevel = zlevel;\r\n this._finished = true;\r\n };\r\n LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var lineDraw = this._updateLineDraw(data, seriesModel);\r\n lineDraw.incrementalPrepareUpdate(data);\r\n this._clearLayer(api);\r\n this._finished = false;\r\n };\r\n LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var pipelineContext = seriesModel.pipelineContext;\r\n if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = linesLayout.reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({\r\n start: 0,\r\n end: data.count(),\r\n count: data.count()\r\n }, data);\r\n }\r\n this._lineDraw.updateLayout();\r\n this._clearLayer(api);\r\n }\r\n };\r\n LinesView.prototype._updateLineDraw = function (data, seriesModel) {\r\n var lineDraw = this._lineDraw;\r\n var hasEffect = this._showEffect(seriesModel);\r\n var isPolyline = !!seriesModel.get('polyline');\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (__DEV__) {\r\n if (hasEffect && isLargeDraw) {\r\n console.warn('Large lines not support effect');\r\n }\r\n }\r\n if (!lineDraw\r\n || hasEffect !== this._hasEffet\r\n || isPolyline !== this._isPolyline\r\n || isLargeDraw !== this._isLargeDraw) {\r\n if (lineDraw) {\r\n lineDraw.remove();\r\n }\r\n lineDraw = this._lineDraw = isLargeDraw\r\n ? new LargeLineDraw()\r\n : new LineDraw(isPolyline\r\n ? (hasEffect ? EffectPolyline : Polyline$1)\r\n : (hasEffect ? EffectLine : Line$1));\r\n this._hasEffet = hasEffect;\r\n this._isPolyline = isPolyline;\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(lineDraw.group);\r\n return lineDraw;\r\n };\r\n LinesView.prototype._showEffect = function (seriesModel) {\r\n return !!seriesModel.get(['effect', 'show']);\r\n };\r\n LinesView.prototype._clearLayer = function (api) {\r\n var zr = api.getZr();\r\n var isSvg = zr.painter.getType() === 'svg';\r\n if (!isSvg && this._lastZlevel != null) {\r\n zr.painter.getLayer(this._lastZlevel).clear(true);\r\n }\r\n };\r\n LinesView.prototype.remove = function (ecModel, api) {\r\n this._lineDraw && this._lineDraw.remove();\r\n this._lineDraw = null;\r\n this._clearLayer(api);\r\n };\r\n LinesView.type = 'lines';\r\n return LinesView;\r\n }(ChartView));\r\n ChartView.registerClass(LinesView);\n\n function normalize$3(a) {\r\n if (!(a instanceof Array)) {\r\n a = [a, a];\r\n }\r\n return a;\r\n }\r\n var linesVisual = {\r\n seriesType: 'lines',\r\n reset: function (seriesModel) {\r\n var symbolType = normalize$3(seriesModel.get('symbol'));\r\n var symbolSize = normalize$3(seriesModel.get('symbolSize'));\r\n var data = seriesModel.getData();\r\n data.setVisual('fromSymbol', symbolType && symbolType[0]);\r\n data.setVisual('toSymbol', symbolType && symbolType[1]);\r\n data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\r\n data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var symbolType = normalize$3(itemModel.getShallow('symbol', true));\r\n var symbolSize = normalize$3(itemModel.getShallow('symbolSize', true));\r\n symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\r\n symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\r\n symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\r\n symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\r\n }\r\n return {\r\n dataEach: data.hasItemOption ? dataEach : null\r\n };\r\n }\r\n };\n\n registerLayout(linesLayout);\r\n registerVisual(linesVisual);\n\n var HeatmapSeriesModel = (function (_super) {\r\n __extends(HeatmapSeriesModel, _super);\r\n function HeatmapSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = HeatmapSeriesModel.type;\r\n return _this;\r\n }\r\n HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n generateCoord: 'value'\r\n });\r\n };\r\n HeatmapSeriesModel.prototype.preventIncremental = function () {\r\n var coordSysCreator = CoordinateSystemManager.get(this.get('coordinateSystem'));\r\n if (coordSysCreator && coordSysCreator.dimensions) {\r\n return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\r\n }\r\n };\r\n HeatmapSeriesModel.type = 'series.heatmap';\r\n HeatmapSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n geoIndex: 0,\r\n blurSize: 30,\r\n pointSize: 20,\r\n maxOpacity: 1,\r\n minOpacity: 0,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return HeatmapSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(HeatmapSeriesModel);\n\n var GRADIENT_LEVELS = 256;\r\n var HeatmapLayer = (function () {\r\n function HeatmapLayer() {\r\n this.blurSize = 30;\r\n this.pointSize = 20;\r\n this.maxOpacity = 1;\r\n this.minOpacity = 0;\r\n this._gradientPixels = {\r\n inRange: null,\r\n outOfRange: null\r\n };\r\n var canvas = createCanvas();\r\n this.canvas = canvas;\r\n }\r\n HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\r\n var brush = this._getBrush();\r\n var gradientInRange = this._getGradient(colorFunc, 'inRange');\r\n var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\r\n var r = this.pointSize + this.blurSize;\r\n var canvas = this.canvas;\r\n var ctx = canvas.getContext('2d');\r\n var len = data.length;\r\n canvas.width = width;\r\n canvas.height = height;\r\n for (var i = 0; i < len; ++i) {\r\n var p = data[i];\r\n var x = p[0];\r\n var y = p[1];\r\n var value = p[2];\r\n var alpha = normalize(value);\r\n ctx.globalAlpha = alpha;\r\n ctx.drawImage(brush, x - r, y - r);\r\n }\r\n if (!canvas.width || !canvas.height) {\r\n return canvas;\r\n }\r\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n var pixels = imageData.data;\r\n var offset = 0;\r\n var pixelLen = pixels.length;\r\n var minOpacity = this.minOpacity;\r\n var maxOpacity = this.maxOpacity;\r\n var diffOpacity = maxOpacity - minOpacity;\r\n while (offset < pixelLen) {\r\n var alpha = pixels[offset + 3] / 256;\r\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\r\n if (alpha > 0) {\r\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\r\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\r\n pixels[offset++] = gradient[gradientOffset];\r\n pixels[offset++] = gradient[gradientOffset + 1];\r\n pixels[offset++] = gradient[gradientOffset + 2];\r\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\r\n }\r\n else {\r\n offset += 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0);\r\n return canvas;\r\n };\r\n HeatmapLayer.prototype._getBrush = function () {\r\n var brushCanvas = this._brushCanvas || (this._brushCanvas = createCanvas());\r\n var r = this.pointSize + this.blurSize;\r\n var d = r * 2;\r\n brushCanvas.width = d;\r\n brushCanvas.height = d;\r\n var ctx = brushCanvas.getContext('2d');\r\n ctx.clearRect(0, 0, d, d);\r\n ctx.shadowOffsetX = d;\r\n ctx.shadowBlur = this.blurSize;\r\n ctx.shadowColor = '#000';\r\n ctx.beginPath();\r\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\r\n ctx.closePath();\r\n ctx.fill();\r\n return brushCanvas;\r\n };\r\n HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\r\n var gradientPixels = this._gradientPixels;\r\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\r\n var color = [0, 0, 0, 0];\r\n var off = 0;\r\n for (var i = 0; i < 256; i++) {\r\n colorFunc[state](i / 255, true, color);\r\n pixelsSingleState[off++] = color[0];\r\n pixelsSingleState[off++] = color[1];\r\n pixelsSingleState[off++] = color[2];\r\n pixelsSingleState[off++] = color[3];\r\n }\r\n return pixelsSingleState;\r\n };\r\n return HeatmapLayer;\r\n }());\n\n function getIsInPiecewiseRange(dataExtent, pieceList, selected) {\r\n var dataSpan = dataExtent[1] - dataExtent[0];\r\n pieceList = map(pieceList, function (piece) {\r\n return {\r\n interval: [\r\n (piece.interval[0] - dataExtent[0]) / dataSpan,\r\n (piece.interval[1] - dataExtent[0]) / dataSpan\r\n ]\r\n };\r\n });\r\n var len = pieceList.length;\r\n var lastIndex = 0;\r\n return function (val) {\r\n var i;\r\n for (i = lastIndex; i < len; i++) {\r\n var interval = pieceList[i].interval;\r\n if (interval[0] <= val && val <= interval[1]) {\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n if (i === len) {\r\n for (i = lastIndex - 1; i >= 0; i--) {\r\n var interval = pieceList[i].interval;\r\n if (interval[0] <= val && val <= interval[1]) {\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return i >= 0 && i < len && selected[i];\r\n };\r\n }\r\n function getIsInContinuousRange(dataExtent, range) {\r\n var dataSpan = dataExtent[1] - dataExtent[0];\r\n range = [\r\n (range[0] - dataExtent[0]) / dataSpan,\r\n (range[1] - dataExtent[0]) / dataSpan\r\n ];\r\n return function (val) {\r\n return val >= range[0] && val <= range[1];\r\n };\r\n }\r\n function isGeoCoordSys(coordSys) {\r\n var dimensions = coordSys.dimensions;\r\n return dimensions[0] === 'lng' && dimensions[1] === 'lat';\r\n }\r\n var HeatmapView = (function (_super) {\r\n __extends(HeatmapView, _super);\r\n function HeatmapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = HeatmapView.type;\r\n return _this;\r\n }\r\n HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\r\n var visualMapOfThisSeries;\r\n ecModel.eachComponent('visualMap', function (visualMap) {\r\n visualMap.eachTargetSeries(function (targetSeries) {\r\n if (targetSeries === seriesModel) {\r\n visualMapOfThisSeries = visualMap;\r\n }\r\n });\r\n });\r\n if (__DEV__) {\r\n if (!visualMapOfThisSeries) {\r\n throw new Error('Heatmap must use with visualMap');\r\n }\r\n }\r\n this.group.removeAll();\r\n this._incrementalDisplayable = null;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\r\n this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\r\n }\r\n else if (isGeoCoordSys(coordSys)) {\r\n this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\r\n }\r\n };\r\n HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys) {\r\n this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\r\n }\r\n };\r\n HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var width;\r\n var height;\r\n var xAxisExtent;\r\n var yAxisExtent;\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n if (__DEV__) {\r\n if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\r\n throw new Error('Heatmap on cartesian must have two category axes');\r\n }\r\n if (!(xAxis.onBand && yAxis.onBand)) {\r\n throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\r\n }\r\n }\r\n width = xAxis.getBandWidth();\r\n height = yAxis.getBandWidth();\r\n xAxisExtent = xAxis.scale.getExtent();\r\n yAxisExtent = yAxis.scale.getExtent();\r\n }\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\r\n var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n var labelStatesModels = getLabelStatesModels(seriesModel);\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d')\r\n ? [\r\n data.mapDimension('x'),\r\n data.mapDimension('y'),\r\n data.mapDimension('value')\r\n ]\r\n : [\r\n data.mapDimension('time'),\r\n data.mapDimension('value')\r\n ];\r\n for (var idx = start; idx < end; idx++) {\r\n var rect = void 0;\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var dataDimX = data.get(dataDims[0], idx);\r\n var dataDimY = data.get(dataDims[1], idx);\r\n if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1]\r\n || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\r\n continue;\r\n }\r\n var point = coordSys.dataToPoint([\r\n dataDimX,\r\n dataDimY\r\n ]);\r\n rect = new Rect({\r\n shape: {\r\n x: Math.floor(Math.round(point[0]) - width / 2),\r\n y: Math.floor(Math.round(point[1]) - height / 2),\r\n width: Math.ceil(width),\r\n height: Math.ceil(height)\r\n },\r\n style: data.getItemVisual(idx, 'style')\r\n });\r\n }\r\n else {\r\n if (isNaN(data.get(dataDims[1], idx))) {\r\n continue;\r\n }\r\n rect = new Rect({\r\n z2: 1,\r\n shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\r\n style: data.getItemVisual(idx, 'style')\r\n });\r\n }\r\n var itemModel = data.getItemModel(idx);\r\n if (data.hasItemOption) {\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var defaultText = '-';\r\n if (rawValue && rawValue[2] != null) {\r\n defaultText = rawValue[2] + '';\r\n }\r\n setLabelStyle(rect, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: defaultText\r\n });\r\n rect.ensureState('emphasis').style = emphasisStyle;\r\n rect.ensureState('blur').style = blurStyle;\r\n rect.ensureState('select').style = selectStyle;\r\n enableHoverEmphasis(rect, focus, blurScope);\r\n rect.incremental = incremental;\r\n if (incremental) {\r\n rect.states.emphasis.hoverLayer = true;\r\n }\r\n group.add(rect);\r\n data.setItemGraphicEl(idx, rect);\r\n }\r\n };\r\n HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\r\n var inRangeVisuals = visualMapModel.targetVisuals.inRange;\r\n var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\r\n var data = seriesModel.getData();\r\n var hmLayer = this._hmLayer || (this._hmLayer || new HeatmapLayer());\r\n hmLayer.blurSize = seriesModel.get('blurSize');\r\n hmLayer.pointSize = seriesModel.get('pointSize');\r\n hmLayer.minOpacity = seriesModel.get('minOpacity');\r\n hmLayer.maxOpacity = seriesModel.get('maxOpacity');\r\n var rect = geo.getViewRect().clone();\r\n var roamTransform = geo.getRoamTransform();\r\n rect.applyTransform(roamTransform);\r\n var x = Math.max(rect.x, 0);\r\n var y = Math.max(rect.y, 0);\r\n var x2 = Math.min(rect.width + rect.x, api.getWidth());\r\n var y2 = Math.min(rect.height + rect.y, api.getHeight());\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var dims = [\r\n data.mapDimension('lng'),\r\n data.mapDimension('lat'),\r\n data.mapDimension('value')\r\n ];\r\n var points = data.mapArray(dims, function (lng, lat, value) {\r\n var pt = geo.dataToPoint([lng, lat]);\r\n pt[0] -= x;\r\n pt[1] -= y;\r\n pt.push(value);\r\n return pt;\r\n });\r\n var dataExtent = visualMapModel.getExtent();\r\n var isInRange = visualMapModel.type === 'visualMap.continuous'\r\n ? getIsInContinuousRange(dataExtent, visualMapModel.option.range)\r\n : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\r\n hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\r\n inRange: inRangeVisuals.color.getColorMapper(),\r\n outOfRange: outOfRangeVisuals.color.getColorMapper()\r\n }, isInRange);\r\n var img = new ZRImage({\r\n style: {\r\n width: width,\r\n height: height,\r\n x: x,\r\n y: y,\r\n image: hmLayer.canvas\r\n },\r\n silent: true\r\n });\r\n this.group.add(img);\r\n };\r\n HeatmapView.type = 'heatmap';\r\n return HeatmapView;\r\n }(ChartView));\r\n ChartView.registerClass(HeatmapView);\n\n var PictorialBarSeriesModel = (function (_super) {\r\n __extends(PictorialBarSeriesModel, _super);\r\n function PictorialBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PictorialBarSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.defaultSymbol = 'roundRect';\r\n return _this;\r\n }\r\n PictorialBarSeriesModel.prototype.getInitialData = function (option) {\r\n option.stack = null;\r\n return _super.prototype.getInitialData.apply(this, arguments);\r\n };\r\n PictorialBarSeriesModel.type = 'series.pictorialBar';\r\n PictorialBarSeriesModel.dependencies = ['grid'];\r\n PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n symbol: 'circle',\r\n symbolSize: null,\r\n symbolRotate: null,\r\n symbolPosition: null,\r\n symbolOffset: null,\r\n symbolMargin: null,\r\n symbolRepeat: false,\r\n symbolRepeatDirection: 'end',\r\n symbolClip: false,\r\n symbolBoundingData: null,\r\n symbolPatternSize: 400,\r\n barGap: '-100%',\r\n progressive: 0,\r\n emphasis: {\r\n scale: false\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n });\r\n return PictorialBarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(PictorialBarSeriesModel);\n\n var BAR_BORDER_WIDTH_QUERY$1 = ['itemStyle', 'borderWidth'];\r\n var LAYOUT_ATTRS = [\r\n { xy: 'x', wh: 'width', index: 0, posDesc: ['left', 'right'] },\r\n { xy: 'y', wh: 'height', index: 1, posDesc: ['top', 'bottom'] }\r\n ];\r\n var pathForLineWidth = new Circle();\r\n var PictorialBarView = (function (_super) {\r\n __extends(PictorialBarView, _super);\r\n function PictorialBarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PictorialBarView.type;\r\n return _this;\r\n }\r\n PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var coordSysRect = cartesian.master.getRect();\r\n var opt = {\r\n ecSize: { width: api.getWidth(), height: api.getHeight() },\r\n seriesModel: seriesModel,\r\n coordSys: cartesian,\r\n coordSysExtent: [\r\n [coordSysRect.x, coordSysRect.x + coordSysRect.width],\r\n [coordSysRect.y, coordSysRect.y + coordSysRect.height]\r\n ],\r\n isHorizontal: isHorizontal,\r\n valueDim: LAYOUT_ATTRS[+isHorizontal],\r\n categoryDim: LAYOUT_ATTRS[1 - (+isHorizontal)]\r\n };\r\n data.diff(oldData)\r\n .add(function (dataIndex) {\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var itemModel = getItemModel(data, dataIndex);\r\n var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\r\n var bar = createBar(data, opt, symbolMeta);\r\n data.setItemGraphicEl(dataIndex, bar);\r\n group.add(bar);\r\n updateCommon$1(bar, opt, symbolMeta);\r\n })\r\n .update(function (newIndex, oldIndex) {\r\n var bar = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(bar);\r\n return;\r\n }\r\n var itemModel = getItemModel(data, newIndex);\r\n var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\r\n var pictorialShapeStr = getShapeStr(data, symbolMeta);\r\n if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\r\n group.remove(bar);\r\n data.setItemGraphicEl(newIndex, null);\r\n bar = null;\r\n }\r\n if (bar) {\r\n updateBar(bar, opt, symbolMeta);\r\n }\r\n else {\r\n bar = createBar(data, opt, symbolMeta, true);\r\n }\r\n data.setItemGraphicEl(newIndex, bar);\r\n bar.__pictorialSymbolMeta = symbolMeta;\r\n group.add(bar);\r\n updateCommon$1(bar, opt, symbolMeta);\r\n })\r\n .remove(function (dataIndex) {\r\n var bar = oldData.getItemGraphicEl(dataIndex);\r\n bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\r\n })\r\n .execute();\r\n this._data = data;\r\n return this.group;\r\n };\r\n PictorialBarView.prototype.remove = function (ecModel, api) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (ecModel.get('animation')) {\r\n if (data) {\r\n data.eachItemGraphicEl(function (bar) {\r\n removeBar(data, getECData(bar).dataIndex, ecModel, bar);\r\n });\r\n }\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n PictorialBarView.type = 'pictorialBar';\r\n return PictorialBarView;\r\n }(ChartView));\r\n function getSymbolMeta(data, dataIndex, itemModel, opt) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var symbolRepeat = itemModel.get('symbolRepeat');\r\n var symbolClip = itemModel.get('symbolClip');\r\n var symbolPosition = itemModel.get('symbolPosition') || 'start';\r\n var symbolRotate = itemModel.get('symbolRotate');\r\n var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\r\n var isAnimationEnabled = itemModel.isAnimationEnabled();\r\n var symbolMeta = {\r\n dataIndex: dataIndex,\r\n layout: layout,\r\n itemModel: itemModel,\r\n symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\r\n style: data.getItemVisual(dataIndex, 'style'),\r\n symbolClip: symbolClip,\r\n symbolRepeat: symbolRepeat,\r\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\r\n symbolPatternSize: symbolPatternSize,\r\n rotation: rotation,\r\n animationModel: isAnimationEnabled ? itemModel : null,\r\n hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\r\n z2: itemModel.getShallow('z', true) || 0\r\n };\r\n prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\r\n prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\r\n prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\r\n var symbolSize = symbolMeta.symbolSize;\r\n var symbolOffset = itemModel.get('symbolOffset');\r\n if (isArray(symbolOffset)) {\r\n symbolOffset = [\r\n parsePercent$2(symbolOffset[0], symbolSize[0]),\r\n parsePercent$2(symbolOffset[1], symbolSize[1])\r\n ];\r\n }\r\n prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\r\n return symbolMeta;\r\n }\r\n function prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\r\n var valueDim = opt.valueDim;\r\n var symbolBoundingData = itemModel.get('symbolBoundingData');\r\n var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\r\n var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\r\n var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\r\n var boundingLength;\r\n if (isArray(symbolBoundingData)) {\r\n var symbolBoundingExtent = [\r\n convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx,\r\n convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx\r\n ];\r\n symbolBoundingExtent[1] < symbolBoundingExtent[0] && (symbolBoundingExtent.reverse());\r\n boundingLength = symbolBoundingExtent[pxSignIdx];\r\n }\r\n else if (symbolBoundingData != null) {\r\n boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\r\n }\r\n else if (symbolRepeat) {\r\n boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\r\n }\r\n else {\r\n boundingLength = layout[valueDim.wh];\r\n }\r\n outputSymbolMeta.boundingLength = boundingLength;\r\n if (symbolRepeat) {\r\n outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\r\n }\r\n outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\r\n }\r\n function convertToCoordOnAxis(axis, value) {\r\n return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\r\n }\r\n function prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\r\n var valueDim = opt.valueDim;\r\n var categoryDim = opt.categoryDim;\r\n var categorySize = Math.abs(layout[categoryDim.wh]);\r\n var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\r\n var parsedSymbolSize;\r\n if (isArray(symbolSize)) {\r\n parsedSymbolSize = symbolSize.slice();\r\n }\r\n else {\r\n if (symbolSize == null) {\r\n parsedSymbolSize = ['100%', '100%'];\r\n }\r\n else {\r\n parsedSymbolSize = [symbolSize, symbolSize];\r\n }\r\n }\r\n parsedSymbolSize[categoryDim.index] = parsePercent$2(parsedSymbolSize[categoryDim.index], categorySize);\r\n parsedSymbolSize[valueDim.index] = parsePercent$2(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\r\n outputSymbolMeta.symbolSize = parsedSymbolSize;\r\n var symbolScale = outputSymbolMeta.symbolScale = [\r\n parsedSymbolSize[0] / symbolPatternSize,\r\n parsedSymbolSize[1] / symbolPatternSize\r\n ];\r\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\r\n }\r\n function prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\r\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY$1) || 0;\r\n if (valueLineWidth) {\r\n pathForLineWidth.attr({\r\n scaleX: symbolScale[0],\r\n scaleY: symbolScale[1],\r\n rotation: rotation\r\n });\r\n pathForLineWidth.updateTransform();\r\n valueLineWidth /= pathForLineWidth.getLineScale();\r\n valueLineWidth *= symbolScale[opt.valueDim.index];\r\n }\r\n outputSymbolMeta.valueLineWidth = valueLineWidth;\r\n }\r\n function prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\r\n var categoryDim = opt.categoryDim;\r\n var valueDim = opt.valueDim;\r\n var pxSign = outputSymbolMeta.pxSign;\r\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\r\n var pathLen = unitLength;\r\n if (symbolRepeat) {\r\n var absBoundingLength = Math.abs(boundingLength);\r\n var symbolMargin = retrieve(itemModel.get('symbolMargin'), '15%') + '';\r\n var hasEndGap = false;\r\n if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\r\n hasEndGap = true;\r\n symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\r\n }\r\n var symbolMarginNumeric = parsePercent$2(symbolMargin, symbolSize[valueDim.index]);\r\n var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\r\n var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\r\n var repeatSpecified = isNumeric(symbolRepeat);\r\n var repeatTimes = repeatSpecified\r\n ? symbolRepeat\r\n : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\r\n var mDiff = absBoundingLength - repeatTimes * unitLength;\r\n symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\r\n uLenWithMargin = unitLength + symbolMarginNumeric * 2;\r\n endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\r\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\r\n repeatTimes = repeatCutLength\r\n ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin)\r\n : 0;\r\n }\r\n pathLen = repeatTimes * uLenWithMargin - endFix;\r\n outputSymbolMeta.repeatTimes = repeatTimes;\r\n outputSymbolMeta.symbolMargin = symbolMarginNumeric;\r\n }\r\n var sizeFix = pxSign * (pathLen / 2);\r\n var pathPosition = outputSymbolMeta.pathPosition = [];\r\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\r\n pathPosition[valueDim.index] = symbolPosition === 'start'\r\n ? sizeFix\r\n : symbolPosition === 'end'\r\n ? boundingLength - sizeFix\r\n : boundingLength / 2;\r\n if (symbolOffset) {\r\n pathPosition[0] += symbolOffset[0];\r\n pathPosition[1] += symbolOffset[1];\r\n }\r\n var bundlePosition = outputSymbolMeta.bundlePosition = [];\r\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\r\n bundlePosition[valueDim.index] = layout[valueDim.xy];\r\n var barRectShape = outputSymbolMeta.barRectShape = extend({}, layout);\r\n barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\r\n barRectShape[categoryDim.wh] = layout[categoryDim.wh];\r\n var clipShape = outputSymbolMeta.clipShape = {};\r\n clipShape[categoryDim.xy] = -layout[categoryDim.xy];\r\n clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\r\n clipShape[valueDim.xy] = 0;\r\n clipShape[valueDim.wh] = layout[valueDim.wh];\r\n }\r\n function createPath(symbolMeta) {\r\n var symbolPatternSize = symbolMeta.symbolPatternSize;\r\n var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\r\n path.attr({\r\n culling: true\r\n });\r\n path.type !== 'image' && path.setStyle({\r\n strokeNoScale: true\r\n });\r\n return path;\r\n }\r\n function createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\r\n var bundle = bar.__pictorialBundle;\r\n var symbolSize = symbolMeta.symbolSize;\r\n var valueLineWidth = symbolMeta.valueLineWidth;\r\n var pathPosition = symbolMeta.pathPosition;\r\n var valueDim = opt.valueDim;\r\n var repeatTimes = symbolMeta.repeatTimes || 0;\r\n var index = 0;\r\n var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\r\n eachPath(bar, function (path) {\r\n path.__pictorialAnimationIndex = index;\r\n path.__pictorialRepeatTimes = repeatTimes;\r\n if (index < repeatTimes) {\r\n updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\r\n }\r\n else {\r\n updateAttr(path, null, { scaleX: 0, scaleY: 0 }, symbolMeta, isUpdate, function () {\r\n bundle.remove(path);\r\n });\r\n }\r\n index++;\r\n });\r\n for (; index < repeatTimes; index++) {\r\n var path = createPath(symbolMeta);\r\n path.__pictorialAnimationIndex = index;\r\n path.__pictorialRepeatTimes = repeatTimes;\r\n bundle.add(path);\r\n var target = makeTarget(index);\r\n updateAttr(path, {\r\n x: target.x,\r\n y: target.y,\r\n scaleX: 0,\r\n scaleY: 0\r\n }, {\r\n scaleX: target.scaleX,\r\n scaleY: target.scaleY,\r\n rotation: target.rotation\r\n }, symbolMeta, isUpdate);\r\n }\r\n function makeTarget(index) {\r\n var position = pathPosition.slice();\r\n var pxSign = symbolMeta.pxSign;\r\n var i = index;\r\n if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\r\n i = repeatTimes - 1 - index;\r\n }\r\n position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\r\n return {\r\n x: position[0],\r\n y: position[1],\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1],\r\n rotation: symbolMeta.rotation\r\n };\r\n }\r\n }\r\n function createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\r\n var bundle = bar.__pictorialBundle;\r\n var mainPath = bar.__pictorialMainPath;\r\n if (!mainPath) {\r\n mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\r\n bundle.add(mainPath);\r\n updateAttr(mainPath, {\r\n x: symbolMeta.pathPosition[0],\r\n y: symbolMeta.pathPosition[1],\r\n scaleX: 0,\r\n scaleY: 0,\r\n rotation: symbolMeta.rotation\r\n }, {\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1]\r\n }, symbolMeta, isUpdate);\r\n }\r\n else {\r\n updateAttr(mainPath, null, {\r\n x: symbolMeta.pathPosition[0],\r\n y: symbolMeta.pathPosition[1],\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1],\r\n rotation: symbolMeta.rotation\r\n }, symbolMeta, isUpdate);\r\n }\r\n }\r\n function createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\r\n var rectShape = extend({}, symbolMeta.barRectShape);\r\n var barRect = bar.__pictorialBarRect;\r\n if (!barRect) {\r\n barRect = bar.__pictorialBarRect = new Rect({\r\n z2: 2,\r\n shape: rectShape,\r\n silent: true,\r\n style: {\r\n stroke: 'transparent',\r\n fill: 'transparent',\r\n lineWidth: 0\r\n }\r\n });\r\n bar.add(barRect);\r\n }\r\n else {\r\n updateAttr(barRect, null, { shape: rectShape }, symbolMeta, isUpdate);\r\n }\r\n }\r\n function createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\r\n if (symbolMeta.symbolClip) {\r\n var clipPath = bar.__pictorialClipPath;\r\n var clipShape = extend({}, symbolMeta.clipShape);\r\n var valueDim = opt.valueDim;\r\n var animationModel = symbolMeta.animationModel;\r\n var dataIndex = symbolMeta.dataIndex;\r\n if (clipPath) {\r\n updateProps(clipPath, { shape: clipShape }, animationModel, dataIndex);\r\n }\r\n else {\r\n clipShape[valueDim.wh] = 0;\r\n clipPath = new Rect({ shape: clipShape });\r\n bar.__pictorialBundle.setClipPath(clipPath);\r\n bar.__pictorialClipPath = clipPath;\r\n var target = {};\r\n target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\r\n graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, { shape: target }, animationModel, dataIndex);\r\n }\r\n }\r\n }\r\n function getItemModel(data, dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n itemModel.getAnimationDelayParams = getAnimationDelayParams;\r\n itemModel.isAnimationEnabled = isAnimationEnabled;\r\n return itemModel;\r\n }\r\n function getAnimationDelayParams(path) {\r\n return {\r\n index: path.__pictorialAnimationIndex,\r\n count: path.__pictorialRepeatTimes\r\n };\r\n }\r\n function isAnimationEnabled() {\r\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\r\n }\r\n function createBar(data, opt, symbolMeta, isUpdate) {\r\n var bar = new Group();\r\n var bundle = new Group();\r\n bar.add(bundle);\r\n bar.__pictorialBundle = bundle;\r\n bundle.x = symbolMeta.bundlePosition[0];\r\n bundle.y = symbolMeta.bundlePosition[1];\r\n if (symbolMeta.symbolRepeat) {\r\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\r\n }\r\n else {\r\n createOrUpdateSingleSymbol(bar, opt, symbolMeta);\r\n }\r\n createOrUpdateBarRect(bar, symbolMeta, isUpdate);\r\n createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\r\n bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\r\n bar.__pictorialSymbolMeta = symbolMeta;\r\n return bar;\r\n }\r\n function updateBar(bar, opt, symbolMeta) {\r\n var animationModel = symbolMeta.animationModel;\r\n var dataIndex = symbolMeta.dataIndex;\r\n var bundle = bar.__pictorialBundle;\r\n updateProps(bundle, {\r\n x: symbolMeta.bundlePosition[0],\r\n y: symbolMeta.bundlePosition[1]\r\n }, animationModel, dataIndex);\r\n if (symbolMeta.symbolRepeat) {\r\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\r\n }\r\n else {\r\n createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\r\n }\r\n createOrUpdateBarRect(bar, symbolMeta, true);\r\n createOrUpdateClip(bar, opt, symbolMeta, true);\r\n }\r\n function removeBar(data, dataIndex, animationModel, bar) {\r\n var labelRect = bar.__pictorialBarRect;\r\n labelRect && (labelRect.removeTextContent());\r\n var pathes = [];\r\n eachPath(bar, function (path) {\r\n pathes.push(path);\r\n });\r\n bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\r\n bar.__pictorialClipPath && (animationModel = null);\r\n each(pathes, function (path) {\r\n removeElement(path, { scaleX: 0, scaleY: 0 }, animationModel, dataIndex, function () {\r\n bar.parent && bar.parent.remove(bar);\r\n });\r\n });\r\n data.setItemGraphicEl(dataIndex, null);\r\n }\r\n function getShapeStr(data, symbolMeta) {\r\n return [\r\n data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none',\r\n !!symbolMeta.symbolRepeat,\r\n !!symbolMeta.symbolClip\r\n ].join(':');\r\n }\r\n function eachPath(bar, cb, context) {\r\n each(bar.__pictorialBundle.children(), function (el) {\r\n el !== bar.__pictorialBarRect && cb.call(context, el);\r\n });\r\n }\r\n function updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\r\n immediateAttrs && el.attr(immediateAttrs);\r\n if (symbolMeta.symbolClip && !isUpdate) {\r\n animationAttrs && el.attr(animationAttrs);\r\n }\r\n else {\r\n animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\r\n }\r\n }\r\n function updateCommon$1(bar, opt, symbolMeta) {\r\n var dataIndex = symbolMeta.dataIndex;\r\n var itemModel = symbolMeta.itemModel;\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n var focus = emphasisModel.get('focus');\r\n var blurScope = emphasisModel.get('blurScope');\r\n eachPath(bar, function (path) {\r\n if (path instanceof ZRImage) {\r\n var pathStyle = path.style;\r\n path.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolMeta.style));\r\n }\r\n else {\r\n path.useStyle(symbolMeta.style);\r\n }\r\n var emphasisState = path.ensureState('emphasis');\r\n emphasisState.style = emphasisStyle;\r\n emphasisState.scaleX = path.scaleX * 1.1;\r\n emphasisState.scaleY = path.scaleY * 1.1;\r\n path.ensureState('blur').style = blurStyle;\r\n path.ensureState('select').style = selectStyle;\r\n cursorStyle && (path.cursor = cursorStyle);\r\n path.z2 = symbolMeta.z2;\r\n });\r\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\r\n var barRect = bar.__pictorialBarRect;\r\n setLabelStyle(barRect, getLabelStatesModels(itemModel), {\r\n labelFetcher: opt.seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\r\n inheritColor: symbolMeta.style.fill,\r\n defaultOutsidePosition: barPositionOutside\r\n });\r\n enableHoverEmphasis(bar, focus, blurScope);\r\n }\r\n function toIntTimes(times) {\r\n var roundedTimes = Math.round(times);\r\n return Math.abs(times - roundedTimes) < 1e-4\r\n ? roundedTimes\r\n : Math.ceil(times);\r\n }\r\n ChartView.registerClass(PictorialBarView);\n\n registerLayout(curry(layout, 'pictorialBar'));\n\n var SingleAxis = (function (_super) {\r\n __extends(SingleAxis, _super);\r\n function SingleAxis(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n SingleAxis.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n SingleAxis.prototype.pointToData = function (point, clamp) {\r\n return this.coordinateSystem.pointToData(point)[0];\r\n };\r\n return SingleAxis;\r\n }(Axis));\n\n var Single = (function () {\r\n function Single(axisModel, ecModel, api) {\r\n this.type = 'single';\r\n this.dimension = 'single';\r\n this.dimensions = ['single'];\r\n this.axisPointerEnabled = true;\r\n this.model = axisModel;\r\n this._init(axisModel, ecModel, api);\r\n }\r\n Single.prototype._init = function (axisModel, ecModel, api) {\r\n var dim = this.dimension;\r\n var axis = new SingleAxis(dim, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axis.orient = axisModel.get('orient');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.coordinateSystem = this;\r\n this._axis = axis;\r\n };\r\n Single.prototype.update = function (ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.coordinateSystem === this) {\r\n var data_1 = seriesModel.getData();\r\n each(data_1.mapDimensionsAll(this.dimension), function (dim) {\r\n this._axis.scale.unionExtentFromData(data_1, dim);\r\n }, this);\r\n niceScaleExtent(this._axis.scale, this._axis.model);\r\n }\r\n }, this);\r\n };\r\n Single.prototype.resize = function (axisModel, api) {\r\n this._rect = getLayoutRect({\r\n left: axisModel.get('left'),\r\n top: axisModel.get('top'),\r\n right: axisModel.get('right'),\r\n bottom: axisModel.get('bottom'),\r\n width: axisModel.get('width'),\r\n height: axisModel.get('height')\r\n }, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._adjustAxis();\r\n };\r\n Single.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Single.prototype._adjustAxis = function () {\r\n var rect = this._rect;\r\n var axis = this._axis;\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\r\n var idx = axis.reverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\r\n };\r\n Single.prototype._updateAxisTransform = function (axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var extentSum = axisExtent[0] + axisExtent[1];\r\n var isHorizontal = axis.isHorizontal();\r\n axis.toGlobalCoord = isHorizontal\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return extentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = isHorizontal\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return extentSum - coord + coordBase;\r\n };\r\n };\r\n Single.prototype.getAxis = function () {\r\n return this._axis;\r\n };\r\n Single.prototype.getBaseAxis = function () {\r\n return this._axis;\r\n };\r\n Single.prototype.getAxes = function () {\r\n return [this._axis];\r\n };\r\n Single.prototype.getTooltipAxes = function () {\r\n return {\r\n baseAxes: [this.getAxis()],\r\n otherAxes: []\r\n };\r\n };\r\n Single.prototype.containPoint = function (point) {\r\n var rect = this.getRect();\r\n var axis = this.getAxis();\r\n var orient = axis.orient;\r\n if (orient === 'horizontal') {\r\n return axis.contain(axis.toLocalCoord(point[0]))\r\n && (point[1] >= rect.y && point[1] <= (rect.y + rect.height));\r\n }\r\n else {\r\n return axis.contain(axis.toLocalCoord(point[1]))\r\n && (point[0] >= rect.y && point[0] <= (rect.y + rect.height));\r\n }\r\n };\r\n Single.prototype.pointToData = function (point) {\r\n var axis = this.getAxis();\r\n return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\r\n };\r\n Single.prototype.dataToPoint = function (val) {\r\n var axis = this.getAxis();\r\n var rect = this.getRect();\r\n var pt = [];\r\n var idx = axis.orient === 'horizontal' ? 0 : 1;\r\n if (val instanceof Array) {\r\n val = val[0];\r\n }\r\n pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\r\n pt[1 - idx] = idx === 0 ? (rect.y + rect.height / 2) : (rect.x + rect.width / 2);\r\n return pt;\r\n };\r\n Single.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$2(finder);\r\n return coordSys === this ? this.dataToPoint(value) : null;\r\n };\r\n Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$2(finder);\r\n return coordSys === this ? this.pointToData(pixel) : null;\r\n };\r\n return Single;\r\n }());\r\n function getCoordSys$2(finder) {\r\n var seriesModel = finder.seriesModel;\r\n var singleModel = finder.singleAxisModel;\r\n return singleModel && singleModel.coordinateSystem\r\n || seriesModel && seriesModel.coordinateSystem;\r\n }\n\n function create$3(ecModel, api) {\r\n var singles = [];\r\n ecModel.eachComponent('singleAxis', function (axisModel, idx) {\r\n var single = new Single(axisModel, ecModel, api);\r\n single.name = 'single_' + idx;\r\n single.resize(axisModel, api);\r\n axisModel.coordinateSystem = single;\r\n singles.push(single);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'singleAxis') {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\r\n }\r\n });\r\n return singles;\r\n }\r\n CoordinateSystemManager.register('single', {\r\n create: create$3,\r\n dimensions: Single.prototype.dimensions\r\n });\n\n function layout$2(axisModel, opt) {\r\n opt = opt || {};\r\n var single = axisModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var axisPosition = axis.position;\r\n var orient = axis.orient;\r\n var rect = single.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var positionMap = {\r\n horizontal: { top: rectBound[2], bottom: rectBound[3] },\r\n vertical: { left: rectBound[0], right: rectBound[1] }\r\n };\r\n layout.position = [\r\n orient === 'vertical'\r\n ? positionMap.vertical[axisPosition]\r\n : rectBound[0],\r\n orient === 'horizontal'\r\n ? positionMap.horizontal[axisPosition]\r\n : rectBound[3]\r\n ];\r\n var r = { horizontal: 0, vertical: 1 };\r\n layout.rotation = Math.PI / 2 * r[orient];\r\n var directionMap = { top: -1, bottom: 1, right: 1, left: -1 };\r\n layout.labelDirection = layout.tickDirection =\r\n layout.nameDirection = directionMap[axisPosition];\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotation = opt.rotate;\r\n labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\r\n layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\r\n layout.z2 = 1;\r\n return layout;\r\n }\n\n var axisBuilderAttrs$2 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs$1 = ['splitArea', 'splitLine'];\r\n var SingleAxisView = (function (_super) {\r\n __extends(SingleAxisView, _super);\r\n function SingleAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SingleAxisView.type;\r\n _this.axisPointerClass = 'SingleAxisPointer';\r\n return _this;\r\n }\r\n SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n var layout = layout$2(axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, layout);\r\n each(axisBuilderAttrs$2, axisBuilder.add, axisBuilder);\r\n group.add(this._axisGroup);\r\n group.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs$1, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders$1[name](this, this.group, this._axisGroup, axisModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n SingleAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n SingleAxisView.type = 'singleAxis';\r\n return SingleAxisView;\r\n }(AxisView));\r\n var axisElementBuilders$1 = {\r\n splitLine: function (axisView, group, axisGroup, axisModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineWidth = lineStyleModel.get('width');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var gridRect = axisModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var splitLines = [];\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n for (var i = 0; i < ticksCoords.length; ++i) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: {\r\n lineWidth: lineWidth\r\n },\r\n silent: true\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; ++i) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: {\r\n stroke: lineColors[i % lineColors.length],\r\n lineDash: lineStyleModel.getLineDash(lineWidth),\r\n lineWidth: lineWidth\r\n },\r\n silent: true\r\n }));\r\n }\r\n },\r\n splitArea: function (axisView, group, axisGroup, axisModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\r\n }\r\n };\r\n ComponentView.registerClass(SingleAxisView);\n\n var SingleAxisModel = (function (_super) {\r\n __extends(SingleAxisModel, _super);\r\n function SingleAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SingleAxisModel.type;\r\n return _this;\r\n }\r\n SingleAxisModel.prototype.getCoordSysModel = function () {\r\n return this;\r\n };\r\n SingleAxisModel.type = 'singleAxis';\r\n SingleAxisModel.layoutMode = 'box';\r\n SingleAxisModel.defaultOption = {\r\n left: '5%',\r\n top: '5%',\r\n right: '5%',\r\n bottom: '5%',\r\n type: 'value',\r\n position: 'bottom',\r\n orient: 'horizontal',\r\n axisLine: {\r\n show: true,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n tooltip: {\r\n show: true\r\n },\r\n axisTick: {\r\n show: true,\r\n length: 6,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n interval: 'auto'\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n type: 'dashed',\r\n opacity: 0.2\r\n }\r\n }\r\n };\r\n return SingleAxisModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(SingleAxisModel);\r\n mixin(SingleAxisModel, AxisModelCommonMixin.prototype);\r\n axisModelCreator('single', SingleAxisModel, SingleAxisModel.defaultOption);\n\n function findPointFromSeries (finder, ecModel) {\r\n var point = [];\r\n var seriesIndex = finder.seriesIndex;\r\n var seriesModel;\r\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\r\n return {\r\n point: []\r\n };\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, finder);\r\n if (dataIndex == null || dataIndex < 0 || isArray(dataIndex)) {\r\n return { point: [] };\r\n }\r\n var el = data.getItemGraphicEl(dataIndex);\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (seriesModel.getTooltipPosition) {\r\n point = seriesModel.getTooltipPosition(dataIndex) || [];\r\n }\r\n else if (coordSys && coordSys.dataToPoint) {\r\n if (finder.isStacked) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueAxisDim = valueAxis.dim;\r\n var baseAxisDim = baseAxis.dim;\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\r\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\r\n point = coordSys.dataToPoint(stackedData) || [];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }), dataIndex)) || [];\r\n }\r\n }\r\n else if (el) {\r\n var rect = el.getBoundingRect().clone();\r\n rect.applyTransform(el.transform);\r\n point = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n return { point: point, el: el };\r\n }\n\n var inner$c = makeInner();\r\n function axisTrigger (payload, ecModel, api) {\r\n var currTrigger = payload.currTrigger;\r\n var point = [payload.x, payload.y];\r\n var finder = payload;\r\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer')\r\n .coordSysAxesInfo;\r\n if (!coordSysAxesInfo) {\r\n return;\r\n }\r\n if (illegalPoint(point)) {\r\n point = findPointFromSeries({\r\n seriesIndex: finder.seriesIndex,\r\n dataIndex: finder.dataIndex\r\n }, ecModel).point;\r\n }\r\n var isIllegalPoint = illegalPoint(point);\r\n var inputAxesInfo = finder.axesInfo;\r\n var axesInfo = coordSysAxesInfo.axesInfo;\r\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\r\n var outputPayload = {};\r\n var showValueMap = {};\r\n var dataByCoordSys = {\r\n list: [],\r\n map: {}\r\n };\r\n var updaters = {\r\n showPointer: curry(showPointer, showValueMap),\r\n showTooltip: curry(showTooltip, dataByCoordSys)\r\n };\r\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\r\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\r\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\r\n var axis = axisInfo.axis;\r\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\r\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\r\n var val = inputAxisInfo && inputAxisInfo.value;\r\n if (val == null && !isIllegalPoint) {\r\n val = axis.pointToData(point);\r\n }\r\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\r\n }\r\n });\r\n });\r\n var linkTriggers = {};\r\n each(axesInfo, function (tarAxisInfo, tarKey) {\r\n var linkGroup = tarAxisInfo.linkGroup;\r\n if (linkGroup && !showValueMap[tarKey]) {\r\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\r\n var srcValItem = showValueMap[srcKey];\r\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\r\n var val = srcValItem.value;\r\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\r\n linkTriggers[tarAxisInfo.key] = val;\r\n }\r\n });\r\n }\r\n });\r\n each(linkTriggers, function (val, tarKey) {\r\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\r\n });\r\n updateModelActually(showValueMap, axesInfo, outputPayload);\r\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\r\n dispatchHighDownActually(axesInfo, dispatchAction, api);\r\n return outputPayload;\r\n }\r\n function processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\r\n var axis = axisInfo.axis;\r\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\r\n return;\r\n }\r\n if (!axisInfo.involveSeries) {\r\n updaters.showPointer(axisInfo, newValue);\r\n return;\r\n }\r\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var snapToValue = payloadInfo.snapToValue;\r\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\r\n extend(outputFinder, payloadBatch[0]);\r\n }\r\n if (!noSnap && axisInfo.snap) {\r\n if (axis.containData(snapToValue) && snapToValue != null) {\r\n newValue = snapToValue;\r\n }\r\n }\r\n updaters.showPointer(axisInfo, newValue, payloadBatch);\r\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\r\n }\r\n function buildPayloadsBySeries(value, axisInfo) {\r\n var axis = axisInfo.axis;\r\n var dim = axis.dim;\r\n var snapToValue = value;\r\n var payloadBatch = [];\r\n var minDist = Number.MAX_VALUE;\r\n var minDiff = -1;\r\n each(axisInfo.seriesModels, function (series, idx) {\r\n var dataDim = series.getData().mapDimensionsAll(dim);\r\n var seriesNestestValue;\r\n var dataIndices;\r\n if (series.getAxisTooltipData) {\r\n var result = series.getAxisTooltipData(dataDim, value, axis);\r\n dataIndices = result.dataIndices;\r\n seriesNestestValue = result.nestestValue;\r\n }\r\n else {\r\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\r\n if (!dataIndices.length) {\r\n return;\r\n }\r\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\r\n }\r\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\r\n return;\r\n }\r\n var diff = value - seriesNestestValue;\r\n var dist = Math.abs(diff);\r\n if (dist <= minDist) {\r\n if (dist < minDist || (diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n snapToValue = seriesNestestValue;\r\n payloadBatch.length = 0;\r\n }\r\n each(dataIndices, function (dataIndex) {\r\n payloadBatch.push({\r\n seriesIndex: series.seriesIndex,\r\n dataIndexInside: dataIndex,\r\n dataIndex: series.getData().getRawIndex(dataIndex)\r\n });\r\n });\r\n }\r\n });\r\n return {\r\n payloadBatch: payloadBatch,\r\n snapToValue: snapToValue\r\n };\r\n }\r\n function showPointer(showValueMap, axisInfo, value, payloadBatch) {\r\n showValueMap[axisInfo.key] = {\r\n value: value,\r\n payloadBatch: payloadBatch\r\n };\r\n }\r\n function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var axis = axisInfo.axis;\r\n var axisModel = axis.model;\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\r\n return;\r\n }\r\n var coordSysModel = axisInfo.coordSys.model;\r\n var coordSysKey = makeKey(coordSysModel);\r\n var coordSysItem = dataByCoordSys.map[coordSysKey];\r\n if (!coordSysItem) {\r\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\r\n coordSysId: coordSysModel.id,\r\n coordSysIndex: coordSysModel.componentIndex,\r\n coordSysType: coordSysModel.type,\r\n coordSysMainType: coordSysModel.mainType,\r\n dataByAxis: []\r\n };\r\n dataByCoordSys.list.push(coordSysItem);\r\n }\r\n coordSysItem.dataByAxis.push({\r\n axisDim: axis.dim,\r\n axisIndex: axisModel.componentIndex,\r\n axisType: axisModel.type,\r\n axisId: axisModel.id,\r\n value: value,\r\n valueLabelOpt: {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n },\r\n seriesDataIndices: payloadBatch.slice()\r\n });\r\n }\r\n function updateModelActually(showValueMap, axesInfo, outputPayload) {\r\n var outputAxesInfo = outputPayload.axesInfo = [];\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n var valItem = showValueMap[key];\r\n if (valItem) {\r\n !axisInfo.useHandle && (option.status = 'show');\r\n option.value = valItem.value;\r\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\r\n }\r\n else {\r\n !axisInfo.useHandle && (option.status = 'hide');\r\n }\r\n option.status === 'show' && outputAxesInfo.push({\r\n axisDim: axisInfo.axis.dim,\r\n axisIndex: axisInfo.axis.model.componentIndex,\r\n value: option.value\r\n });\r\n });\r\n }\r\n function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\r\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\r\n dispatchAction({ type: 'hideTip' });\r\n return;\r\n }\r\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\r\n dispatchAction({\r\n type: 'showTip',\r\n escapeConnect: true,\r\n x: point[0],\r\n y: point[1],\r\n tooltipOption: payload.tooltipOption,\r\n position: payload.position,\r\n dataIndexInside: sampleItem.dataIndexInside,\r\n dataIndex: sampleItem.dataIndex,\r\n seriesIndex: sampleItem.seriesIndex,\r\n dataByCoordSys: dataByCoordSys.list\r\n });\r\n }\r\n function dispatchHighDownActually(axesInfo, dispatchAction, api) {\r\n var zr = api.getZr();\r\n var highDownKey = 'axisPointerLastHighlights';\r\n var lastHighlights = inner$c(zr)[highDownKey] || {};\r\n var newHighlights = inner$c(zr)[highDownKey] = {};\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\r\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\r\n newHighlights[key] = batchItem;\r\n });\r\n });\r\n var toHighlight = [];\r\n var toDownplay = [];\r\n each(lastHighlights, function (batchItem, key) {\r\n !newHighlights[key] && toDownplay.push(batchItem);\r\n });\r\n each(newHighlights, function (batchItem, key) {\r\n !lastHighlights[key] && toHighlight.push(batchItem);\r\n });\r\n toDownplay.length && api.dispatchAction({\r\n type: 'downplay',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toDownplay\r\n });\r\n toHighlight.length && api.dispatchAction({\r\n type: 'highlight',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toHighlight\r\n });\r\n }\r\n function findInputAxisInfo(inputAxesInfo, axisInfo) {\r\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\r\n var inputAxisInfo = inputAxesInfo[i];\r\n if (axisInfo.axis.dim === inputAxisInfo.axisDim\r\n && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\r\n return inputAxisInfo;\r\n }\r\n }\r\n }\r\n function makeMapperParam(axisInfo) {\r\n var axisModel = axisInfo.axis.model;\r\n var item = {};\r\n var dim = item.axisDim = axisInfo.axis.dim;\r\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\r\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\r\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\r\n return item;\r\n }\r\n function illegalPoint(point) {\r\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\r\n }\n\n var inner$d = makeInner();\r\n var each$8 = each;\r\n function register(key, api, handler) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n inner$d(zr).records || (inner$d(zr).records = {});\r\n initGlobalListeners(zr, api);\r\n var record = inner$d(zr).records[key] || (inner$d(zr).records[key] = {});\r\n record.handler = handler;\r\n }\r\n function initGlobalListeners(zr, api) {\r\n if (inner$d(zr).initialized) {\r\n return;\r\n }\r\n inner$d(zr).initialized = true;\r\n useHandler('click', curry(doEnter, 'click'));\r\n useHandler('mousemove', curry(doEnter, 'mousemove'));\r\n useHandler('globalout', onLeave);\r\n function useHandler(eventType, cb) {\r\n zr.on(eventType, function (e) {\r\n var dis = makeDispatchAction(api);\r\n each$8(inner$d(zr).records, function (record) {\r\n record && cb(record, e, dis.dispatchAction);\r\n });\r\n dispatchTooltipFinally(dis.pendings, api);\r\n });\r\n }\r\n }\r\n function dispatchTooltipFinally(pendings, api) {\r\n var showLen = pendings.showTip.length;\r\n var hideLen = pendings.hideTip.length;\r\n var actuallyPayload;\r\n if (showLen) {\r\n actuallyPayload = pendings.showTip[showLen - 1];\r\n }\r\n else if (hideLen) {\r\n actuallyPayload = pendings.hideTip[hideLen - 1];\r\n }\r\n if (actuallyPayload) {\r\n actuallyPayload.dispatchAction = null;\r\n api.dispatchAction(actuallyPayload);\r\n }\r\n }\r\n function onLeave(record, e, dispatchAction) {\r\n record.handler('leave', null, dispatchAction);\r\n }\r\n function doEnter(currTrigger, record, e, dispatchAction) {\r\n record.handler(currTrigger, e, dispatchAction);\r\n }\r\n function makeDispatchAction(api) {\r\n var pendings = {\r\n showTip: [],\r\n hideTip: []\r\n };\r\n var dispatchAction = function (payload) {\r\n var pendingList = pendings[payload.type];\r\n if (pendingList) {\r\n pendingList.push(payload);\r\n }\r\n else {\r\n payload.dispatchAction = dispatchAction;\r\n api.dispatchAction(payload);\r\n }\r\n };\r\n return {\r\n dispatchAction: dispatchAction,\r\n pendings: pendings\r\n };\r\n }\r\n function unregister(key, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n var record = (inner$d(zr).records || {})[key];\r\n if (record) {\r\n inner$d(zr).records[key] = null;\r\n }\r\n }\n\n var AxisPointerView = (function (_super) {\r\n __extends(AxisPointerView, _super);\r\n function AxisPointerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerView.type;\r\n return _this;\r\n }\r\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var triggerOn = globalAxisPointerModel.get('triggerOn')\r\n || (globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click');\r\n register('axisPointer', api, function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none'\r\n && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\r\n dispatchAction({\r\n type: 'updateAxisPointer',\r\n currTrigger: currTrigger,\r\n x: e && e.offsetX,\r\n y: e && e.offsetY\r\n });\r\n }\r\n });\r\n };\r\n AxisPointerView.prototype.remove = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.prototype.dispose = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.type = 'axisPointer';\r\n return AxisPointerView;\r\n }(ComponentView));\r\n ComponentView.registerClass(AxisPointerView);\n\n var inner$e = makeInner();\r\n var clone$3 = clone;\r\n var bind$1 = bind;\r\n var BaseAxisPointer = (function () {\r\n function BaseAxisPointer() {\r\n this._dragging = false;\r\n this.animationThreshold = 15;\r\n }\r\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\r\n var value = axisPointerModel.get('value');\r\n var status = axisPointerModel.get('status');\r\n this._axisModel = axisModel;\r\n this._axisPointerModel = axisPointerModel;\r\n this._api = api;\r\n if (!forceRender\r\n && this._lastValue === value\r\n && this._lastStatus === status) {\r\n return;\r\n }\r\n this._lastValue = value;\r\n this._lastStatus = status;\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (!status || status === 'hide') {\r\n group && group.hide();\r\n handle && handle.hide();\r\n return;\r\n }\r\n group && group.show();\r\n handle && handle.show();\r\n var elOption = {};\r\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\r\n var graphicKey = elOption.graphicKey;\r\n if (graphicKey !== this._lastGraphicKey) {\r\n this.clear(api);\r\n }\r\n this._lastGraphicKey = graphicKey;\r\n var moveAnimation = this._moveAnimation =\r\n this.determineAnimation(axisModel, axisPointerModel);\r\n if (!group) {\r\n group = this._group = new Group();\r\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\r\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\r\n api.getZr().add(group);\r\n }\r\n else {\r\n var doUpdateProps = curry(updateProps$1, axisPointerModel, moveAnimation);\r\n this.updatePointerEl(group, elOption, doUpdateProps);\r\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\r\n }\r\n updateMandatoryProps(group, axisPointerModel, true);\r\n this._renderHandle(value);\r\n };\r\n BaseAxisPointer.prototype.remove = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.dispose = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\r\n var animation = axisPointerModel.get('animation');\r\n var axis = axisModel.axis;\r\n var isCategoryAxis = axis.type === 'category';\r\n var useSnap = axisPointerModel.get('snap');\r\n if (!useSnap && !isCategoryAxis) {\r\n return false;\r\n }\r\n if (animation === 'auto' || animation == null) {\r\n var animationThreshold = this.animationThreshold;\r\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\r\n return true;\r\n }\r\n if (useSnap) {\r\n var seriesDataCount = getAxisInfo(axisModel).seriesDataCount;\r\n var axisExtent = axis.getExtent();\r\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\r\n }\r\n return false;\r\n }\r\n return animation === true;\r\n };\r\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n };\r\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\r\n var pointerOption = elOption.pointer;\r\n if (pointerOption) {\r\n var pointerEl = inner$e(group).pointerEl = new graphic[pointerOption.type](clone$3(elOption.pointer));\r\n group.add(pointerEl);\r\n }\r\n };\r\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\r\n if (elOption.label) {\r\n var labelEl = inner$e(group).labelEl = new ZRText(clone$3(elOption.label));\r\n group.add(labelEl);\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\r\n var pointerEl = inner$e(group).pointerEl;\r\n if (pointerEl && elOption.pointer) {\r\n pointerEl.setStyle(elOption.pointer.style);\r\n updateProps(pointerEl, { shape: elOption.pointer.shape });\r\n }\r\n };\r\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\r\n var labelEl = inner$e(group).labelEl;\r\n if (labelEl) {\r\n labelEl.setStyle(elOption.label.style);\r\n updateProps(labelEl, {\r\n x: elOption.label.x,\r\n y: elOption.label.y\r\n });\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype._renderHandle = function (value) {\r\n if (this._dragging || !this.updateHandleTransform) {\r\n return;\r\n }\r\n var axisPointerModel = this._axisPointerModel;\r\n var zr = this._api.getZr();\r\n var handle = this._handle;\r\n var handleModel = axisPointerModel.getModel('handle');\r\n var status = axisPointerModel.get('status');\r\n if (!handleModel.get('show') || !status || status === 'hide') {\r\n handle && zr.remove(handle);\r\n this._handle = null;\r\n return;\r\n }\r\n var isInit;\r\n if (!this._handle) {\r\n isInit = true;\r\n handle = this._handle = createIcon(handleModel.get('icon'), {\r\n cursor: 'move',\r\n draggable: true,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n onmousedown: bind$1(this._onHandleDragMove, this, 0, 0),\r\n drift: bind$1(this._onHandleDragMove, this),\r\n ondragend: bind$1(this._onHandleDragEnd, this)\r\n });\r\n zr.add(handle);\r\n }\r\n updateMandatoryProps(handle, axisPointerModel, false);\r\n handle.setStyle(handleModel.getItemStyle(null, [\r\n 'color', 'borderColor', 'borderWidth', 'opacity',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ]));\r\n var handleSize = handleModel.get('size');\r\n if (!isArray(handleSize)) {\r\n handleSize = [handleSize, handleSize];\r\n }\r\n handle.scaleX = handleSize[0] / 2;\r\n handle.scaleY = handleSize[1] / 2;\r\n createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\r\n this._moveHandleToValue(value, isInit);\r\n };\r\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\r\n updateProps$1(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\r\n };\r\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n this._dragging = true;\r\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\r\n this._payloadInfo = trans;\r\n handle.stopAnimation();\r\n handle.attr(getHandleTransProps(trans));\r\n inner$e(handle).lastProp = null;\r\n this._doDispatchAxisPointer();\r\n };\r\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var payloadInfo = this._payloadInfo;\r\n var axisModel = this._axisModel;\r\n this._api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payloadInfo.cursorPoint[0],\r\n y: payloadInfo.cursorPoint[1],\r\n tooltipOption: payloadInfo.tooltipOption,\r\n axesInfo: [{\r\n axisDim: axisModel.axis.dim,\r\n axisIndex: axisModel.componentIndex\r\n }]\r\n });\r\n };\r\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\r\n this._dragging = false;\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var value = this._axisPointerModel.get('value');\r\n this._moveHandleToValue(value);\r\n this._api.dispatchAction({\r\n type: 'hideTip'\r\n });\r\n };\r\n BaseAxisPointer.prototype.clear = function (api) {\r\n this._lastValue = null;\r\n this._lastStatus = null;\r\n var zr = api.getZr();\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (zr && group) {\r\n this._lastGraphicKey = null;\r\n group && zr.remove(group);\r\n handle && zr.remove(handle);\r\n this._group = null;\r\n this._handle = null;\r\n this._payloadInfo = null;\r\n }\r\n };\r\n BaseAxisPointer.prototype.doClear = function () {\r\n };\r\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n };\r\n return BaseAxisPointer;\r\n }());\r\n function updateProps$1(animationModel, moveAnimation, el, props) {\r\n if (!propsEqual(inner$e(el).lastProp, props)) {\r\n inner$e(el).lastProp = props;\r\n moveAnimation\r\n ? updateProps(el, props, animationModel)\r\n : (el.stopAnimation(), el.attr(props));\r\n }\r\n }\r\n function propsEqual(lastProps, newProps) {\r\n if (isObject(lastProps) && isObject(newProps)) {\r\n var equals_1 = true;\r\n each(newProps, function (item, key) {\r\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\r\n });\r\n return !!equals_1;\r\n }\r\n else {\r\n return lastProps === newProps;\r\n }\r\n }\r\n function updateLabelShowHide(labelEl, axisPointerModel) {\r\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\r\n }\r\n function getHandleTransProps(trans) {\r\n return {\r\n x: trans.x || 0,\r\n y: trans.y || 0,\r\n rotation: trans.rotation || 0\r\n };\r\n }\r\n function updateMandatoryProps(group, axisPointerModel, silent) {\r\n var z = axisPointerModel.get('z');\r\n var zlevel = axisPointerModel.get('zlevel');\r\n group && group.traverse(function (el) {\r\n if (el.type !== 'group') {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n el.silent = silent;\r\n }\r\n });\r\n }\n\n function buildElStyle(axisPointerModel) {\r\n var axisPointerType = axisPointerModel.get('type');\r\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\r\n var style;\r\n if (axisPointerType === 'line') {\r\n style = styleModel.getLineStyle();\r\n style.fill = null;\r\n }\r\n else if (axisPointerType === 'shadow') {\r\n style = styleModel.getAreaStyle();\r\n style.stroke = null;\r\n }\r\n return style;\r\n }\r\n function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\r\n var value = axisPointerModel.get('value');\r\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n });\r\n var labelModel = axisPointerModel.getModel('label');\r\n var paddings = normalizeCssArray$1(labelModel.get('padding') || 0);\r\n var font = labelModel.getFont();\r\n var textRect = getBoundingRect(text, font);\r\n var position = labelPos.position;\r\n var width = textRect.width + paddings[1] + paddings[3];\r\n var height = textRect.height + paddings[0] + paddings[2];\r\n var align = labelPos.align;\r\n align === 'right' && (position[0] -= width);\r\n align === 'center' && (position[0] -= width / 2);\r\n var verticalAlign = labelPos.verticalAlign;\r\n verticalAlign === 'bottom' && (position[1] -= height);\r\n verticalAlign === 'middle' && (position[1] -= height / 2);\r\n confineInContainer(position, width, height, api);\r\n var bgColor = labelModel.get('backgroundColor');\r\n if (!bgColor || bgColor === 'auto') {\r\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n }\r\n elOption.label = {\r\n x: position[0],\r\n y: position[1],\r\n style: {\r\n text: text,\r\n textFont: font,\r\n fill: labelModel.getTextColor(),\r\n padding: paddings,\r\n backgroundColor: bgColor,\r\n borderColor: labelModel.get('borderColor') || 'transparent',\r\n borderRadius: labelModel.get('borderRadius'),\r\n borderWidth: labelModel.get('borderWidth') || 0,\r\n shadowBlur: labelModel.get('shadowBlur'),\r\n shadowColor: labelModel.get('shadowColor'),\r\n shadowOffsetX: labelModel.get('shadowOffsetX'),\r\n shadowOffsetY: labelModel.get('shadowOffsetY')\r\n },\r\n z2: 10\r\n };\r\n }\r\n function confineInContainer(position, width, height, api) {\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n position[0] = Math.min(position[0] + width, viewWidth) - width;\r\n position[1] = Math.min(position[1] + height, viewHeight) - height;\r\n position[0] = Math.max(position[0], 0);\r\n position[1] = Math.max(position[1], 0);\r\n }\r\n function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\r\n value = axis.scale.parse(value);\r\n var text = axis.scale.getLabel({\r\n value: value\r\n }, {\r\n precision: opt.precision\r\n });\r\n var formatter = opt.formatter;\r\n if (formatter) {\r\n var params_1 = {\r\n value: getAxisRawValue(axis, { value: value }),\r\n axisDimension: axis.dim,\r\n axisIndex: axis.index,\r\n seriesData: []\r\n };\r\n each(seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams && params_1.seriesData.push(dataParams);\r\n });\r\n if (isString(formatter)) {\r\n text = formatter.replace('{value}', text);\r\n }\r\n else if (isFunction(formatter)) {\r\n text = formatter(params_1);\r\n }\r\n }\r\n return text;\r\n }\r\n function getTransformedPosition(axis, value, layoutInfo) {\r\n var transform = create$1();\r\n rotate(transform, transform, layoutInfo.rotation);\r\n translate(transform, transform, layoutInfo.position);\r\n return applyTransform$1([\r\n axis.dataToCoord(value),\r\n (layoutInfo.labelOffset || 0)\r\n + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)\r\n ], transform);\r\n }\r\n function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\r\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\r\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\r\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\r\n align: textLayout.textAlign,\r\n verticalAlign: textLayout.textVerticalAlign\r\n });\r\n }\r\n function makeLineShape(p1, p2, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x1: p1[xDimIndex],\r\n y1: p1[1 - xDimIndex],\r\n x2: p2[xDimIndex],\r\n y2: p2[1 - xDimIndex]\r\n };\r\n }\r\n function makeRectShape(xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n }\r\n function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\r\n return {\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: r,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n clockwise: true\r\n };\r\n }\n\n var CartesianAxisPointer = (function (_super) {\r\n __extends(CartesianAxisPointer, _super);\r\n function CartesianAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisPointerType = axisPointerModel.get('type');\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$1(grid.model, axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$1(axisModel.axis.grid.model, axisModel, {\r\n labelInside: false\r\n });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var pos = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisExtent = axis.getGlobalExtent(true);\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var dimIndex = axis.dim === 'x' ? 0 : 1;\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n var tooltipOptions = [\r\n { verticalAlign: 'middle' },\r\n { align: 'center' }\r\n ];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: tooltipOptions[dimIndex]\r\n };\r\n };\r\n return CartesianAxisPointer;\r\n }(BaseAxisPointer));\r\n function getCartesian(grid, axis) {\r\n var opt = {};\r\n opt[axis.dim + 'AxisIndex'] = axis.index;\r\n return grid.getCartesian(opt);\r\n }\r\n var pointerShapeBuilder = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getAxisDimIndex(axis) {\r\n return axis.dim === 'x' ? 0 : 1;\r\n }\r\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n\n var AxisPointerModel = (function (_super) {\r\n __extends(AxisPointerModel, _super);\r\n function AxisPointerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerModel.type;\r\n return _this;\r\n }\r\n AxisPointerModel.type = 'axisPointer';\r\n AxisPointerModel.defaultOption = {\r\n show: 'auto',\r\n zlevel: 0,\r\n z: 50,\r\n type: 'line',\r\n snap: false,\r\n triggerTooltip: true,\r\n value: null,\r\n status: null,\r\n link: [],\r\n animation: null,\r\n animationDurationUpdate: 200,\r\n lineStyle: {\r\n color: '#B9BEC9',\r\n width: 1,\r\n type: 'dashed'\r\n },\r\n shadowStyle: {\r\n color: 'rgba(210,219,238,0.2)'\r\n },\r\n label: {\r\n show: true,\r\n formatter: null,\r\n precision: 'auto',\r\n margin: 3,\r\n color: '#fff',\r\n padding: [5, 7, 5, 7],\r\n backgroundColor: 'auto',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderRadius: 3\r\n },\r\n handle: {\r\n show: false,\r\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\r\n size: 45,\r\n margin: 50,\r\n color: '#333',\r\n shadowBlur: 3,\r\n shadowColor: '#aaa',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 2,\r\n throttle: 40\r\n }\r\n };\r\n return AxisPointerModel;\r\n }(ComponentModel));\n\n ComponentModel.registerClass(AxisPointerModel);\r\n registerPreprocessor(function (option) {\r\n if (option) {\r\n (!option.axisPointer || option.axisPointer.length === 0)\r\n && (option.axisPointer = {});\r\n var link = option.axisPointer.link;\r\n if (link && !isArray(link)) {\r\n option.axisPointer.link = [link];\r\n }\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\r\n ecModel.getComponent('axisPointer').coordSysAxesInfo =\r\n collect(ecModel, api);\r\n });\r\n registerAction({\r\n type: 'updateAxisPointer',\r\n event: 'updateAxisPointer',\r\n update: ':updateAxisPointer'\r\n }, axisTrigger);\n\n var XY = ['x', 'y'];\r\n var WH = ['width', 'height'];\r\n var SingleAxisPointer = (function (_super) {\r\n __extends(SingleAxisPointer, _super);\r\n function SingleAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var coordSys = axis.coordinateSystem;\r\n var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\r\n var pixelValue = coordSys.dataToPoint(value)[0];\r\n var axisPointerType = axisPointerModel.get('type');\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder$1[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$2(axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$2(axisModel, { labelInside: false });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var position = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: position[0],\r\n y: position[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var coordSys = axis.coordinateSystem;\r\n var dimIndex = getPointDimIndex(axis);\r\n var axisExtent = getGlobalExtent(coordSys, dimIndex);\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: {\r\n verticalAlign: 'middle'\r\n }\r\n };\r\n };\r\n return SingleAxisPointer;\r\n }(BaseAxisPointer));\r\n var pointerShapeBuilder$1 = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = axis.getBandWidth();\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getPointDimIndex(axis) {\r\n return axis.isHorizontal() ? 0 : 1;\r\n }\r\n function getGlobalExtent(coordSys, dimIndex) {\r\n var rect = coordSys.getRect();\r\n return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\r\n }\r\n AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n\n extendComponentView({\r\n type: 'single'\r\n });\n\n var DATA_NAME_INDEX = 2;\r\n var ThemeRiverSeriesModel = (function (_super) {\r\n __extends(ThemeRiverSeriesModel, _super);\r\n function ThemeRiverSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ThemeRiverSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n ThemeRiverSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n };\r\n ThemeRiverSeriesModel.prototype.fixData = function (data) {\r\n var rawDataLength = data.length;\r\n var groupResult = groupData(data, function (item) {\r\n return item[2];\r\n });\r\n var layData = [];\r\n groupResult.buckets.each(function (items, key) {\r\n layData.push({\r\n name: key,\r\n dataList: items\r\n });\r\n });\r\n var layerNum = layData.length;\r\n var largestLayer = -1;\r\n var index = -1;\r\n for (var i = 0; i < layerNum; ++i) {\r\n var len = layData[i].dataList.length;\r\n if (len > largestLayer) {\r\n largestLayer = len;\r\n index = i;\r\n }\r\n }\r\n for (var k = 0; k < layerNum; ++k) {\r\n if (k === index) {\r\n continue;\r\n }\r\n var name_1 = layData[k].name;\r\n for (var j = 0; j < largestLayer; ++j) {\r\n var timeValue = layData[index].dataList[j][0];\r\n var length_1 = layData[k].dataList.length;\r\n var keyIndex = -1;\r\n for (var l = 0; l < length_1; ++l) {\r\n var value = layData[k].dataList[l][0];\r\n if (value === timeValue) {\r\n keyIndex = l;\r\n break;\r\n }\r\n }\r\n if (keyIndex === -1) {\r\n data[rawDataLength] = [timeValue, 0, name_1];\r\n rawDataLength++;\r\n }\r\n }\r\n }\r\n return data;\r\n };\r\n ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n var axisType = singleAxisModel.get('type');\r\n var filterData = filter(option.data, function (dataItem) {\r\n return dataItem[2] !== undefined;\r\n });\r\n var data = this.fixData(filterData || []);\r\n var nameList = [];\r\n var nameMap = this.nameMap = createHashMap();\r\n var count = 0;\r\n for (var i = 0; i < data.length; ++i) {\r\n nameList.push(data[i][DATA_NAME_INDEX]);\r\n if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\r\n nameMap.set(data[i][DATA_NAME_INDEX], count);\r\n count++;\r\n }\r\n }\r\n var dimensionsInfo = createDimensions(data, {\r\n coordDimensions: ['single'],\r\n dimensionsDefine: [\r\n {\r\n name: 'time',\r\n type: getDimensionTypeByAxis(axisType)\r\n },\r\n {\r\n name: 'value',\r\n type: 'float'\r\n },\r\n {\r\n name: 'name',\r\n type: 'ordinal'\r\n }\r\n ],\r\n encodeDefine: {\r\n single: 0,\r\n value: 1,\r\n itemName: 2\r\n }\r\n });\r\n var list = new List(dimensionsInfo, this);\r\n list.initData(data);\r\n return list;\r\n };\r\n ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\r\n var data = this.getData();\r\n var lenCount = data.count();\r\n var indexArr = [];\r\n for (var i = 0; i < lenCount; ++i) {\r\n indexArr[i] = i;\r\n }\r\n var timeDim = data.mapDimension('single');\r\n var groupResult = groupData(indexArr, function (index) {\r\n return data.get('name', index);\r\n });\r\n var layerSeries = [];\r\n groupResult.buckets.each(function (items, key) {\r\n items.sort(function (index1, index2) {\r\n return data.get(timeDim, index1) - data.get(timeDim, index2);\r\n });\r\n layerSeries.push({\r\n name: key,\r\n indices: items\r\n });\r\n });\r\n return layerSeries;\r\n };\r\n ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\r\n if (!isArray(dim)) {\r\n dim = dim ? [dim] : [];\r\n }\r\n var data = this.getData();\r\n var layerSeries = this.getLayerSeries();\r\n var indices = [];\r\n var layerNum = layerSeries.length;\r\n var nestestValue;\r\n for (var i = 0; i < layerNum; ++i) {\r\n var minDist = Number.MAX_VALUE;\r\n var nearestIdx = -1;\r\n var pointNum = layerSeries[i].indices.length;\r\n for (var j = 0; j < pointNum; ++j) {\r\n var theValue = data.get(dim[0], layerSeries[i].indices[j]);\r\n var dist = Math.abs(theValue - value);\r\n if (dist <= minDist) {\r\n nestestValue = theValue;\r\n minDist = dist;\r\n nearestIdx = layerSeries[i].indices[j];\r\n }\r\n }\r\n indices.push(nearestIdx);\r\n }\r\n return { dataIndices: indices, nestestValue: nestestValue };\r\n };\r\n ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var htmlName = data.getName(dataIndex);\r\n var htmlValue = data.get(data.mapDimension('value'), dataIndex);\r\n if (isNaN(htmlValue) || htmlValue == null) {\r\n htmlValue = '-';\r\n }\r\n if (renderMode === 'richText') {\r\n return encodeHTML(htmlName) + ': ' + htmlValue;\r\n }\r\n return '
'\r\n + concatTooltipHtml(htmlName, htmlValue)\r\n + '
';\r\n };\r\n ThemeRiverSeriesModel.type = 'series.themeRiver';\r\n ThemeRiverSeriesModel.dependencies = ['singleAxis'];\r\n ThemeRiverSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'singleAxis',\r\n boundaryGap: ['10%', '10%'],\r\n singleAxisIndex: 0,\r\n animationEasing: 'linear',\r\n label: {\r\n margin: 4,\r\n show: true,\r\n position: 'left',\r\n fontSize: 11\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return ThemeRiverSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ThemeRiverSeriesModel);\n\n var ThemeRiverView = (function (_super) {\r\n __extends(ThemeRiverView, _super);\r\n function ThemeRiverView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ThemeRiverView.type;\r\n _this._layers = [];\r\n return _this;\r\n }\r\n ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var self = this;\r\n var group = this.group;\r\n var layersSeries = seriesModel.getLayerSeries();\r\n var layoutInfo = data.getLayout('layoutInfo');\r\n var rect = layoutInfo.rect;\r\n var boundaryGap = layoutInfo.boundaryGap;\r\n group.x = 0;\r\n group.y = rect.y + boundaryGap[0];\r\n function keyGetter(item) {\r\n return item.name;\r\n }\r\n var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\r\n var newLayersGroups = [];\r\n dataDiffer\r\n .add(bind(process, this, 'add'))\r\n .update(bind(process, this, 'update'))\r\n .remove(bind(process, this, 'remove'))\r\n .execute();\r\n function process(status, idx, oldIdx) {\r\n var oldLayersGroups = self._layers;\r\n if (status === 'remove') {\r\n group.remove(oldLayersGroups[idx]);\r\n return;\r\n }\r\n var points0 = [];\r\n var points1 = [];\r\n var style;\r\n var indices = layersSeries[idx].indices;\r\n var j = 0;\r\n for (; j < indices.length; j++) {\r\n var layout = data.getItemLayout(indices[j]);\r\n var x = layout.x;\r\n var y0 = layout.y0;\r\n var y = layout.y;\r\n points0.push([x, y0]);\r\n points1.push([x, y0 + y]);\r\n style = data.getItemVisual(indices[j], 'style');\r\n }\r\n var polygon;\r\n var textLayout = data.getItemLayout(indices[0]);\r\n var labelModel = seriesModel.getModel('label');\r\n var margin = labelModel.get('margin');\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n if (status === 'add') {\r\n var layerGroup = newLayersGroups[idx] = new Group();\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points0,\r\n stackedOnPoints: points1,\r\n smooth: 0.4,\r\n stackedOnSmooth: 0.4,\r\n smoothConstraint: false\r\n },\r\n z2: 0\r\n });\r\n layerGroup.add(polygon);\r\n group.add(layerGroup);\r\n if (seriesModel.isAnimationEnabled()) {\r\n polygon.setClipPath(createGridClipShape$2(polygon.getBoundingRect(), seriesModel, function () {\r\n polygon.removeClipPath();\r\n }));\r\n }\r\n }\r\n else {\r\n var layerGroup = oldLayersGroups[oldIdx];\r\n polygon = layerGroup.childAt(0);\r\n group.add(layerGroup);\r\n newLayersGroups[idx] = layerGroup;\r\n updateProps(polygon, {\r\n shape: {\r\n points: points0,\r\n stackedOnPoints: points1\r\n }\r\n }, seriesModel);\r\n }\r\n setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\r\n labelDataIndex: indices[j - 1],\r\n defaultText: data.getName(indices[j - 1]),\r\n inheritColor: style.fill\r\n }, {\r\n normal: {\r\n verticalAlign: 'middle'\r\n }\r\n });\r\n polygon.setTextConfig({\r\n position: null,\r\n local: true\r\n });\r\n var labelEl = polygon.getTextContent();\r\n if (labelEl) {\r\n labelEl.x = textLayout.x - margin;\r\n labelEl.y = textLayout.y0 + textLayout.y / 2;\r\n }\r\n polygon.useStyle(style);\r\n data.setItemGraphicEl(idx, polygon);\r\n setStatesStylesFromModel(polygon, seriesModel);\r\n enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n this._layersSeries = layersSeries;\r\n this._layers = newLayersGroups;\r\n };\r\n ThemeRiverView.type = 'themeRiver';\r\n return ThemeRiverView;\r\n }(ChartView));\r\n function createGridClipShape$2(rect, seriesModel, cb) {\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x - 10,\r\n y: rect.y - 10,\r\n width: 0,\r\n height: rect.height + 20\r\n }\r\n });\r\n initProps(rectEl, {\r\n shape: {\r\n x: rect.x - 50,\r\n width: rect.width + 100,\r\n height: rect.height + 20\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n ChartView.registerClass(ThemeRiverView);\n\n function themeRiverLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var single = seriesModel.coordinateSystem;\r\n var layoutInfo = {};\r\n var rect = single.getRect();\r\n layoutInfo.rect = rect;\r\n var boundaryGap = seriesModel.get('boundaryGap');\r\n var axis = single.getAxis();\r\n layoutInfo.boundaryGap = boundaryGap;\r\n if (axis.orient === 'horizontal') {\r\n boundaryGap[0] = parsePercent$2(boundaryGap[0], rect.height);\r\n boundaryGap[1] = parsePercent$2(boundaryGap[1], rect.height);\r\n var height = rect.height - boundaryGap[0] - boundaryGap[1];\r\n themeRiverLayout$1(data, seriesModel, height);\r\n }\r\n else {\r\n boundaryGap[0] = parsePercent$2(boundaryGap[0], rect.width);\r\n boundaryGap[1] = parsePercent$2(boundaryGap[1], rect.width);\r\n var width = rect.width - boundaryGap[0] - boundaryGap[1];\r\n themeRiverLayout$1(data, seriesModel, width);\r\n }\r\n data.setLayout('layoutInfo', layoutInfo);\r\n });\r\n }\r\n function themeRiverLayout$1(data, seriesModel, height) {\r\n if (!data.count()) {\r\n return;\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n var layerSeries = seriesModel.getLayerSeries();\r\n var timeDim = data.mapDimension('single');\r\n var valueDim = data.mapDimension('value');\r\n var layerPoints = map(layerSeries, function (singleLayer) {\r\n return map(singleLayer.indices, function (idx) {\r\n var pt = coordSys.dataToPoint(data.get(timeDim, idx));\r\n pt[1] = data.get(valueDim, idx);\r\n return pt;\r\n });\r\n });\r\n var base = computeBaseline(layerPoints);\r\n var baseLine = base.y0;\r\n var ky = height / base.max;\r\n var n = layerSeries.length;\r\n var m = layerSeries[0].indices.length;\r\n var baseY0;\r\n for (var j = 0; j < m; ++j) {\r\n baseY0 = baseLine[j] * ky;\r\n data.setItemLayout(layerSeries[0].indices[j], {\r\n layerIndex: 0,\r\n x: layerPoints[0][j][0],\r\n y0: baseY0,\r\n y: layerPoints[0][j][1] * ky\r\n });\r\n for (var i = 1; i < n; ++i) {\r\n baseY0 += layerPoints[i - 1][j][1] * ky;\r\n data.setItemLayout(layerSeries[i].indices[j], {\r\n layerIndex: i,\r\n x: layerPoints[i][j][0],\r\n y0: baseY0,\r\n y: layerPoints[i][j][1] * ky\r\n });\r\n }\r\n }\r\n }\r\n function computeBaseline(data) {\r\n var layerNum = data.length;\r\n var pointNum = data[0].length;\r\n var sums = [];\r\n var y0 = [];\r\n var max = 0;\r\n for (var i = 0; i < pointNum; ++i) {\r\n var temp = 0;\r\n for (var j = 0; j < layerNum; ++j) {\r\n temp += data[j][i][1];\r\n }\r\n if (temp > max) {\r\n max = temp;\r\n }\r\n sums.push(temp);\r\n }\r\n for (var k = 0; k < pointNum; ++k) {\r\n y0[k] = (max - sums[k]) / 2;\r\n }\r\n max = 0;\r\n for (var l = 0; l < pointNum; ++l) {\r\n var sum = sums[l] + y0[l];\r\n if (sum > max) {\r\n max = sum;\r\n }\r\n }\r\n return {\r\n y0: y0,\r\n max: max\r\n };\r\n }\n\n registerLayout(themeRiverLayout);\r\n registerProcessor(dataFilter('themeRiver'));\n\n var SunburstSeriesModel = (function (_super) {\r\n __extends(SunburstSeriesModel, _super);\r\n function SunburstSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SunburstSeriesModel.type;\r\n _this.ignoreStyleOnData = true;\r\n return _this;\r\n }\r\n SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var root = { name: option.name, children: option.data };\r\n completeTreeValue$1(root);\r\n var levels = option.levels || [];\r\n var treeOption = {\r\n levels: levels\r\n };\r\n return Tree.createTree(root, this, treeOption).data;\r\n };\r\n SunburstSeriesModel.prototype.optionUpdated = function () {\r\n this.resetViewRoot();\r\n };\r\n SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var params = _super.prototype.getDataParams.apply(this, arguments);\r\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\r\n params.treePathInfo = wrapTreePathInfo(node, this);\r\n return params;\r\n };\r\n SunburstSeriesModel.prototype.getViewRoot = function () {\r\n return this._viewRoot;\r\n };\r\n SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\r\n viewRoot\r\n ? (this._viewRoot = viewRoot)\r\n : (viewRoot = this._viewRoot);\r\n var root = this.getRawData().tree.root;\r\n if (!viewRoot\r\n || (viewRoot !== root && !root.contains(viewRoot))) {\r\n this._viewRoot = root;\r\n }\r\n };\r\n SunburstSeriesModel.type = 'series.sunburst';\r\n SunburstSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n stillShowZeroSum: true,\r\n nodeClick: 'rootToNode',\r\n renderLabelForZeroData: false,\r\n label: {\r\n rotate: 'radial',\r\n show: true,\r\n opacity: 1,\r\n align: 'center',\r\n position: 'inside',\r\n distance: 5,\r\n silent: true\r\n },\r\n itemStyle: {\r\n borderWidth: 1,\r\n borderColor: 'white',\r\n borderType: 'solid',\r\n shadowBlur: 0,\r\n shadowColor: 'rgba(0, 0, 0, 0.2)',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n emphasis: {\r\n focus: 'descendant'\r\n },\r\n blur: {\r\n itemStyle: {\r\n opacity: 0.2\r\n },\r\n label: {\r\n opacity: 0.1\r\n }\r\n },\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n data: [],\r\n levels: [],\r\n sort: 'desc'\r\n };\r\n return SunburstSeriesModel;\r\n }(SeriesModel));\r\n function completeTreeValue$1(dataNode) {\r\n var sum = 0;\r\n each(dataNode.children, function (child) {\r\n completeTreeValue$1(child);\r\n var childValue = child.value;\r\n isArray(childValue) && (childValue = childValue[0]);\r\n sum += childValue;\r\n });\r\n var thisValue = dataNode.value;\r\n if (isArray(thisValue)) {\r\n thisValue = thisValue[0];\r\n }\r\n if (thisValue == null || isNaN(thisValue)) {\r\n thisValue = sum;\r\n }\r\n if (thisValue < 0) {\r\n thisValue = 0;\r\n }\r\n isArray(dataNode.value)\r\n ? (dataNode.value[0] = thisValue)\r\n : (dataNode.value = thisValue);\r\n }\r\n SeriesModel.registerClass(SunburstSeriesModel);\n\n var DEFAULT_SECTOR_Z = 2;\r\n var DEFAULT_TEXT_Z = 4;\r\n var SunburstPiece = (function (_super) {\r\n __extends(SunburstPiece, _super);\r\n function SunburstPiece(node, seriesModel, ecModel) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = DEFAULT_SECTOR_Z;\r\n _this.textConfig = {\r\n inside: true\r\n };\r\n getECData(_this).seriesIndex = seriesModel.seriesIndex;\r\n var text = new ZRText({\r\n z2: DEFAULT_TEXT_Z,\r\n silent: node.getModel().get(['label', 'silent'])\r\n });\r\n _this.setTextContent(text);\r\n _this.updateData(true, node, seriesModel, ecModel);\r\n return _this;\r\n }\r\n SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel) {\r\n this.node = node;\r\n node.piece = this;\r\n seriesModel = seriesModel || this._seriesModel;\r\n ecModel = ecModel || this._ecModel;\r\n var sector = this;\r\n getECData(sector).dataIndex = node.dataIndex;\r\n var itemModel = node.getModel();\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = node.getLayout();\r\n var sectorShape = extend({}, layout);\r\n sectorShape.label = null;\r\n var normalStyle = node.getVisual('style');\r\n normalStyle.lineJoin = 'bevel';\r\n each(SPECIAL_STATES, function (stateName) {\r\n var state = sector.ensureState(stateName);\r\n state.style = itemModel.getModel([stateName, 'itemStyle']).getItemStyle();\r\n });\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n sector.shape.r = layout.r0;\r\n updateProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, node.dataIndex);\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel);\r\n }\r\n sector.useStyle(normalStyle);\r\n this._updateLabel(seriesModel);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._seriesModel = seriesModel || this._seriesModel;\r\n this._ecModel = ecModel || this._ecModel;\r\n var focus = emphasisModel.get('focus');\r\n var focusDataIndices = focus === 'ancestor'\r\n ? node.getAncestorsIndices()\r\n : focus === 'descendant' ? node.getDescendantIndices() : null;\r\n enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\r\n };\r\n SunburstPiece.prototype._updateLabel = function (seriesModel) {\r\n var _this = this;\r\n var itemModel = this.node.getModel();\r\n var normalLabelModel = itemModel.getModel('label');\r\n var layout = this.node.getLayout();\r\n var angle = layout.endAngle - layout.startAngle;\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var dx = Math.cos(midAngle);\r\n var dy = Math.sin(midAngle);\r\n var sector = this;\r\n var label = sector.getTextContent();\r\n var dataIndex = this.node.dataIndex;\r\n each(DISPLAY_STATES, function (stateName) {\r\n var labelStateModel = stateName === 'normal' ? itemModel.getModel('label')\r\n : itemModel.getModel([stateName, 'label']);\r\n var labelMinAngle = labelStateModel.get('minAngle') / 180 * Math.PI;\r\n var isNormal = stateName === 'normal';\r\n var state = isNormal ? label : label.ensureState(stateName);\r\n var text = seriesModel.getFormattedLabel(dataIndex, stateName);\r\n if (isNormal) {\r\n text = text || _this.node.name;\r\n }\r\n state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\r\n if (text) {\r\n state.style.text = text;\r\n }\r\n state.ignore = labelMinAngle != null && Math.abs(angle) < labelMinAngle;\r\n var labelPosition = getLabelAttr(labelStateModel, 'position');\r\n var sectorState = isNormal ? sector : sector.states[stateName];\r\n var labelColor = sectorState.style.fill;\r\n sectorState.textConfig = {\r\n outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\r\n inside: labelPosition !== 'outside'\r\n };\r\n var r;\r\n var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\r\n var textAlign = getLabelAttr(labelStateModel, 'align');\r\n if (labelPosition === 'outside') {\r\n r = layout.r + labelPadding;\r\n textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\r\n }\r\n else {\r\n if (!textAlign || textAlign === 'center') {\r\n r = (layout.r + layout.r0) / 2;\r\n textAlign = 'center';\r\n }\r\n else if (textAlign === 'left') {\r\n r = layout.r0 + labelPadding;\r\n if (midAngle > Math.PI / 2) {\r\n textAlign = 'right';\r\n }\r\n }\r\n else if (textAlign === 'right') {\r\n r = layout.r - labelPadding;\r\n if (midAngle > Math.PI / 2) {\r\n textAlign = 'left';\r\n }\r\n }\r\n }\r\n state.style.align = textAlign;\r\n state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\r\n state.x = r * dx + layout.cx;\r\n state.y = r * dy + layout.cy;\r\n var rotateType = getLabelAttr(labelStateModel, 'rotate');\r\n var rotate = 0;\r\n if (rotateType === 'radial') {\r\n rotate = -midAngle;\r\n if (rotate < -Math.PI / 2) {\r\n rotate += Math.PI;\r\n }\r\n }\r\n else if (rotateType === 'tangential') {\r\n rotate = Math.PI / 2 - midAngle;\r\n if (rotate > Math.PI / 2) {\r\n rotate -= Math.PI;\r\n }\r\n else if (rotate < -Math.PI / 2) {\r\n rotate += Math.PI;\r\n }\r\n }\r\n else if (typeof rotateType === 'number') {\r\n rotate = rotateType * Math.PI / 180;\r\n }\r\n state.rotation = rotate;\r\n });\r\n function getLabelAttr(model, name) {\r\n var stateAttr = model.get(name);\r\n if (stateAttr == null) {\r\n return normalLabelModel.get(name);\r\n }\r\n return stateAttr;\r\n }\r\n label.dirtyStyle();\r\n };\r\n return SunburstPiece;\r\n }(Sector));\n\n var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\r\n registerAction({ type: ROOT_TO_NODE_ACTION, update: 'updateView' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleRootToNode);\r\n function handleRootToNode(model, index) {\r\n var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\r\n if (targetInfo) {\r\n var originViewRoot = model.getViewRoot();\r\n if (originViewRoot) {\r\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node)\r\n ? 'rollUp' : 'drillDown';\r\n }\r\n model.resetViewRoot(targetInfo.node);\r\n }\r\n }\r\n });\r\n var HIGHLIGHT_ACTION = 'sunburstHighlight';\r\n registerAction({ type: HIGHLIGHT_ACTION, update: 'none' }, function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleHighlight);\r\n function handleHighlight(model) {\r\n var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\r\n if (targetInfo) {\r\n payload.dataIndex = targetInfo.node.dataIndex;\r\n }\r\n }\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlight', 'sunburstHighlight');\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: 'highlight'\r\n }));\r\n });\r\n var UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\r\n registerAction({ type: UNHIGHLIGHT_ACTION, update: 'updateView' }, function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'sunburstUnhighlight');\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: 'downplay'\r\n }));\r\n });\n\n var SunburstView = (function (_super) {\r\n __extends(SunburstView, _super);\r\n function SunburstView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SunburstView.type;\r\n return _this;\r\n }\r\n SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var self = this;\r\n this.seriesModel = seriesModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n var data = seriesModel.getData();\r\n var virtualRoot = data.tree.root;\r\n var newRoot = seriesModel.getViewRoot();\r\n var group = this.group;\r\n var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\r\n var newChildren = [];\r\n newRoot.eachNode(function (node) {\r\n newChildren.push(node);\r\n });\r\n var oldChildren = this._oldChildren || [];\r\n dualTravel(newChildren, oldChildren);\r\n renderRollUp(virtualRoot, newRoot);\r\n this._initEvents();\r\n this._oldChildren = newChildren;\r\n function dualTravel(newChildren, oldChildren) {\r\n if (newChildren.length === 0 && oldChildren.length === 0) {\r\n return;\r\n }\r\n new DataDiffer(oldChildren, newChildren, getKey, getKey)\r\n .add(processNode)\r\n .update(processNode)\r\n .remove(curry(processNode, null))\r\n .execute();\r\n function getKey(node) {\r\n return node.getId();\r\n }\r\n function processNode(newIdx, oldIdx) {\r\n var newNode = newIdx == null ? null : newChildren[newIdx];\r\n var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\r\n doRenderNode(newNode, oldNode);\r\n }\r\n }\r\n function doRenderNode(newNode, oldNode) {\r\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\r\n newNode = null;\r\n }\r\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\r\n if (oldNode && oldNode.piece) {\r\n if (newNode) {\r\n oldNode.piece.updateData(false, newNode, seriesModel, ecModel);\r\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\r\n }\r\n else {\r\n removeNode(oldNode);\r\n }\r\n }\r\n else if (newNode) {\r\n var piece = new SunburstPiece(newNode, seriesModel, ecModel);\r\n group.add(piece);\r\n data.setItemGraphicEl(newNode.dataIndex, piece);\r\n }\r\n }\r\n }\r\n function removeNode(node) {\r\n if (!node) {\r\n return;\r\n }\r\n if (node.piece) {\r\n group.remove(node.piece);\r\n node.piece = null;\r\n }\r\n }\r\n function renderRollUp(virtualRoot, viewRoot) {\r\n if (viewRoot.depth > 0) {\r\n if (self.virtualPiece) {\r\n self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel);\r\n }\r\n else {\r\n self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel);\r\n group.add(self.virtualPiece);\r\n }\r\n viewRoot.piece.off('click');\r\n self.virtualPiece.on('click', function (e) {\r\n self._rootToNode(viewRoot.parentNode);\r\n });\r\n }\r\n else if (self.virtualPiece) {\r\n group.remove(self.virtualPiece);\r\n self.virtualPiece = null;\r\n }\r\n }\r\n };\r\n SunburstView.prototype._initEvents = function () {\r\n var _this = this;\r\n this.group.off('click');\r\n this.group.on('click', function (e) {\r\n var targetFound = false;\r\n var viewRoot = _this.seriesModel.getViewRoot();\r\n viewRoot.eachNode(function (node) {\r\n if (!targetFound\r\n && node.piece && node.piece === e.target) {\r\n var nodeClick = node.getModel().get('nodeClick');\r\n if (nodeClick === 'rootToNode') {\r\n _this._rootToNode(node);\r\n }\r\n else if (nodeClick === 'link') {\r\n var itemModel = node.getModel();\r\n var link = itemModel.get('link');\r\n if (link) {\r\n var linkTarget = itemModel.get('target', true)\r\n || '_blank';\r\n windowOpen(link, linkTarget);\r\n }\r\n }\r\n targetFound = true;\r\n }\r\n });\r\n });\r\n };\r\n SunburstView.prototype._rootToNode = function (node) {\r\n if (node !== this.seriesModel.getViewRoot()) {\r\n this.api.dispatchAction({\r\n type: ROOT_TO_NODE_ACTION,\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: node\r\n });\r\n }\r\n };\r\n SunburstView.prototype.containPoint = function (point, seriesModel) {\r\n var treeRoot = seriesModel.getData();\r\n var itemLayout = treeRoot.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n SunburstView.type = 'sunburst';\r\n return SunburstView;\r\n }(ChartView));\r\n ChartView.registerClass(SunburstView);\n\n var RADIAN$2 = Math.PI / 180;\r\n function sunburstLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width);\r\n var cy = parsePercent$2(center[1], height);\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$2;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$2;\r\n var virtualRoot = seriesModel.getData().tree.root;\r\n var treeRoot = seriesModel.getViewRoot();\r\n var rootDepth = treeRoot.depth;\r\n var sort = seriesModel.get('sort');\r\n if (sort != null) {\r\n initChildren$1(treeRoot, sort);\r\n }\r\n var validDataCount = 0;\r\n each(treeRoot.children, function (child) {\r\n !isNaN(child.getValue()) && validDataCount++;\r\n });\r\n var sum = treeRoot.getValue();\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var renderRollupNode = treeRoot.depth > 0;\r\n var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\r\n var rPerLevel = (r - r0) / (levels || 1);\r\n var clockwise = seriesModel.get('clockwise');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var dir = clockwise ? 1 : -1;\r\n var renderNode = function (node, startAngle) {\r\n if (!node) {\r\n return;\r\n }\r\n var endAngle = startAngle;\r\n if (node !== virtualRoot) {\r\n var value = node.getValue();\r\n var angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n }\r\n endAngle = startAngle + dir * angle;\r\n var depth = node.depth - rootDepth\r\n - (renderRollupNode ? -1 : 1);\r\n var rStart = r0 + rPerLevel * depth;\r\n var rEnd = r0 + rPerLevel * (depth + 1);\r\n var itemModel = node.getModel();\r\n if (itemModel.get('r0') != null) {\r\n rStart = parsePercent$2(itemModel.get('r0'), size / 2);\r\n }\r\n if (itemModel.get('r') != null) {\r\n rEnd = parsePercent$2(itemModel.get('r'), size / 2);\r\n }\r\n node.setLayout({\r\n angle: angle,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: rStart,\r\n r: rEnd\r\n });\r\n }\r\n if (node.children && node.children.length) {\r\n var siblingAngle_1 = 0;\r\n each(node.children, function (node) {\r\n siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\r\n });\r\n }\r\n return endAngle - startAngle;\r\n };\r\n if (renderRollupNode) {\r\n var rStart = r0;\r\n var rEnd = r0 + rPerLevel;\r\n var angle = Math.PI * 2;\r\n virtualRoot.setLayout({\r\n angle: angle,\r\n startAngle: startAngle,\r\n endAngle: startAngle + angle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: rStart,\r\n r: rEnd\r\n });\r\n }\r\n renderNode(treeRoot, startAngle);\r\n });\r\n }\r\n function initChildren$1(node, sortOrder) {\r\n var children = node.children || [];\r\n node.children = sort$2(children, sortOrder);\r\n if (children.length) {\r\n each(node.children, function (child) {\r\n initChildren$1(child, sortOrder);\r\n });\r\n }\r\n }\r\n function sort$2(children, sortOrder) {\r\n if (typeof sortOrder === 'function') {\r\n return children.sort(sortOrder);\r\n }\r\n else {\r\n var isAsc_1 = sortOrder === 'asc';\r\n return children.sort(function (a, b) {\r\n var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\r\n return diff === 0\r\n ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1)\r\n : diff;\r\n });\r\n }\r\n }\n\n function sunburstVisual (ecModel) {\r\n var paletteScope = {};\r\n function pickColor(node, seriesModel, treeHeight) {\r\n var current = node;\r\n while (current && current.depth > 1) {\r\n current = current.parentNode;\r\n }\r\n var color = seriesModel.getColorFromPalette((current.name || current.dataIndex + ''), paletteScope);\r\n if (node.depth > 1 && typeof color === 'string') {\r\n color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\r\n }\r\n return color;\r\n }\r\n ecModel.eachSeriesByType('sunburst', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var tree = data.tree;\r\n tree.eachNode(function (node) {\r\n var model = node.getModel();\r\n var style = model.getModel('itemStyle').getItemStyle();\r\n if (!style.fill) {\r\n style.fill = pickColor(node, seriesModel, tree.root.height);\r\n }\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n extend(existsStyle, style);\r\n });\r\n });\r\n }\n\n registerLayout(curry(sunburstLayout, 'sunburst'));\r\n registerProcessor(curry(dataFilter, 'sunburst'));\r\n registerVisual(sunburstVisual);\n\n function dataToCoordSize(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map(['x', 'y'], function (dim, dimIdx) {\r\n var axis = this.getAxis(dim);\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n return axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n }, this);\r\n }\r\n function prepareCartesian2d (coordSys) {\r\n var rect = coordSys.master.getRect();\r\n return {\r\n coordSys: {\r\n type: 'cartesian2d',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n api: {\r\n coord: function (data) {\r\n return coordSys.dataToPoint(data);\r\n },\r\n size: bind(dataToCoordSize, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$1(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map([0, 1], function (dimIdx) {\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n var p1 = [];\r\n var p2 = [];\r\n p1[dimIdx] = val - halfSize;\r\n p2[dimIdx] = val + halfSize;\r\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\r\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\r\n }, this);\r\n }\r\n function prepareGeo (coordSys) {\r\n var rect = coordSys.getBoundingRect();\r\n return {\r\n coordSys: {\r\n type: 'geo',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height,\r\n zoom: coordSys.getZoom()\r\n },\r\n api: {\r\n coord: function (data) {\r\n return coordSys.dataToPoint(data);\r\n },\r\n size: bind(dataToCoordSize$1, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$2(dataSize, dataItem) {\r\n var axis = this.getAxis();\r\n var val = dataItem instanceof Array ? dataItem[0] : dataItem;\r\n var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\r\n return axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n }\r\n function prepareSingleAxis (coordSys) {\r\n var rect = coordSys.getRect();\r\n return {\r\n coordSys: {\r\n type: 'singleAxis',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n api: {\r\n coord: function (val) {\r\n return coordSys.dataToPoint(val);\r\n },\r\n size: bind(dataToCoordSize$2, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$3(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map(['Radius', 'Angle'], function (dim, dimIdx) {\r\n var getterName = 'get' + dim + 'Axis';\r\n var axis = this[getterName]();\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n var result = axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n if (dim === 'Angle') {\r\n result = result * Math.PI / 180;\r\n }\r\n return result;\r\n }, this);\r\n }\r\n function preparePolar (coordSys) {\r\n var radiusAxis = coordSys.getRadiusAxis();\r\n var angleAxis = coordSys.getAngleAxis();\r\n var radius = radiusAxis.getExtent();\r\n radius[0] > radius[1] && radius.reverse();\r\n return {\r\n coordSys: {\r\n type: 'polar',\r\n cx: coordSys.cx,\r\n cy: coordSys.cy,\r\n r: radius[1],\r\n r0: radius[0]\r\n },\r\n api: {\r\n coord: function (data) {\r\n var radius = radiusAxis.dataToRadius(data[0]);\r\n var angle = angleAxis.dataToAngle(data[1]);\r\n var coord = coordSys.coordToPoint([radius, angle]);\r\n coord.push(radius, angle * Math.PI / 180);\r\n return coord;\r\n },\r\n size: bind(dataToCoordSize$3, coordSys)\r\n }\r\n };\r\n }\n\n function prepareCalendar (coordSys) {\r\n var rect = coordSys.getRect();\r\n var rangeInfo = coordSys.getRangeInfo();\r\n return {\r\n coordSys: {\r\n type: 'calendar',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height,\r\n cellWidth: coordSys.getCellWidth(),\r\n cellHeight: coordSys.getCellHeight(),\r\n rangeInfo: {\r\n start: rangeInfo.start,\r\n end: rangeInfo.end,\r\n weeks: rangeInfo.weeks,\r\n dayCount: rangeInfo.allDay\r\n }\r\n },\r\n api: {\r\n coord: function (data, clamp) {\r\n return coordSys.dataToPoint(data, clamp);\r\n }\r\n }\r\n };\r\n }\n\n var deprecatedLogs = {};\r\n function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\r\n return style && (style.legacy\r\n || (style.legacy !== false\r\n && !hasOwnTextContentOption\r\n && !hasOwnTextConfig\r\n && elType !== 'tspan'\r\n && (elType === 'text' || hasOwn(style, 'text'))));\r\n }\r\n function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\r\n var srcStyle = hostStyle;\r\n var textConfig;\r\n var textContent;\r\n var textContentStyle;\r\n if (elType === 'text') {\r\n textContentStyle = srcStyle;\r\n }\r\n else {\r\n textContentStyle = {};\r\n hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\r\n hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\r\n hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\r\n hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\r\n textContent = {\r\n type: 'text',\r\n style: textContentStyle,\r\n silent: true\r\n };\r\n textConfig = {};\r\n var hasOwnPos = hasOwn(srcStyle, 'textPosition');\r\n if (isNormal) {\r\n textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\r\n }\r\n else {\r\n hasOwnPos && (textConfig.position = srcStyle.textPosition);\r\n }\r\n hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\r\n hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\r\n hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\r\n hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\r\n }\r\n convertEC4CompatibleRichItem(textContentStyle, hostStyle);\r\n each(textContentStyle.rich, function (richItem) {\r\n convertEC4CompatibleRichItem(richItem, richItem);\r\n });\r\n return {\r\n textConfig: textConfig,\r\n textContent: textContent\r\n };\r\n }\r\n function convertEC4CompatibleRichItem(out, richItem) {\r\n if (!richItem) {\r\n return;\r\n }\r\n richItem.font = richItem.textFont || richItem.font;\r\n hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\r\n hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\r\n hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\r\n hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\r\n hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\r\n hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\r\n hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\r\n hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\r\n hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\r\n hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\r\n hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\r\n hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\r\n hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\r\n hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\r\n hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\r\n }\r\n function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\r\n var out = itemStl;\r\n out.textPosition = out.textPosition || txCfg.position || 'inside';\r\n txCfg.offset != null && (out.textOffset = txCfg.offset);\r\n txCfg.rotation != null && (out.textRotation = txCfg.rotation);\r\n txCfg.distance != null && (out.textDistance = txCfg.distance);\r\n var isInside = out.textPosition.indexOf('inside') >= 0;\r\n var hostFill = itemStl.fill || '#000';\r\n convertToEC4RichItem(out, txStl);\r\n var textFillNotSet = out.textFill == null;\r\n if (isInside) {\r\n if (textFillNotSet) {\r\n out.textFill = txCfg.insideFill || '#fff';\r\n !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\r\n !out.textStroke && (out.textStroke = hostFill);\r\n out.textStrokeWidth == null && (out.textStrokeWidth = 2);\r\n }\r\n }\r\n else {\r\n if (textFillNotSet) {\r\n out.textFill = txCfg.outsideFill || hostFill;\r\n }\r\n !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\r\n }\r\n out.text = txStl.text;\r\n out.rich = txStl.rich;\r\n each(txStl.rich, function (richItem) {\r\n convertToEC4RichItem(richItem, richItem);\r\n });\r\n return out;\r\n }\r\n function convertToEC4RichItem(out, richItem) {\r\n if (!richItem) {\r\n return;\r\n }\r\n hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\r\n hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\r\n hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\r\n hasOwn(richItem, 'font') && (out.textStrokeWidth = richItem.font);\r\n hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\r\n hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\r\n hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\r\n hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\r\n hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\r\n hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\r\n hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\r\n hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\r\n hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\r\n hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\r\n hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\r\n hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\r\n hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\r\n hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\r\n hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\r\n hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\r\n hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\r\n hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\r\n hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\r\n hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\r\n hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\r\n hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\r\n }\r\n function warnDeprecated(deprecated, insteadApproach) {\r\n if (__DEV__) {\r\n var key = deprecated + '^_^' + insteadApproach;\r\n if (!deprecatedLogs[key]) {\r\n console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\r\n deprecatedLogs[key] = true;\r\n }\r\n }\r\n }\n\n var inner$f = makeInner();\r\n var TRANSFORM_PROPS = {\r\n x: 1,\r\n y: 1,\r\n scaleX: 1,\r\n scaleY: 1,\r\n originX: 1,\r\n originY: 1,\r\n rotation: 1\r\n };\r\n var transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\r\n var STYLE_VISUAL_TYPE = {\r\n color: 'fill',\r\n borderColor: 'stroke'\r\n };\r\n var VISUAL_PROPS = {\r\n symbol: 1,\r\n symbolSize: 1,\r\n symbolKeepAspect: 1,\r\n legendSymbol: 1,\r\n visualMeta: 1,\r\n liftZ: 1\r\n };\r\n var EMPHASIS = 'emphasis';\r\n var NORMAL = 'normal';\r\n var BLUR = 'blur';\r\n var SELECT = 'select';\r\n var STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\r\n var PATH_ITEM_STYLE = {\r\n normal: ['itemStyle'],\r\n emphasis: [EMPHASIS, 'itemStyle'],\r\n blur: [BLUR, 'itemStyle'],\r\n select: [SELECT, 'itemStyle']\r\n };\r\n var PATH_LABEL = {\r\n normal: ['label'],\r\n emphasis: [EMPHASIS, 'label'],\r\n blur: [BLUR, 'label'],\r\n select: [SELECT, 'label']\r\n };\r\n var GROUP_DIFF_PREFIX = 'e\\0\\0';\r\n var attachedTxInfoTmp = {\r\n normal: {},\r\n emphasis: {},\r\n blur: {},\r\n select: {}\r\n };\r\n var LEGACY_TRANSFORM_PROPS = {\r\n position: ['x', 'y'],\r\n scale: ['scaleX', 'scaleY'],\r\n origin: ['originX', 'originY']\r\n };\r\n var prepareCustoms = {\r\n cartesian2d: prepareCartesian2d,\r\n geo: prepareGeo,\r\n singleAxis: prepareSingleAxis,\r\n polar: preparePolar,\r\n calendar: prepareCalendar\r\n };\r\n var CustomSeriesModel = (function (_super) {\r\n __extends(CustomSeriesModel, _super);\r\n function CustomSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CustomSeriesModel.type;\r\n return _this;\r\n }\r\n CustomSeriesModel.prototype.optionUpdated = function () {\r\n this.currentZLevel = this.get('zlevel', true);\r\n this.currentZ = this.get('z', true);\r\n };\r\n CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this);\r\n };\r\n CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\r\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\r\n el && (params.info = inner$f(el).info);\r\n return params;\r\n };\r\n CustomSeriesModel.type = 'series.custom';\r\n CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n CustomSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n clip: false\r\n };\r\n return CustomSeriesModel;\r\n }(SeriesModel));\r\n ComponentModel.registerClass(CustomSeriesModel);\r\n var CustomSeriesView = (function (_super) {\r\n __extends(CustomSeriesView, _super);\r\n function CustomSeriesView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CustomSeriesView.type;\r\n return _this;\r\n }\r\n CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\r\n var oldData = this._data;\r\n var data = customSeries.getData();\r\n var group = this.group;\r\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n createOrUpdateItem(null, newIdx, renderItem(newIdx, payload), customSeries, group, data);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n createOrUpdateItem(oldData.getItemGraphicEl(oldIdx), newIdx, renderItem(newIdx, payload), customSeries, group, data);\r\n })\r\n .remove(function (oldIdx) {\r\n doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\r\n })\r\n .execute();\r\n var clipPath = customSeries.get('clip', true)\r\n ? createClipPath(customSeries.coordinateSystem, false, customSeries)\r\n : null;\r\n if (clipPath) {\r\n group.setClipPath(clipPath);\r\n }\r\n else {\r\n group.removeClipPath();\r\n }\r\n this._data = data;\r\n };\r\n CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\r\n var data = customSeries.getData();\r\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\r\n function setIncrementalAndHoverLayer(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = params.start; idx < params.end; idx++) {\r\n var el = createOrUpdateItem(null, idx, renderItem(idx, payload), customSeries, this.group, data);\r\n el.traverse(setIncrementalAndHoverLayer);\r\n }\r\n };\r\n CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\r\n var elementName = query.element;\r\n if (elementName == null || targetEl.name === elementName) {\r\n return true;\r\n }\r\n while ((targetEl = targetEl.parent) && targetEl !== this.group) {\r\n if (targetEl.name === elementName) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n CustomSeriesView.type = 'custom';\r\n return CustomSeriesView;\r\n }(ChartView));\r\n ChartView.registerClass(CustomSeriesView);\r\n function createEl(elOption) {\r\n var graphicType = elOption.type;\r\n var el;\r\n if (graphicType === 'path') {\r\n var shape = elOption.shape;\r\n var pathRect = (shape.width != null && shape.height != null)\r\n ? {\r\n x: shape.x || 0,\r\n y: shape.y || 0,\r\n width: shape.width,\r\n height: shape.height\r\n }\r\n : null;\r\n var pathData = getPathData(shape);\r\n el = makePath(pathData, null, pathRect, shape.layout || 'center');\r\n inner$f(el).customPathData = pathData;\r\n }\r\n else if (graphicType === 'image') {\r\n el = new ZRImage({});\r\n inner$f(el).customImagePath = elOption.style.image;\r\n }\r\n else if (graphicType === 'text') {\r\n el = new ZRText({});\r\n }\r\n else if (graphicType === 'group') {\r\n el = new Group();\r\n }\r\n else if (graphicType === 'compoundPath') {\r\n throw new Error('\"compoundPath\" is not supported yet.');\r\n }\r\n else {\r\n var Clz = getShapeClass(graphicType);\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type \"' + graphicType + '\" can not be found.');\r\n }\r\n el = new Clz();\r\n }\r\n inner$f(el).customGraphicType = graphicType;\r\n el.name = elOption.name;\r\n el.z2EmphasisLift = 1;\r\n el.z2SelectLift = 1;\r\n return el;\r\n }\r\n function updateElNormal(el, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\r\n var transFromProps = {};\r\n var allProps = {};\r\n var elDisplayable = el.isGroup ? null : el;\r\n prepareShapeOrExtraUpdate('shape', el, elOption, allProps, transFromProps, isInit);\r\n prepareShapeOrExtraUpdate('extra', el, elOption, allProps, transFromProps, isInit);\r\n prepareTransformUpdate(el, elOption, allProps, transFromProps, isInit);\r\n var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\r\n if (txCfgOpt) {\r\n el.setTextConfig(txCfgOpt);\r\n }\r\n if (el.type === 'text' && styleOpt) {\r\n var textOptionStyle = styleOpt;\r\n hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\r\n hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\r\n }\r\n prepareStyleUpdate(el, styleOpt, transFromProps, isInit);\r\n if (elDisplayable) {\r\n styleOpt && elDisplayable.useStyle(styleOpt);\r\n var animators = elDisplayable.animators;\r\n for (var i = 0; i < animators.length; i++) {\r\n var animator = animators[i];\r\n if (animator.targetName === 'style') {\r\n animator.changeTarget(elDisplayable.style);\r\n }\r\n }\r\n hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\r\n }\r\n var userDuring = elOption.during;\r\n inner$f(el).userDuring = userDuring;\r\n var cfgDuringCall = userDuring ? bind(duringCall, { el: el, userDuring: userDuring }) : null;\r\n el.attr(allProps);\r\n var cfg = {\r\n dataIndex: dataIndex,\r\n isFrom: true,\r\n during: cfgDuringCall\r\n };\r\n isInit\r\n ? initProps(el, transFromProps, seriesModel, cfg)\r\n : updateProps(el, transFromProps, seriesModel, cfg);\r\n hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\r\n hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\r\n if (!isTextContent) {\r\n hasOwn(elOption, 'info') && (inner$f(el).info = elOption.info);\r\n }\r\n styleOpt ? el.dirty() : el.markRedraw();\r\n }\r\n function prepareShapeOrExtraUpdate(mainAttr, el, elOption, allProps, transFromProps, isInit) {\r\n var attrOpt = elOption[mainAttr];\r\n if (!attrOpt) {\r\n return;\r\n }\r\n var elPropsInAttr = el[mainAttr];\r\n var transFromPropsInAttr;\r\n var enterFrom = attrOpt.enterFrom;\r\n if (isInit && enterFrom) {\r\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\r\n var enterFromKeys = keys(enterFrom);\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n transFromPropsInAttr[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit && elPropsInAttr && attrOpt.transition) {\r\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\r\n var transitionKeys = normalizeToArray(attrOpt.transition);\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = elPropsInAttr[key];\r\n if (__DEV__) {\r\n checkTansitionRefer(key, attrOpt[key], elVal);\r\n }\r\n transFromPropsInAttr[key] = elVal;\r\n }\r\n }\r\n var allPropsInAttr = allProps[mainAttr] = {};\r\n var keysInAttr = keys(attrOpt);\r\n for (var i = 0; i < keysInAttr.length; i++) {\r\n var key = keysInAttr[i];\r\n allPropsInAttr[key] = cloneValue(attrOpt[key]);\r\n }\r\n var leaveTo = attrOpt.leaveTo;\r\n if (leaveTo) {\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\r\n var leaveToKeys = keys(leaveTo);\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n leaveToPropsInAttr[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function prepareTransformUpdate(el, elOption, allProps, transFromProps, isInit) {\r\n var enterFrom = elOption.enterFrom;\r\n if (isInit && enterFrom) {\r\n var enterFromKeys = keys(enterFrom);\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.enterFrom');\r\n }\r\n transFromProps[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit) {\r\n if (elOption.transition) {\r\n var transitionKeys = normalizeToArray(elOption.transition);\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = el[key];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.transition');\r\n checkTansitionRefer(key, elOption[key], elVal);\r\n }\r\n transFromProps[key] = elVal;\r\n }\r\n }\r\n else {\r\n setLagecyProp(elOption, transFromProps, 'position', el);\r\n setTransProp(elOption, transFromProps, 'x', el);\r\n setTransProp(elOption, transFromProps, 'y', el);\r\n }\r\n }\r\n setLagecyProp(elOption, allProps, 'position');\r\n setLagecyProp(elOption, allProps, 'scale');\r\n setLagecyProp(elOption, allProps, 'origin');\r\n setTransProp(elOption, allProps, 'x');\r\n setTransProp(elOption, allProps, 'y');\r\n setTransProp(elOption, allProps, 'scaleX');\r\n setTransProp(elOption, allProps, 'scaleY');\r\n setTransProp(elOption, allProps, 'originX');\r\n setTransProp(elOption, allProps, 'originY');\r\n setTransProp(elOption, allProps, 'rotation');\r\n var leaveTo = elOption.leaveTo;\r\n if (leaveTo) {\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToKeys = keys(leaveTo);\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.leaveTo');\r\n }\r\n leaveToProps[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function prepareStyleUpdate(el, styleOpt, transFromProps, isInit) {\r\n if (!styleOpt) {\r\n return;\r\n }\r\n var elStyle = el.style;\r\n var transFromStyleProps;\r\n var enterFrom = styleOpt.enterFrom;\r\n if (isInit && enterFrom) {\r\n var enterFromKeys = keys(enterFrom);\r\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n transFromStyleProps[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit && elStyle && styleOpt.transition) {\r\n var transitionKeys = normalizeToArray(styleOpt.transition);\r\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = elStyle[key];\r\n if (__DEV__) {\r\n checkTansitionRefer(key, styleOpt[key], elVal);\r\n }\r\n transFromStyleProps[key] = elVal;\r\n }\r\n }\r\n var leaveTo = styleOpt.leaveTo;\r\n if (leaveTo) {\r\n var leaveToKeys = keys(leaveTo);\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n leaveToStyleProps[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function checkTansitionRefer(propName, optVal, elVal) {\r\n var isArrLike = isArrayLike(optVal);\r\n assert(isArrLike || (optVal != null && isFinite(optVal)), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\r\n assert(!isArrLike || optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\r\n }\r\n function checkTransformPropRefer(key, usedIn) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. '\r\n + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\r\n }\r\n function getOrCreateLeaveToPropsFromEl(el) {\r\n var innerEl = inner$f(el);\r\n return innerEl.leaveToProps || (innerEl.leaveToProps = {});\r\n }\r\n var tmpDuringScope = {};\r\n var customDuringAPI = {\r\n setTransform: function (key, val) {\r\n if (__DEV__) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\r\n }\r\n tmpDuringScope.el[key] = val;\r\n return this;\r\n },\r\n getTransform: function (key) {\r\n if (__DEV__) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\r\n }\r\n return tmpDuringScope.el[key];\r\n },\r\n setShape: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var shape = tmpDuringScope.el.shape\r\n || (tmpDuringScope.el.shape = {});\r\n shape[key] = val;\r\n tmpDuringScope.isShapeDirty = true;\r\n return this;\r\n },\r\n getShape: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var shape = tmpDuringScope.el.shape;\r\n if (shape) {\r\n return shape[key];\r\n }\r\n },\r\n setStyle: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var style = tmpDuringScope.el.style;\r\n if (style) {\r\n style[key] = val;\r\n tmpDuringScope.isStyleDirty = true;\r\n }\r\n return this;\r\n },\r\n getStyle: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var style = tmpDuringScope.el.style;\r\n if (style) {\r\n return style[key];\r\n }\r\n },\r\n setExtra: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var extra = tmpDuringScope.el.extra\r\n || (tmpDuringScope.el.extra = {});\r\n extra[key] = val;\r\n return this;\r\n },\r\n getExtra: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var extra = tmpDuringScope.el.extra;\r\n if (extra) {\r\n return extra[key];\r\n }\r\n }\r\n };\r\n function assertNotReserved(key) {\r\n if (__DEV__) {\r\n if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\r\n throw new Error('key must not be \"' + key + '\"');\r\n }\r\n }\r\n }\r\n function duringCall() {\r\n var scope = this;\r\n var el = scope.el;\r\n if (!el) {\r\n return;\r\n }\r\n var newstUserDuring = inner$f(el).userDuring;\r\n var scopeUserDuring = scope.userDuring;\r\n if (newstUserDuring !== scopeUserDuring) {\r\n scope.el = scope.userDuring = null;\r\n return;\r\n }\r\n tmpDuringScope.el = el;\r\n tmpDuringScope.isShapeDirty = false;\r\n tmpDuringScope.isStyleDirty = false;\r\n scopeUserDuring(customDuringAPI);\r\n if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\r\n el.dirtyShape();\r\n }\r\n if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\r\n el.dirtyStyle();\r\n }\r\n }\r\n function updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\r\n var elDisplayable = el.isGroup ? null : el;\r\n var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\r\n if (elDisplayable) {\r\n var stateObj = elDisplayable.ensureState(state);\r\n if (styleOpt === false) {\r\n var existingEmphasisState = elDisplayable.getState(state);\r\n if (existingEmphasisState) {\r\n existingEmphasisState.style = null;\r\n }\r\n }\r\n else {\r\n stateObj.style = styleOpt || null;\r\n }\r\n if (txCfgOpt) {\r\n stateObj.textConfig = txCfgOpt;\r\n }\r\n setDefaultStateProxy(elDisplayable);\r\n }\r\n }\r\n function updateZ$1(el, elOption, seriesModel, attachedTxInfo) {\r\n if (el.isGroup) {\r\n return;\r\n }\r\n var elDisplayable = el;\r\n var currentZ = seriesModel.currentZ;\r\n var currentZLevel = seriesModel.currentZLevel;\r\n elDisplayable.z = currentZ;\r\n elDisplayable.zlevel = currentZLevel;\r\n var optZ2 = elOption.z2;\r\n optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\r\n for (var i = 0; i < STATES.length; i++) {\r\n updateZForEachState(elDisplayable, elOption, STATES[i]);\r\n }\r\n }\r\n function updateZForEachState(elDisplayable, elOption, state) {\r\n var isNormal = state === NORMAL;\r\n var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\r\n var optZ2 = elStateOpt ? elStateOpt.z2 : null;\r\n var stateObj;\r\n if (optZ2 != null) {\r\n stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\r\n stateObj.z2 = optZ2 || 0;\r\n }\r\n }\r\n function setLagecyProp(elOption, targetProps, legacyName, fromEl) {\r\n var legacyArr = elOption[legacyName];\r\n var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\r\n if (legacyArr) {\r\n if (fromEl) {\r\n targetProps[xyName[0]] = fromEl[xyName[0]];\r\n targetProps[xyName[1]] = fromEl[xyName[1]];\r\n }\r\n else {\r\n targetProps[xyName[0]] = legacyArr[0];\r\n targetProps[xyName[1]] = legacyArr[1];\r\n }\r\n }\r\n }\r\n function setTransProp(elOption, targetProps, name, fromEl) {\r\n if (elOption[name] != null) {\r\n targetProps[name] = fromEl ? fromEl[name] : elOption[name];\r\n }\r\n }\r\n function makeRenderItem(customSeries, data, ecModel, api) {\r\n var renderItem = customSeries.get('renderItem');\r\n var coordSys = customSeries.coordinateSystem;\r\n var prepareResult = {};\r\n if (coordSys) {\r\n if (__DEV__) {\r\n assert(renderItem, 'series.render is required.');\r\n assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\r\n }\r\n prepareResult = coordSys.prepareCustoms\r\n ? coordSys.prepareCustoms(coordSys)\r\n : prepareCustoms[coordSys.type](coordSys);\r\n }\r\n var userAPI = defaults({\r\n getWidth: api.getWidth,\r\n getHeight: api.getHeight,\r\n getZr: api.getZr,\r\n getDevicePixelRatio: api.getDevicePixelRatio,\r\n value: value,\r\n style: style,\r\n styleEmphasis: styleEmphasis,\r\n visual: visual,\r\n barLayout: barLayout,\r\n currentSeriesIndices: currentSeriesIndices,\r\n font: font\r\n }, prepareResult.api || {});\r\n var userParams = {\r\n context: {},\r\n seriesId: customSeries.id,\r\n seriesName: customSeries.name,\r\n seriesIndex: customSeries.seriesIndex,\r\n coordSys: prepareResult.coordSys,\r\n dataInsideLength: data.count(),\r\n encode: wrapEncodeDef(customSeries.getData())\r\n };\r\n var currDataIndexInside;\r\n var currItemModel;\r\n var currItemStyleModels = {};\r\n var currLabelModels = {};\r\n var seriesItemStyleModels = {};\r\n var seriesLabelModels = {};\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n seriesItemStyleModels[stateName] = customSeries\r\n .getModel(PATH_ITEM_STYLE[stateName]);\r\n seriesLabelModels[stateName] = customSeries\r\n .getModel(PATH_LABEL[stateName]);\r\n }\r\n function getItemModel(dataIndexInside) {\r\n return dataIndexInside === currDataIndexInside\r\n ? (currItemModel || (currItemModel = data.getItemModel(dataIndexInside)))\r\n : data.getItemModel(dataIndexInside);\r\n }\r\n function getItemStyleModel(dataIndexInside, state) {\r\n return !data.hasItemOption\r\n ? seriesItemStyleModels[state]\r\n : dataIndexInside === currDataIndexInside\r\n ? (currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])))\r\n : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\r\n }\r\n function getLabelModel(dataIndexInside, state) {\r\n return !data.hasItemOption\r\n ? seriesLabelModels[state]\r\n : dataIndexInside === currDataIndexInside\r\n ? (currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])))\r\n : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\r\n }\r\n return function (dataIndexInside, payload) {\r\n currDataIndexInside = dataIndexInside;\r\n currItemModel = null;\r\n currItemStyleModels = {};\r\n currLabelModels = {};\r\n return renderItem && renderItem(defaults({\r\n dataIndexInside: dataIndexInside,\r\n dataIndex: data.getRawIndex(dataIndexInside),\r\n actionType: payload ? payload.type : null\r\n }, userParams), userAPI);\r\n };\r\n function value(dim, dataIndexInside) {\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n return data.get(data.getDimension(dim || 0), dataIndexInside);\r\n }\r\n function style(userProps, dataIndexInside) {\r\n if (__DEV__) {\r\n warnDeprecated('api.style', 'Please write literal style directly instead.');\r\n }\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n var style = data.getItemVisual(dataIndexInside, 'style');\r\n var visualColor = style && style.fill;\r\n var opacity = style && style.opacity;\r\n var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\r\n visualColor != null && (itemStyle.fill = visualColor);\r\n opacity != null && (itemStyle.opacity = opacity);\r\n var opt = { inheritColor: isString(visualColor) ? visualColor : '#000' };\r\n var labelModel = getLabelModel(dataIndexInside, NORMAL);\r\n var textStyle = createTextStyle(labelModel, null, opt, false, true);\r\n textStyle.text = labelModel.getShallow('show')\r\n ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside))\r\n : null;\r\n var textConfig = createTextConfig(labelModel, opt, false);\r\n preFetchFromExtra(userProps, itemStyle);\r\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\r\n userProps && applyUserPropsAfter(itemStyle, userProps);\r\n itemStyle.legacy = true;\r\n return itemStyle;\r\n }\r\n function styleEmphasis(userProps, dataIndexInside) {\r\n if (__DEV__) {\r\n warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\r\n }\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\r\n var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\r\n var textStyle = createTextStyle(labelModel, null, null, true, true);\r\n textStyle.text = labelModel.getShallow('show')\r\n ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside))\r\n : null;\r\n var textConfig = createTextConfig(labelModel, null, true);\r\n preFetchFromExtra(userProps, itemStyle);\r\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\r\n userProps && applyUserPropsAfter(itemStyle, userProps);\r\n itemStyle.legacy = true;\r\n return itemStyle;\r\n }\r\n function applyUserPropsAfter(itemStyle, extra) {\r\n for (var key in extra) {\r\n if (hasOwn(extra, key)) {\r\n itemStyle[key] = extra[key];\r\n }\r\n }\r\n }\r\n function preFetchFromExtra(extra, itemStyle) {\r\n if (extra) {\r\n extra.textFill && (itemStyle.textFill = extra.textFill);\r\n extra.textPosition && (itemStyle.textPosition = extra.textPosition);\r\n }\r\n }\r\n function visual(visualType, dataIndexInside) {\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\r\n var style_1 = data.getItemVisual(dataIndexInside, 'style');\r\n return style_1\r\n ? style_1[STYLE_VISUAL_TYPE[visualType]]\r\n : null;\r\n }\r\n if (hasOwn(VISUAL_PROPS, visualType)) {\r\n return data.getItemVisual(dataIndexInside, visualType);\r\n }\r\n }\r\n function barLayout(opt) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var baseAxis = coordSys.getBaseAxis();\r\n return getLayoutOnAxis(defaults({ axis: baseAxis }, opt));\r\n }\r\n }\r\n function currentSeriesIndices() {\r\n return ecModel.getCurrentSeriesIndices();\r\n }\r\n function font(opt) {\r\n return getFont(opt, ecModel);\r\n }\r\n }\r\n function wrapEncodeDef(data) {\r\n var encodeDef = {};\r\n each(data.dimensions, function (dimName, dataDimIndex) {\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n if (!dimInfo.isExtraCoord) {\r\n var coordDim = dimInfo.coordDim;\r\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\r\n dataDims[dimInfo.coordDimIndex] = dataDimIndex;\r\n }\r\n });\r\n return encodeDef;\r\n }\r\n function createOrUpdateItem(el, dataIndex, elOption, seriesModel, group, data) {\r\n if (!elOption) {\r\n el && group.remove(el);\r\n return;\r\n }\r\n el = doCreateOrUpdateEl(el, dataIndex, elOption, seriesModel, group);\r\n el && data.setItemGraphicEl(dataIndex, el);\r\n enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\r\n return el;\r\n }\r\n function doCreateOrUpdateEl(el, dataIndex, elOption, seriesModel, group, isRoot) {\r\n if (__DEV__) {\r\n assert(elOption, 'should not have an null/undefined element setting');\r\n }\r\n var toBeReplacedIdx = -1;\r\n if (el && doesElNeedRecreate(el, elOption)) {\r\n toBeReplacedIdx = group.childrenRef().indexOf(el);\r\n el = null;\r\n }\r\n var isInit = !el;\r\n if (!el) {\r\n el = createEl(elOption);\r\n }\r\n else {\r\n el.clearStates();\r\n }\r\n attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt =\r\n attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt =\r\n attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt =\r\n attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\r\n attachedTxInfoTmp.isLegacy = false;\r\n doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\r\n doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\r\n updateElNormal(el, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n if (stateName !== NORMAL) {\r\n var otherStateOpt = retrieveStateOption(elOption, stateName);\r\n var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\r\n updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp);\r\n }\r\n }\r\n updateZ$1(el, elOption, seriesModel);\r\n if (elOption.type === 'group') {\r\n mergeChildren(el, dataIndex, elOption, seriesModel);\r\n }\r\n if (toBeReplacedIdx >= 0) {\r\n group.replaceAt(el, toBeReplacedIdx);\r\n }\r\n else {\r\n group.add(el);\r\n }\r\n return el;\r\n }\r\n function doesElNeedRecreate(el, elOption) {\r\n var elInner = inner$f(el);\r\n var elOptionType = elOption.type;\r\n var elOptionShape = elOption.shape;\r\n var elOptionStyle = elOption.style;\r\n return ((elOptionType != null\r\n && elOptionType !== elInner.customGraphicType)\r\n || (elOptionType === 'path'\r\n && hasOwnPathData(elOptionShape)\r\n && getPathData(elOptionShape) !== elInner.customPathData)\r\n || (elOptionType === 'image'\r\n && hasOwn(elOptionStyle, 'image')\r\n && elOptionStyle.image !== elInner.customImagePath));\r\n }\r\n function doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\r\n var clipPathOpt = elOption.clipPath;\r\n if (clipPathOpt === false) {\r\n if (el && el.getClipPath()) {\r\n el.removeClipPath();\r\n }\r\n }\r\n else if (clipPathOpt) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\r\n clipPath = null;\r\n }\r\n if (!clipPath) {\r\n clipPath = createEl(clipPathOpt);\r\n if (__DEV__) {\r\n assert(clipPath instanceof Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\r\n }\r\n el.setClipPath(clipPath);\r\n }\r\n updateElNormal(clipPath, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\r\n }\r\n }\r\n function doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\r\n if (el.isGroup) {\r\n return;\r\n }\r\n processTxInfo(elOption, null, attachedTxInfo);\r\n processTxInfo(elOption, EMPHASIS, attachedTxInfo);\r\n var txConOptNormal = attachedTxInfo.normal.conOpt;\r\n var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\r\n var txConOptBlur = attachedTxInfo.blur.conOpt;\r\n var txConOptSelect = attachedTxInfo.select.conOpt;\r\n if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\r\n var textContent = el.getTextContent();\r\n if (txConOptNormal === false) {\r\n textContent && el.removeTextContent();\r\n }\r\n else {\r\n txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || { type: 'text' };\r\n if (!textContent) {\r\n textContent = createEl(txConOptNormal);\r\n el.setTextContent(textContent);\r\n }\r\n else {\r\n textContent.clearStates();\r\n }\r\n var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\r\n updateElNormal(textContent, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n if (stateName !== NORMAL) {\r\n var txConOptOtherState = attachedTxInfo[stateName].conOpt;\r\n updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null);\r\n }\r\n }\r\n txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\r\n }\r\n }\r\n }\r\n function processTxInfo(elOption, state, attachedTxInfo) {\r\n var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\r\n var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\r\n var elType = elOption.type;\r\n var txCfg = stateOpt ? stateOpt.textConfig : null;\r\n var txConOptNormal = elOption.textContent;\r\n var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\r\n if (styleOpt && (attachedTxInfo.isLegacy\r\n || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\r\n attachedTxInfo.isLegacy = true;\r\n var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\r\n if (!txCfg && convertResult.textConfig) {\r\n txCfg = convertResult.textConfig;\r\n }\r\n if (!txConOpt && convertResult.textContent) {\r\n txConOpt = convertResult.textContent;\r\n }\r\n }\r\n if (!state && txConOpt) {\r\n var txConOptNormal_1 = txConOpt;\r\n !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\r\n if (__DEV__) {\r\n txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\r\n }\r\n }\r\n var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\r\n info.cfg = txCfg;\r\n info.conOpt = txConOpt;\r\n }\r\n function retrieveStateOption(elOption, state) {\r\n return !state ? elOption : elOption ? elOption[state] : null;\r\n }\r\n function retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\r\n var style = stateOption && stateOption.style;\r\n if (style == null && state === EMPHASIS && stateOptionNormal) {\r\n style = stateOptionNormal.styleEmphasis;\r\n }\r\n return style;\r\n }\r\n function mergeChildren(el, dataIndex, elOption, seriesModel) {\r\n var newChildren = elOption.children;\r\n var newLen = newChildren ? newChildren.length : 0;\r\n var mergeChildren = elOption.$mergeChildren;\r\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\r\n var notMerge = mergeChildren === false;\r\n if (!newLen && !byName && !notMerge) {\r\n return;\r\n }\r\n if (byName) {\r\n diffGroupChildren({\r\n oldChildren: el.children() || [],\r\n newChildren: newChildren || [],\r\n dataIndex: dataIndex,\r\n seriesModel: seriesModel,\r\n group: el\r\n });\r\n return;\r\n }\r\n notMerge && el.removeAll();\r\n var index = 0;\r\n for (; index < newLen; index++) {\r\n newChildren[index] && doCreateOrUpdateEl(el.childAt(index), dataIndex, newChildren[index], seriesModel, el);\r\n }\r\n for (var i = el.childCount() - 1; i >= index; i--) {\r\n doRemoveEl(el.childAt(i), seriesModel, el);\r\n }\r\n }\r\n function diffGroupChildren(context) {\r\n (new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context))\r\n .add(processAddUpdate)\r\n .update(processAddUpdate)\r\n .remove(processRemove)\r\n .execute();\r\n }\r\n function getKey(item, idx) {\r\n var name = item && item.name;\r\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\r\n }\r\n function processAddUpdate(newIndex, oldIndex) {\r\n var context = this.context;\r\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\r\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\r\n doCreateOrUpdateEl(child, context.dataIndex, childOption, context.seriesModel, context.group);\r\n }\r\n function processRemove(oldIndex) {\r\n var context = this.context;\r\n var child = context.oldChildren[oldIndex];\r\n doRemoveEl(child, context.seriesModel, context.group);\r\n }\r\n function doRemoveEl(el, seriesModel, group) {\r\n if (el) {\r\n var leaveToProps = inner$f(el).leaveToProps;\r\n leaveToProps\r\n ? updateProps(el, leaveToProps, seriesModel, {\r\n cb: function () {\r\n group.remove(el);\r\n }\r\n })\r\n : group.remove(el);\r\n }\r\n }\r\n function getPathData(shape) {\r\n return shape && (shape.pathData || shape.d);\r\n }\r\n function hasOwnPathData(shape) {\r\n return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\r\n }\n\n function getSeriesStackId$1(seriesModel) {\r\n return seriesModel.get('stack')\r\n || '__ec_stack_' + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey$1(polar, axis) {\r\n return axis.dim + polar.model.componentIndex;\r\n }\r\n function barLayoutPolar(seriesType, ecModel, api) {\r\n var lastStackCoords = {};\r\n var barWidthAndOffset = calRadialBar(filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\r\n return !ecModel.isSeriesFiltered(seriesModel)\r\n && seriesModel.coordinateSystem\r\n && seriesModel.coordinateSystem.type === 'polar';\r\n }));\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (seriesModel.coordinateSystem.type !== 'polar') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var polar = seriesModel.coordinateSystem;\r\n var baseAxis = polar.getBaseAxis();\r\n var axisKey = getAxisKey$1(polar, baseAxis);\r\n var stackId = getSeriesStackId$1(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = polar.getOtherAxis(baseAxis);\r\n var cx = seriesModel.coordinateSystem.cx;\r\n var cy = seriesModel.coordinateSystem.cy;\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var clampLayout = baseAxis.dim !== 'radius'\r\n || !seriesModel.get('roundCap', true);\r\n var valueAxisStart = valueAxis.getExtent()[0];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var r0 = void 0;\r\n var r = void 0;\r\n var startAngle = void 0;\r\n var endAngle = void 0;\r\n if (valueAxis.dim === 'radius') {\r\n var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\r\n var angle = baseAxis.dataToCoord(baseValue);\r\n if (Math.abs(radiusSpan) < barMinHeight) {\r\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n r0 = baseCoord;\r\n r = baseCoord + radiusSpan;\r\n startAngle = angle - columnOffset;\r\n endAngle = startAngle - columnWidth;\r\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\r\n }\r\n else {\r\n var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\r\n var radius = baseAxis.dataToCoord(baseValue);\r\n if (Math.abs(angleSpan) < barMinAngle) {\r\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\r\n }\r\n r0 = radius + columnOffset;\r\n r = r0 + columnWidth;\r\n startAngle = baseCoord;\r\n endAngle = baseCoord + angleSpan;\r\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\r\n }\r\n data.setItemLayout(idx, {\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: r,\r\n startAngle: -startAngle * Math.PI / 180,\r\n endAngle: -endAngle * Math.PI / 180\r\n });\r\n }\r\n });\r\n }\r\n function calRadialBar(barSeries) {\r\n var columnsMap = {};\r\n each(barSeries, function (seriesModel, idx) {\r\n var data = seriesModel.getData();\r\n var polar = seriesModel.coordinateSystem;\r\n var baseAxis = polar.getBaseAxis();\r\n var axisKey = getAxisKey$1(polar, baseAxis);\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth = baseAxis.type === 'category'\r\n ? baseAxis.getBandWidth()\r\n : (Math.abs(axisExtent[1] - axisExtent[0]) / data.count());\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: '20%',\r\n gap: '30%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = getSeriesStackId$1(seriesModel);\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n if (barWidth && !stacks[stackId].width) {\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n stacks[stackId].width = barWidth;\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGap = parsePercent$2(columnsOnAxis.categoryGap, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column, stack) {\r\n var maxWidth = column.maxWidth;\r\n if (maxWidth && maxWidth < autoWidth) {\r\n maxWidth = Math.min(maxWidth, remainedWidth);\r\n if (column.width) {\r\n maxWidth = Math.min(maxWidth, column.width);\r\n }\r\n remainedWidth -= maxWidth;\r\n column.width = maxWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\n\n var PolarModel = (function (_super) {\r\n __extends(PolarModel, _super);\r\n function PolarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PolarModel.type;\r\n return _this;\r\n }\r\n PolarModel.prototype.findAxisModel = function (axisType) {\r\n var foundAxisModel;\r\n var ecModel = this.ecModel;\r\n ecModel.eachComponent(axisType, function (axisModel) {\r\n if (axisModel.getCoordSysModel() === this) {\r\n foundAxisModel = axisModel;\r\n }\r\n }, this);\r\n return foundAxisModel;\r\n };\r\n PolarModel.type = 'polar';\r\n PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\r\n PolarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n center: ['50%', '50%'],\r\n radius: '80%'\r\n };\r\n return PolarModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(PolarModel);\n\n var PolarAxisModel = (function (_super) {\r\n __extends(PolarAxisModel, _super);\r\n function PolarAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PolarAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n };\r\n PolarAxisModel.type = 'polarAxis';\r\n return PolarAxisModel;\r\n }(ComponentModel));\r\n mixin(PolarAxisModel, AxisModelCommonMixin);\r\n var AngleAxisModel = (function (_super) {\r\n __extends(AngleAxisModel, _super);\r\n function AngleAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AngleAxisModel.type;\r\n return _this;\r\n }\r\n AngleAxisModel.type = 'angleAxis';\r\n return AngleAxisModel;\r\n }(PolarAxisModel));\r\n var RadiusAxisModel = (function (_super) {\r\n __extends(RadiusAxisModel, _super);\r\n function RadiusAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadiusAxisModel.type;\r\n return _this;\r\n }\r\n RadiusAxisModel.type = 'radiusAxis';\r\n return RadiusAxisModel;\r\n }(PolarAxisModel));\r\n var angleAxisExtraOption = {\r\n startAngle: 90,\r\n clockwise: true,\r\n splitNumber: 12,\r\n axisLabel: {\r\n rotate: false\r\n }\r\n };\r\n var radiusAxisExtraOption = {\r\n splitNumber: 5\r\n };\r\n axisModelCreator('angle', AngleAxisModel, angleAxisExtraOption);\r\n axisModelCreator('radius', RadiusAxisModel, radiusAxisExtraOption);\n\n var RadiusAxis = (function (_super) {\r\n __extends(RadiusAxis, _super);\r\n function RadiusAxis(scale, radiusExtent) {\r\n return _super.call(this, 'radius', scale, radiusExtent) || this;\r\n }\r\n RadiusAxis.prototype.pointToData = function (point, clamp) {\r\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\r\n };\r\n return RadiusAxis;\r\n }(Axis));\r\n RadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\r\n RadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\n\n var inner$g = makeInner();\r\n var AngleAxis = (function (_super) {\r\n __extends(AngleAxis, _super);\r\n function AngleAxis(scale, angleExtent) {\r\n return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\r\n }\r\n AngleAxis.prototype.pointToData = function (point, clamp) {\r\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\r\n };\r\n AngleAxis.prototype.calculateCategoryInterval = function () {\r\n var axis = this;\r\n var labelModel = axis.getLabelModel();\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitH = Math.abs(unitSpan);\r\n var rect = getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\r\n var maxH = Math.max(rect.height, 7);\r\n var dh = maxH / unitH;\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(dh));\r\n var cache = inner$g(axis.model);\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n }\r\n return interval;\r\n };\r\n return AngleAxis;\r\n }(Axis));\r\n AngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\r\n AngleAxis.prototype.angleToData = Axis.prototype.coordToData;\n\n var Polar = (function () {\r\n function Polar(name) {\r\n this.dimensions = ['radius', 'angle'];\r\n this.type = 'polar';\r\n this.cx = 0;\r\n this.cy = 0;\r\n this._radiusAxis = new RadiusAxis();\r\n this._angleAxis = new AngleAxis();\r\n this.axisPointerEnabled = true;\r\n this.name = name || '';\r\n this._radiusAxis.polar = this._angleAxis.polar = this;\r\n }\r\n Polar.prototype.containPoint = function (point) {\r\n var coord = this.pointToCoord(point);\r\n return this._radiusAxis.contain(coord[0])\r\n && this._angleAxis.contain(coord[1]);\r\n };\r\n Polar.prototype.containData = function (data) {\r\n return this._radiusAxis.containData(data[0])\r\n && this._angleAxis.containData(data[1]);\r\n };\r\n Polar.prototype.getAxis = function (dim) {\r\n var key = ('_' + dim + 'Axis');\r\n return this[key];\r\n };\r\n Polar.prototype.getAxes = function () {\r\n return [this._radiusAxis, this._angleAxis];\r\n };\r\n Polar.prototype.getAxesByScale = function (scaleType) {\r\n var axes = [];\r\n var angleAxis = this._angleAxis;\r\n var radiusAxis = this._radiusAxis;\r\n angleAxis.scale.type === scaleType && axes.push(angleAxis);\r\n radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\r\n return axes;\r\n };\r\n Polar.prototype.getAngleAxis = function () {\r\n return this._angleAxis;\r\n };\r\n Polar.prototype.getRadiusAxis = function () {\r\n return this._radiusAxis;\r\n };\r\n Polar.prototype.getOtherAxis = function (axis) {\r\n var angleAxis = this._angleAxis;\r\n return axis === angleAxis ? this._radiusAxis : angleAxis;\r\n };\r\n Polar.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAngleAxis();\r\n };\r\n Polar.prototype.getTooltipAxes = function (dim) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? this.getAxis(dim) : this.getBaseAxis();\r\n return {\r\n baseAxes: [baseAxis],\r\n otherAxes: [this.getOtherAxis(baseAxis)]\r\n };\r\n };\r\n Polar.prototype.dataToPoint = function (data, clamp) {\r\n return this.coordToPoint([\r\n this._radiusAxis.dataToRadius(data[0], clamp),\r\n this._angleAxis.dataToAngle(data[1], clamp)\r\n ]);\r\n };\r\n Polar.prototype.pointToData = function (point, clamp) {\r\n var coord = this.pointToCoord(point);\r\n return [\r\n this._radiusAxis.radiusToData(coord[0], clamp),\r\n this._angleAxis.angleToData(coord[1], clamp)\r\n ];\r\n };\r\n Polar.prototype.pointToCoord = function (point) {\r\n var dx = point[0] - this.cx;\r\n var dy = point[1] - this.cy;\r\n var angleAxis = this.getAngleAxis();\r\n var extent = angleAxis.getExtent();\r\n var minAngle = Math.min(extent[0], extent[1]);\r\n var maxAngle = Math.max(extent[0], extent[1]);\r\n angleAxis.inverse\r\n ? (minAngle = maxAngle - 360)\r\n : (maxAngle = minAngle + 360);\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n dx /= radius;\r\n dy /= radius;\r\n var radian = Math.atan2(-dy, dx) / Math.PI * 180;\r\n var dir = radian < minAngle ? 1 : -1;\r\n while (radian < minAngle || radian > maxAngle) {\r\n radian += dir * 360;\r\n }\r\n return [radius, radian];\r\n };\r\n Polar.prototype.coordToPoint = function (coord) {\r\n var radius = coord[0];\r\n var radian = coord[1] / 180 * Math.PI;\r\n var x = Math.cos(radian) * radius + this.cx;\r\n var y = -Math.sin(radian) * radius + this.cy;\r\n return [x, y];\r\n };\r\n Polar.prototype.getArea = function () {\r\n var angleAxis = this.getAngleAxis();\r\n var radiusAxis = this.getRadiusAxis();\r\n var radiusExtent = radiusAxis.getExtent().slice();\r\n radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\r\n var angleExtent = angleAxis.getExtent();\r\n var RADIAN = Math.PI / 180;\r\n return {\r\n cx: this.cx,\r\n cy: this.cy,\r\n r0: radiusExtent[0],\r\n r: radiusExtent[1],\r\n startAngle: -angleExtent[0] * RADIAN,\r\n endAngle: -angleExtent[1] * RADIAN,\r\n clockwise: angleAxis.inverse,\r\n contain: function (x, y) {\r\n var dx = x - this.cx;\r\n var dy = y - this.cy;\r\n var d2 = dx * dx + dy * dy;\r\n var r = this.r;\r\n var r0 = this.r0;\r\n return d2 <= r * r && d2 >= r0 * r0;\r\n }\r\n };\r\n };\r\n Polar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$3(finder);\r\n return coordSys === this ? this.dataToPoint(value) : null;\r\n };\r\n Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$3(finder);\r\n return coordSys === this ? this.pointToData(pixel) : null;\r\n };\r\n return Polar;\r\n }());\r\n function getCoordSys$3(finder) {\r\n var seriesModel = finder.seriesModel;\r\n var polarModel = finder.polarModel;\r\n return polarModel && polarModel.coordinateSystem\r\n || seriesModel && seriesModel.coordinateSystem;\r\n }\n\n function resizePolar(polar, polarModel, api) {\r\n var center = polarModel.get('center');\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n polar.cx = parsePercent$2(center[0], width);\r\n polar.cy = parsePercent$2(center[1], height);\r\n var radiusAxis = polar.getRadiusAxis();\r\n var size = Math.min(width, height) / 2;\r\n var radius = polarModel.get('radius');\r\n if (radius == null) {\r\n radius = [0, '100%'];\r\n }\r\n else if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n var parsedRadius = [\r\n parsePercent$2(radius[0], size),\r\n parsePercent$2(radius[1], size)\r\n ];\r\n radiusAxis.inverse\r\n ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0])\r\n : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\r\n }\r\n function updatePolarScale(ecModel, api) {\r\n var polar = this;\r\n var angleAxis = polar.getAngleAxis();\r\n var radiusAxis = polar.getRadiusAxis();\r\n angleAxis.scale.setExtent(Infinity, -Infinity);\r\n radiusAxis.scale.setExtent(Infinity, -Infinity);\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.coordinateSystem === polar) {\r\n var data_1 = seriesModel.getData();\r\n each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\r\n radiusAxis.scale.unionExtentFromData(data_1, dim);\r\n });\r\n each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\r\n angleAxis.scale.unionExtentFromData(data_1, dim);\r\n });\r\n }\r\n });\r\n niceScaleExtent(angleAxis.scale, angleAxis.model);\r\n niceScaleExtent(radiusAxis.scale, radiusAxis.model);\r\n if (angleAxis.type === 'category' && !angleAxis.onBand) {\r\n var extent = angleAxis.getExtent();\r\n var diff = 360 / angleAxis.scale.count();\r\n angleAxis.inverse ? (extent[1] += diff) : (extent[1] -= diff);\r\n angleAxis.setExtent(extent[0], extent[1]);\r\n }\r\n }\r\n function isAngleAxisModel(axisModel) {\r\n return axisModel.mainType === 'angleAxis';\r\n }\r\n function setAxis(axis, axisModel) {\r\n axis.type = axisModel.get('type');\r\n axis.scale = createScaleByModel(axisModel);\r\n axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\r\n axis.inverse = axisModel.get('inverse');\r\n if (isAngleAxisModel(axisModel)) {\r\n axis.inverse = axis.inverse !== axisModel.get('clockwise');\r\n var startAngle = axisModel.get('startAngle');\r\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\r\n }\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n }\r\n var polarCreator = {\r\n dimensions: Polar.prototype.dimensions,\r\n create: function (ecModel, api) {\r\n var polarList = [];\r\n ecModel.eachComponent('polar', function (polarModel, idx) {\r\n var polar = new Polar(idx + '');\r\n polar.update = updatePolarScale;\r\n var radiusAxis = polar.getRadiusAxis();\r\n var angleAxis = polar.getAngleAxis();\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n setAxis(radiusAxis, radiusAxisModel);\r\n setAxis(angleAxis, angleAxisModel);\r\n resizePolar(polar, polarModel, api);\r\n polarList.push(polar);\r\n polarModel.coordinateSystem = polar;\r\n polar.model = polarModel;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'polar') {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!polarModel) {\r\n throw new Error('Polar \"' + retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\r\n }\r\n }\r\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\r\n }\r\n });\r\n return polarList;\r\n }\r\n };\r\n CoordinateSystemManager.register('polar', polarCreator);\n\n var elementList$1 = [\r\n 'axisLine',\r\n 'axisLabel',\r\n 'axisTick',\r\n 'minorTick',\r\n 'splitLine',\r\n 'minorSplitLine',\r\n 'splitArea'\r\n ];\r\n function getAxisLineShape(polar, rExtent, angle) {\r\n rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\r\n var start = polar.coordToPoint([rExtent[0], angle]);\r\n var end = polar.coordToPoint([rExtent[1], angle]);\r\n return {\r\n x1: start[0],\r\n y1: start[1],\r\n x2: end[0],\r\n y2: end[1]\r\n };\r\n }\r\n function getRadiusIdx(polar) {\r\n var radiusAxis = polar.getRadiusAxis();\r\n return radiusAxis.inverse ? 0 : 1;\r\n }\r\n function fixAngleOverlap(list) {\r\n var firstItem = list[0];\r\n var lastItem = list[list.length - 1];\r\n if (firstItem\r\n && lastItem\r\n && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\r\n list.pop();\r\n }\r\n }\r\n var AngleAxisView = (function (_super) {\r\n __extends(AngleAxisView, _super);\r\n function AngleAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AngleAxisView.type;\r\n _this.axisPointerClass = 'PolarAxisPointer';\r\n return _this;\r\n }\r\n AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\r\n this.group.removeAll();\r\n if (!angleAxisModel.get('show')) {\r\n return;\r\n }\r\n var angleAxis = angleAxisModel.axis;\r\n var polar = angleAxis.polar;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var ticksAngles = angleAxis.getTicksCoords();\r\n var minorTickAngles = angleAxis.getMinorTicksCoords();\r\n var labels = map(angleAxis.getViewLabels(), function (labelItem) {\r\n labelItem = clone(labelItem);\r\n labelItem.coord = angleAxis.dataToCoord(labelItem.tickValue);\r\n return labelItem;\r\n });\r\n fixAngleOverlap(labels);\r\n fixAngleOverlap(ticksAngles);\r\n each(elementList$1, function (name) {\r\n if (angleAxisModel.get([name, 'show'])\r\n && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\r\n angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\r\n }\r\n }, this);\r\n };\r\n AngleAxisView.type = 'angleAxis';\r\n return AngleAxisView;\r\n }(AxisView));\r\n var angelAxisElementsBuilders = {\r\n axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\r\n var rId = getRadiusIdx(polar);\r\n var r0Id = rId ? 0 : 1;\r\n var shape;\r\n if (radiusExtent[r0Id] === 0) {\r\n shape = new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: radiusExtent[rId]\r\n },\r\n style: lineStyleModel.getLineStyle(),\r\n z2: 1,\r\n silent: true\r\n });\r\n }\r\n else {\r\n shape = new Ring({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: radiusExtent[rId],\r\n r0: radiusExtent[r0Id]\r\n },\r\n style: lineStyleModel.getLineStyle(),\r\n z2: 1,\r\n silent: true\r\n });\r\n }\r\n shape.style.fill = null;\r\n group.add(shape);\r\n },\r\n axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var tickModel = angleAxisModel.getModel('axisTick');\r\n var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\r\n var radius = radiusExtent[getRadiusIdx(polar)];\r\n var lines = map(ticksAngles, function (tickAngleItem) {\r\n return new Line({\r\n shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\r\n });\r\n });\r\n group.add(mergePath$1(lines, {\r\n style: defaults(tickModel.getModel('lineStyle').getLineStyle(), {\r\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\r\n })\r\n }));\r\n },\r\n minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\r\n if (!minorTickAngles.length) {\r\n return;\r\n }\r\n var tickModel = angleAxisModel.getModel('axisTick');\r\n var minorTickModel = angleAxisModel.getModel('minorTick');\r\n var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\r\n var radius = radiusExtent[getRadiusIdx(polar)];\r\n var lines = [];\r\n for (var i = 0; i < minorTickAngles.length; i++) {\r\n for (var k = 0; k < minorTickAngles[i].length; k++) {\r\n lines.push(new Line({\r\n shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: defaults(minorTickModel.getModel('lineStyle').getLineStyle(), defaults(tickModel.getLineStyle(), {\r\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }))\r\n }));\r\n },\r\n axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\r\n var rawCategoryData = angleAxisModel.getCategories(true);\r\n var commonLabelModel = angleAxisModel.getModel('axisLabel');\r\n var labelMargin = commonLabelModel.get('margin');\r\n var triggerEvent = angleAxisModel.get('triggerEvent');\r\n each(labels, function (labelItem, idx) {\r\n var labelModel = commonLabelModel;\r\n var tickValue = labelItem.tickValue;\r\n var r = radiusExtent[getRadiusIdx(polar)];\r\n var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\r\n var cx = polar.cx;\r\n var cy = polar.cy;\r\n var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3\r\n ? 'center' : (p[0] > cx ? 'left' : 'right');\r\n var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3\r\n ? 'middle' : (p[1] > cy ? 'top' : 'bottom');\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\r\n }\r\n }\r\n var textEl = new ZRText({\r\n silent: AxisBuilder.isLabelSilent(angleAxisModel),\r\n style: createTextStyle(labelModel, {\r\n x: p[0],\r\n y: p[1],\r\n fill: labelModel.getTextColor()\r\n || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\r\n text: labelItem.formattedLabel,\r\n align: labelTextAlign,\r\n verticalAlign: labelTextVerticalAlign\r\n })\r\n });\r\n group.add(textEl);\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = labelItem.rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n }, this);\r\n },\r\n splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var splitLineModel = angleAxisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n var lineCount = 0;\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var splitLines = [];\r\n for (var i = 0; i < ticksAngles.length; i++) {\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Line({\r\n shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; i++) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: defaults({\r\n stroke: lineColors[i % lineColors.length]\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true,\r\n z: angleAxisModel.get('z')\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n if (!minorTickAngles.length) {\r\n return;\r\n }\r\n var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var lines = [];\r\n for (var i = 0; i < minorTickAngles.length; i++) {\r\n for (var k = 0; k < minorTickAngles[i].length; k++) {\r\n lines.push(new Line({\r\n shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: lineStyleModel.getLineStyle(),\r\n silent: true,\r\n z: angleAxisModel.get('z')\r\n }));\r\n },\r\n splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n if (!ticksAngles.length) {\r\n return;\r\n }\r\n var splitAreaModel = angleAxisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var lineCount = 0;\r\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\r\n var splitAreas = [];\r\n var RADIAN = Math.PI / 180;\r\n var prevAngle = -ticksAngles[0].coord * RADIAN;\r\n var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\r\n var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\r\n var clockwise = angleAxisModel.get('clockwise');\r\n for (var i = 1, len = ticksAngles.length; i <= len; i++) {\r\n var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\r\n var colorIndex = (lineCount++) % areaColors.length;\r\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\r\n splitAreas[colorIndex].push(new Sector({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r0: r0,\r\n r: r1,\r\n startAngle: prevAngle,\r\n endAngle: -coord * RADIAN,\r\n clockwise: clockwise\r\n },\r\n silent: true\r\n }));\r\n prevAngle = -coord * RADIAN;\r\n }\r\n for (var i = 0; i < splitAreas.length; i++) {\r\n group.add(mergePath$1(splitAreas[i], {\r\n style: defaults({\r\n fill: areaColors[i % areaColors.length]\r\n }, areaStyleModel.getAreaStyle()),\r\n silent: true\r\n }));\r\n }\r\n }\r\n };\r\n ComponentView.registerClass(AngleAxisView);\n\n var axisBuilderAttrs$3 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs$2 = [\r\n 'splitLine', 'splitArea', 'minorSplitLine'\r\n ];\r\n var RadiusAxisView = (function (_super) {\r\n __extends(RadiusAxisView, _super);\r\n function RadiusAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadiusAxisView.type;\r\n _this.axisPointerClass = 'PolarAxisPointer';\r\n return _this;\r\n }\r\n RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\r\n this.group.removeAll();\r\n if (!radiusAxisModel.get('show')) {\r\n return;\r\n }\r\n var oldAxisGroup = this._axisGroup;\r\n var newAxisGroup = this._axisGroup = new Group();\r\n this.group.add(newAxisGroup);\r\n var radiusAxis = radiusAxisModel.axis;\r\n var polar = radiusAxis.polar;\r\n var angleAxis = polar.getAngleAxis();\r\n var ticksCoords = radiusAxis.getTicksCoords();\r\n var minorTicksCoords = radiusAxis.getMinorTicksCoords();\r\n var axisAngle = angleAxis.getExtent()[0];\r\n var radiusExtent = radiusAxis.getExtent();\r\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\r\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\r\n each(axisBuilderAttrs$3, axisBuilder.add, axisBuilder);\r\n newAxisGroup.add(axisBuilder.getGroup());\r\n groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\r\n each(selfBuilderAttrs$2, function (name) {\r\n if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\r\n axisElementBuilders$2[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\r\n }\r\n }, this);\r\n };\r\n RadiusAxisView.type = 'radiusAxis';\r\n return RadiusAxisView;\r\n }(AxisView));\r\n var axisElementBuilders$2 = {\r\n splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\r\n var splitLineModel = radiusAxisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n var lineCount = 0;\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var splitLines = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: ticksCoords[i].coord\r\n }\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; i++) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: defaults({\r\n stroke: lineColors[i % lineColors.length],\r\n fill: null\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var lines = [];\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n lines.push(new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: minorTicksCoords[i][k].coord\r\n }\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: defaults({\r\n fill: null\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true\r\n }));\r\n },\r\n splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var lineCount = 0;\r\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\r\n var splitAreas = [];\r\n var prevRadius = ticksCoords[0].coord;\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var colorIndex = (lineCount++) % areaColors.length;\r\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\r\n splitAreas[colorIndex].push(new Sector({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r0: prevRadius,\r\n r: ticksCoords[i].coord,\r\n startAngle: 0,\r\n endAngle: Math.PI * 2\r\n },\r\n silent: true\r\n }));\r\n prevRadius = ticksCoords[i].coord;\r\n }\r\n for (var i = 0; i < splitAreas.length; i++) {\r\n group.add(mergePath$1(splitAreas[i], {\r\n style: defaults({\r\n fill: areaColors[i % areaColors.length]\r\n }, areaStyleModel.getAreaStyle()),\r\n silent: true\r\n }));\r\n }\r\n }\r\n };\r\n function layoutAxis(polar, radiusAxisModel, axisAngle) {\r\n return {\r\n position: [polar.cx, polar.cy],\r\n rotation: axisAngle / 180 * Math.PI,\r\n labelDirection: -1,\r\n tickDirection: -1,\r\n nameDirection: 1,\r\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\r\n z2: 1\r\n };\r\n }\r\n AxisView.registerClass(RadiusAxisView);\n\n var PolarAxisPointer = (function (_super) {\r\n __extends(PolarAxisPointer, _super);\r\n function PolarAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n if (axis.dim === 'angle') {\r\n this.animationThreshold = Math.PI / 18;\r\n }\r\n var polar = axis.polar;\r\n var otherAxis = polar.getOtherAxis(axis);\r\n var otherExtent = otherAxis.getExtent();\r\n var coordValue = axis.dataToCoord(value);\r\n var axisPointerType = axisPointerModel.get('type');\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder$2[axisPointerType](axis, polar, coordValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var labelMargin = axisPointerModel.get(['label', 'margin']);\r\n var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\r\n };\r\n return PolarAxisPointer;\r\n }(BaseAxisPointer));\r\n function getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\r\n var axis = axisModel.axis;\r\n var coord = axis.dataToCoord(value);\r\n var axisAngle = polar.getAngleAxis().getExtent()[0];\r\n axisAngle = axisAngle / 180 * Math.PI;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var position;\r\n var align;\r\n var verticalAlign;\r\n if (axis.dim === 'radius') {\r\n var transform = create$1();\r\n rotate(transform, transform, axisAngle);\r\n translate(transform, transform, [polar.cx, polar.cy]);\r\n position = applyTransform$1([coord, -labelMargin], transform);\r\n var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\r\n var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\r\n align = labelLayout.textAlign;\r\n verticalAlign = labelLayout.textVerticalAlign;\r\n }\r\n else {\r\n var r = radiusExtent[1];\r\n position = polar.coordToPoint([r + labelMargin, coord]);\r\n var cx = polar.cx;\r\n var cy = polar.cy;\r\n align = Math.abs(position[0] - cx) / r < 0.3\r\n ? 'center' : (position[0] > cx ? 'left' : 'right');\r\n verticalAlign = Math.abs(position[1] - cy) / r < 0.3\r\n ? 'middle' : (position[1] > cy ? 'top' : 'bottom');\r\n }\r\n return {\r\n position: position,\r\n align: align,\r\n verticalAlign: verticalAlign\r\n };\r\n }\r\n var pointerShapeBuilder$2 = {\r\n line: function (axis, polar, coordValue, otherExtent) {\r\n return axis.dim === 'angle'\r\n ? {\r\n type: 'Line',\r\n shape: makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\r\n }\r\n : {\r\n type: 'Circle',\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: coordValue\r\n }\r\n };\r\n },\r\n shadow: function (axis, polar, coordValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var radian = Math.PI / 180;\r\n return axis.dim === 'angle'\r\n ? {\r\n type: 'Sector',\r\n shape: makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\r\n }\r\n : {\r\n type: 'Sector',\r\n shape: makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\r\n };\r\n }\r\n };\r\n AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n\n registerLayout(curry(barLayoutPolar, 'bar'));\r\n extendComponentView({\r\n type: 'polar'\r\n });\n\n var GeoView = (function (_super) {\r\n __extends(GeoView, _super);\r\n function GeoView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GeoView.type;\r\n return _this;\r\n }\r\n GeoView.prototype.init = function (ecModel, api) {\r\n var mapDraw = new MapDraw(api);\r\n this._mapDraw = mapDraw;\r\n this.group.add(mapDraw.group);\r\n this._api = api;\r\n };\r\n GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\r\n var mapDraw = this._mapDraw;\r\n if (geoModel.get('show')) {\r\n mapDraw.draw(geoModel, ecModel, api, this, payload);\r\n }\r\n else {\r\n this._mapDraw.group.removeAll();\r\n }\r\n mapDraw.group.on('click', this._handleRegionClick, this);\r\n mapDraw.group.silent = geoModel.get('silent');\r\n this._model = geoModel;\r\n this.updateSelectStatus();\r\n };\r\n GeoView.prototype._handleRegionClick = function (e) {\r\n var current = e.target;\r\n var eventData;\r\n while ((eventData = getECData(current).eventData) == null) {\r\n current = current.__hostTarget || current.parent;\r\n }\r\n if (eventData) {\r\n this._api.dispatchAction({\r\n type: 'geoToggleSelect',\r\n geoId: this._model.id,\r\n statusChanged: true,\r\n name: eventData.name\r\n });\r\n }\r\n };\r\n GeoView.prototype.updateSelectStatus = function () {\r\n var _this = this;\r\n this._mapDraw.group.traverse(function (node) {\r\n var eventData = getECData(node).eventData;\r\n if (eventData) {\r\n _this._model.isSelected(eventData.name)\r\n ? enterSelect(node) : leaveSelect(node);\r\n return true;\r\n }\r\n });\r\n };\r\n GeoView.prototype.dispose = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n };\r\n GeoView.type = 'geo';\r\n return GeoView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GeoView);\n\n var GeoModel = (function (_super) {\r\n __extends(GeoModel, _super);\r\n function GeoModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GeoModel.type;\r\n return _this;\r\n }\r\n GeoModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n defaultEmphasis(option, 'label', ['show']);\r\n };\r\n GeoModel.prototype.optionUpdated = function () {\r\n var option = this.option;\r\n var self = this;\r\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\r\n var selectedMap = {};\r\n this._optionModelMap = reduce(option.regions || [], function (optionModelMap, regionOpt) {\r\n var regionName = regionOpt.name;\r\n if (regionName) {\r\n optionModelMap.set(regionName, new Model(regionOpt, self));\r\n if (regionOpt.selected) {\r\n selectedMap[regionName] = true;\r\n }\r\n }\r\n return optionModelMap;\r\n }, createHashMap());\r\n if (!option.selectedMap) {\r\n option.selectedMap = selectedMap;\r\n }\r\n };\r\n GeoModel.prototype.getRegionModel = function (name) {\r\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\r\n };\r\n GeoModel.prototype.getFormattedLabel = function (name, status) {\r\n var regionModel = this.getRegionModel(name);\r\n var formatter = status === 'normal'\r\n ? regionModel.get(['label', 'formatter'])\r\n : regionModel.get(['emphasis', 'label', 'formatter']);\r\n var params = {\r\n name: name\r\n };\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n return formatter.replace('{a}', name != null ? name : '');\r\n }\r\n };\r\n GeoModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n GeoModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n GeoModel.prototype.select = function (name) {\r\n var option = this.option;\r\n var selectedMode = option.selectedMode;\r\n if (!selectedMode) {\r\n return;\r\n }\r\n if (selectedMode !== 'multiple') {\r\n option.selectedMap = null;\r\n }\r\n var selectedMap = option.selectedMap || (option.selectedMap = {});\r\n selectedMap[name] = true;\r\n };\r\n GeoModel.prototype.unSelect = function (name) {\r\n var selectedMap = this.option.selectedMap;\r\n if (selectedMap) {\r\n selectedMap[name] = false;\r\n }\r\n };\r\n GeoModel.prototype.toggleSelected = function (name) {\r\n this[this.isSelected(name) ? 'unSelect' : 'select'](name);\r\n };\r\n GeoModel.prototype.isSelected = function (name) {\r\n var selectedMap = this.option.selectedMap;\r\n return !!(selectedMap && selectedMap[name]);\r\n };\r\n GeoModel.prototype._initSelectedMapFromData = function () {\r\n };\r\n GeoModel.type = 'geo';\r\n GeoModel.layoutMode = 'box';\r\n GeoModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n show: true,\r\n left: 'center',\r\n top: 'center',\r\n aspectScale: null,\r\n silent: false,\r\n map: '',\r\n boundingCoords: null,\r\n center: null,\r\n zoom: 1,\r\n scaleLimit: null,\r\n label: {\r\n show: false,\r\n color: '#000'\r\n },\r\n itemStyle: {\r\n borderWidth: 0.5,\r\n borderColor: '#444',\r\n color: '#eee'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n select: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n regions: []\r\n };\r\n return GeoModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(GeoModel);\n\n function makeAction(method, actionInfo) {\r\n actionInfo.update = 'geo:updateSelectStatus';\r\n registerAction(actionInfo, function (payload, ecModel) {\r\n var selected = {};\r\n ecModel.eachComponent({ mainType: 'geo', query: payload }, function (geoModel) {\r\n geoModel[method](payload.name);\r\n var geo = geoModel.coordinateSystem;\r\n each(geo.regions, function (region) {\r\n selected[region.name] = geoModel.isSelected(region.name) || false;\r\n });\r\n });\r\n return {\r\n selected: selected,\r\n name: payload.name\r\n };\r\n });\r\n }\r\n makeAction('toggleSelected', {\r\n type: 'geoToggleSelect',\r\n event: 'geoselectchanged'\r\n });\r\n makeAction('select', {\r\n type: 'geoSelect',\r\n event: 'geoselected'\r\n });\r\n makeAction('unSelect', {\r\n type: 'geoUnSelect',\r\n event: 'geounselected'\r\n });\n\n var PROXIMATE_ONE_DAY = 86400000;\r\n var Calendar = (function () {\r\n function Calendar(calendarModel, ecModel, api) {\r\n this.type = 'calendar';\r\n this.dimensions = Calendar.dimensions;\r\n this.getDimensionsInfo = Calendar.getDimensionsInfo;\r\n this._model = calendarModel;\r\n }\r\n Calendar.getDimensionsInfo = function () {\r\n return [{\r\n name: 'time', type: 'time'\r\n }, 'value'];\r\n };\r\n Calendar.prototype.getRangeInfo = function () {\r\n return this._rangeInfo;\r\n };\r\n Calendar.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n Calendar.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Calendar.prototype.getCellWidth = function () {\r\n return this._sw;\r\n };\r\n Calendar.prototype.getCellHeight = function () {\r\n return this._sh;\r\n };\r\n Calendar.prototype.getOrient = function () {\r\n return this._orient;\r\n };\r\n Calendar.prototype.getFirstDayOfWeek = function () {\r\n return this._firstDayOfWeek;\r\n };\r\n Calendar.prototype.getDateInfo = function (date) {\r\n date = parseDate(date);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n var mStr = m < 10 ? '0' + m : '' + m;\r\n var d = date.getDate();\r\n var dStr = d < 10 ? '0' + d : '' + d;\r\n var day = date.getDay();\r\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\r\n return {\r\n y: y + '',\r\n m: mStr,\r\n d: dStr,\r\n day: day,\r\n time: date.getTime(),\r\n formatedDate: y + '-' + mStr + '-' + dStr,\r\n date: date\r\n };\r\n };\r\n Calendar.prototype.getNextNDay = function (date, n) {\r\n n = n || 0;\r\n if (n === 0) {\r\n return this.getDateInfo(date);\r\n }\r\n date = new Date(this.getDateInfo(date).time);\r\n date.setDate(date.getDate() + n);\r\n return this.getDateInfo(date);\r\n };\r\n Calendar.prototype.update = function (ecModel, api) {\r\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\r\n this._orient = this._model.get('orient');\r\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\r\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\r\n var weeks = this._rangeInfo.weeks || 1;\r\n var whNames = ['width', 'height'];\r\n var cellSize = this._model.getCellSize().slice();\r\n var layoutParams = this._model.getBoxLayoutParams();\r\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\r\n each([0, 1], function (idx) {\r\n if (cellSizeSpecified(cellSize, idx)) {\r\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\r\n }\r\n });\r\n var whGlobal = {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n };\r\n var calendarRect = this._rect = getLayoutRect(layoutParams, whGlobal);\r\n each([0, 1], function (idx) {\r\n if (!cellSizeSpecified(cellSize, idx)) {\r\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\r\n }\r\n });\r\n function cellSizeSpecified(cellSize, idx) {\r\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\r\n }\r\n this._sw = cellSize[0];\r\n this._sh = cellSize[1];\r\n };\r\n Calendar.prototype.dataToPoint = function (data, clamp) {\r\n isArray(data) && (data = data[0]);\r\n clamp == null && (clamp = true);\r\n var dayInfo = this.getDateInfo(data);\r\n var range = this._rangeInfo;\r\n var date = dayInfo.formatedDate;\r\n if (clamp && !(dayInfo.time >= range.start.time\r\n && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\r\n return [NaN, NaN];\r\n }\r\n var week = dayInfo.day;\r\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\r\n if (this._orient === 'vertical') {\r\n return [\r\n this._rect.x + week * this._sw + this._sw / 2,\r\n this._rect.y + nthWeek * this._sh + this._sh / 2\r\n ];\r\n }\r\n return [\r\n this._rect.x + nthWeek * this._sw + this._sw / 2,\r\n this._rect.y + week * this._sh + this._sh / 2\r\n ];\r\n };\r\n Calendar.prototype.pointToData = function (point) {\r\n var date = this.pointToDate(point);\r\n return date && date.time;\r\n };\r\n Calendar.prototype.dataToRect = function (data, clamp) {\r\n var point = this.dataToPoint(data, clamp);\r\n return {\r\n contentShape: {\r\n x: point[0] - (this._sw - this._lineWidth) / 2,\r\n y: point[1] - (this._sh - this._lineWidth) / 2,\r\n width: this._sw - this._lineWidth,\r\n height: this._sh - this._lineWidth\r\n },\r\n center: point,\r\n tl: [\r\n point[0] - this._sw / 2,\r\n point[1] - this._sh / 2\r\n ],\r\n tr: [\r\n point[0] + this._sw / 2,\r\n point[1] - this._sh / 2\r\n ],\r\n br: [\r\n point[0] + this._sw / 2,\r\n point[1] + this._sh / 2\r\n ],\r\n bl: [\r\n point[0] - this._sw / 2,\r\n point[1] + this._sh / 2\r\n ]\r\n };\r\n };\r\n Calendar.prototype.pointToDate = function (point) {\r\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\r\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\r\n var range = this._rangeInfo.range;\r\n if (this._orient === 'vertical') {\r\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\r\n }\r\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\r\n };\r\n Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$4(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$4(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n Calendar.prototype.containPoint = function (point) {\r\n console.warn('Not implemented.');\r\n return false;\r\n };\r\n Calendar.prototype._initRangeOption = function () {\r\n var range = this._model.get('range');\r\n var normalizedRange;\r\n if (isArray(range) && range.length === 1) {\r\n range = range[0];\r\n }\r\n if (!isArray(range)) {\r\n var rangeStr = range.toString();\r\n if (/^\\d{4}$/.test(rangeStr)) {\r\n normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\r\n }\r\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\r\n var start = this.getDateInfo(rangeStr);\r\n var firstDay = start.date;\r\n firstDay.setMonth(firstDay.getMonth() + 1);\r\n var end = this.getNextNDay(firstDay, -1);\r\n normalizedRange = [start.formatedDate, end.formatedDate];\r\n }\r\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\r\n normalizedRange = [rangeStr, rangeStr];\r\n }\r\n }\r\n else {\r\n normalizedRange = range;\r\n }\r\n if (!normalizedRange) {\r\n if (__DEV__) {\r\n logError('Invalid date range.');\r\n }\r\n return range;\r\n }\r\n var tmp = this._getRangeInfo(normalizedRange);\r\n if (tmp.start.time > tmp.end.time) {\r\n normalizedRange.reverse();\r\n }\r\n return normalizedRange;\r\n };\r\n Calendar.prototype._getRangeInfo = function (range) {\r\n var parsedRange = [\r\n this.getDateInfo(range[0]),\r\n this.getDateInfo(range[1])\r\n ];\r\n var reversed;\r\n if (parsedRange[0].time > parsedRange[1].time) {\r\n reversed = true;\r\n parsedRange.reverse();\r\n }\r\n var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY)\r\n - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\r\n var date = new Date(parsedRange[0].time);\r\n var startDateNum = date.getDate();\r\n var endDateNum = parsedRange[1].date.getDate();\r\n date.setDate(startDateNum + allDay - 1);\r\n var dateNum = date.getDate();\r\n if (dateNum !== endDateNum) {\r\n var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\r\n while ((dateNum = date.getDate()) !== endDateNum\r\n && (date.getTime() - parsedRange[1].time) * sign > 0) {\r\n allDay -= sign;\r\n date.setDate(dateNum - sign);\r\n }\r\n }\r\n var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\r\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\r\n reversed && parsedRange.reverse();\r\n return {\r\n range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\r\n start: parsedRange[0],\r\n end: parsedRange[1],\r\n allDay: allDay,\r\n weeks: weeks,\r\n nthWeek: nthWeek,\r\n fweek: parsedRange[0].day,\r\n lweek: parsedRange[1].day\r\n };\r\n };\r\n Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\r\n var rangeInfo = this._getRangeInfo(range);\r\n if (nthWeek > rangeInfo.weeks\r\n || (nthWeek === 0 && day < rangeInfo.fweek)\r\n || (nthWeek === rangeInfo.weeks && day > rangeInfo.lweek)) {\r\n return null;\r\n }\r\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\r\n var date = new Date(rangeInfo.start.time);\r\n date.setDate(+rangeInfo.start.d + nthDay);\r\n return this.getDateInfo(date);\r\n };\r\n Calendar.create = function (ecModel, api) {\r\n var calendarList = [];\r\n ecModel.eachComponent('calendar', function (calendarModel) {\r\n var calendar = new Calendar(calendarModel, ecModel, api);\r\n calendarList.push(calendar);\r\n calendarModel.coordinateSystem = calendar;\r\n });\r\n ecModel.eachSeries(function (calendarSeries) {\r\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\r\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\r\n }\r\n });\r\n return calendarList;\r\n };\r\n Calendar.dimensions = ['time', 'value'];\r\n return Calendar;\r\n }());\r\n function getCoordSys$4(finder) {\r\n var calendarModel = finder.calendarModel;\r\n var seriesModel = finder.seriesModel;\r\n var coordSys = calendarModel\r\n ? calendarModel.coordinateSystem\r\n : seriesModel\r\n ? seriesModel.coordinateSystem\r\n : null;\r\n return coordSys;\r\n }\r\n CoordinateSystemManager.register('calendar', Calendar);\n\n var CalendarModel = (function (_super) {\r\n __extends(CalendarModel, _super);\r\n function CalendarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CalendarModel.type;\r\n return _this;\r\n }\r\n CalendarModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.apply(this, arguments);\r\n mergeAndNormalizeLayoutParams(option, inputPositionParams);\r\n };\r\n CalendarModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n mergeAndNormalizeLayoutParams(this.option, option);\r\n };\r\n CalendarModel.prototype.getCellSize = function () {\r\n return this.option.cellSize;\r\n };\r\n CalendarModel.type = 'calendar';\r\n CalendarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n left: 80,\r\n top: 60,\r\n cellSize: 20,\r\n orient: 'horizontal',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#000',\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n color: '#fff',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n },\r\n dayLabel: {\r\n show: true,\r\n firstDay: 0,\r\n position: 'start',\r\n margin: '50%',\r\n nameMap: 'en',\r\n color: '#000'\r\n },\r\n monthLabel: {\r\n show: true,\r\n position: 'start',\r\n margin: 5,\r\n align: 'center',\r\n nameMap: 'en',\r\n formatter: null,\r\n color: '#000'\r\n },\r\n yearLabel: {\r\n show: true,\r\n position: null,\r\n margin: 30,\r\n formatter: null,\r\n color: '#ccc',\r\n fontFamily: 'sans-serif',\r\n fontWeight: 'bolder',\r\n fontSize: 20\r\n }\r\n };\r\n return CalendarModel;\r\n }(ComponentModel));\r\n function mergeAndNormalizeLayoutParams(target, raw) {\r\n var cellSize = target.cellSize;\r\n var cellSizeArr;\r\n if (!isArray(cellSize)) {\r\n cellSizeArr = target.cellSize = [cellSize, cellSize];\r\n }\r\n else {\r\n cellSizeArr = cellSize;\r\n }\r\n if (cellSizeArr.length === 1) {\r\n cellSizeArr[1] = cellSizeArr[0];\r\n }\r\n var ignoreSize = map([0, 1], function (hvIdx) {\r\n if (sizeCalculable(raw, hvIdx)) {\r\n cellSizeArr[hvIdx] = 'auto';\r\n }\r\n return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\r\n });\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(CalendarModel);\n\n var MONTH_TEXT = {\r\n EN: [\r\n 'Jan', 'Feb', 'Mar',\r\n 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep',\r\n 'Oct', 'Nov', 'Dec'\r\n ],\r\n CN: [\r\n '一月', '二月', '三月',\r\n '四月', '五月', '六月',\r\n '七月', '八月', '九月',\r\n '十月', '十一月', '十二月'\r\n ]\r\n };\r\n var WEEK_TEXT = {\r\n EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\r\n CN: ['日', '一', '二', '三', '四', '五', '六']\r\n };\r\n var CalendarView = (function (_super) {\r\n __extends(CalendarView, _super);\r\n function CalendarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CalendarView.type;\r\n return _this;\r\n }\r\n CalendarView.prototype.render = function (calendarModel, ecModel, api) {\r\n var group = this.group;\r\n group.removeAll();\r\n var coordSys = calendarModel.coordinateSystem;\r\n var rangeData = coordSys.getRangeInfo();\r\n var orient = coordSys.getOrient();\r\n this._renderDayRect(calendarModel, rangeData, group);\r\n this._renderLines(calendarModel, rangeData, orient, group);\r\n this._renderYearText(calendarModel, rangeData, orient, group);\r\n this._renderMonthText(calendarModel, orient, group);\r\n this._renderWeekText(calendarModel, rangeData, orient, group);\r\n };\r\n CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\r\n var coordSys = calendarModel.coordinateSystem;\r\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\r\n var sw = coordSys.getCellWidth();\r\n var sh = coordSys.getCellHeight();\r\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\r\n var point = coordSys.dataToRect([i], false).tl;\r\n var rect = new Rect({\r\n shape: {\r\n x: point[0],\r\n y: point[1],\r\n width: sw,\r\n height: sh\r\n },\r\n cursor: 'default',\r\n style: itemRectStyleModel\r\n });\r\n group.add(rect);\r\n }\r\n };\r\n CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\r\n var self = this;\r\n var coordSys = calendarModel.coordinateSystem;\r\n var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\r\n var show = calendarModel.get(['splitLine', 'show']);\r\n var lineWidth = lineStyleModel.lineWidth;\r\n this._tlpoints = [];\r\n this._blpoints = [];\r\n this._firstDayOfMonth = [];\r\n this._firstDayPoints = [];\r\n var firstDay = rangeData.start;\r\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\r\n addPoints(firstDay.formatedDate);\r\n if (i === 0) {\r\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\r\n }\r\n var date = firstDay.date;\r\n date.setMonth(date.getMonth() + 1);\r\n firstDay = coordSys.getDateInfo(date);\r\n }\r\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\r\n function addPoints(date) {\r\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\r\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\r\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\r\n self._tlpoints.push(points[0]);\r\n self._blpoints.push(points[points.length - 1]);\r\n show && self._drawSplitline(points, lineStyleModel, group);\r\n }\r\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\r\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\r\n };\r\n CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\r\n var rs = [points[0].slice(), points[points.length - 1].slice()];\r\n var idx = orient === 'horizontal' ? 0 : 1;\r\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\r\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\r\n return rs;\r\n };\r\n CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\r\n var poyline = new Polyline({\r\n z2: 20,\r\n shape: {\r\n points: points\r\n },\r\n style: lineStyle\r\n });\r\n group.add(poyline);\r\n };\r\n CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\r\n var coordSys = calendarModel.coordinateSystem;\r\n var parsedDate = coordSys.getDateInfo(date);\r\n var points = [];\r\n for (var i = 0; i < 7; i++) {\r\n var tmpD = coordSys.getNextNDay(parsedDate.time, i);\r\n var point = coordSys.dataToRect([tmpD.time], false);\r\n points[2 * tmpD.day] = point.tl;\r\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\r\n }\r\n return points;\r\n };\r\n CalendarView.prototype._formatterLabel = function (formatter, params) {\r\n if (typeof formatter === 'string' && formatter) {\r\n return formatTplSimple(formatter, params);\r\n }\r\n if (typeof formatter === 'function') {\r\n return formatter(params);\r\n }\r\n return params.nameMap;\r\n };\r\n CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\r\n var x = point[0];\r\n var y = point[1];\r\n var aligns = ['center', 'bottom'];\r\n if (position === 'bottom') {\r\n y += margin;\r\n aligns = ['center', 'top'];\r\n }\r\n else if (position === 'left') {\r\n x -= margin;\r\n }\r\n else if (position === 'right') {\r\n x += margin;\r\n aligns = ['center', 'top'];\r\n }\r\n else {\r\n y -= margin;\r\n }\r\n var rotate = 0;\r\n if (position === 'left' || position === 'right') {\r\n rotate = Math.PI / 2;\r\n }\r\n return {\r\n rotation: rotate,\r\n x: x,\r\n y: y,\r\n style: {\r\n align: aligns[0],\r\n verticalAlign: aligns[1]\r\n }\r\n };\r\n };\r\n CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\r\n var yearLabel = calendarModel.getModel('yearLabel');\r\n if (!yearLabel.get('show')) {\r\n return;\r\n }\r\n var margin = yearLabel.get('margin');\r\n var pos = yearLabel.get('position');\r\n if (!pos) {\r\n pos = orient !== 'horizontal' ? 'top' : 'left';\r\n }\r\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\r\n var xc = (points[0][0] + points[1][0]) / 2;\r\n var yc = (points[0][1] + points[1][1]) / 2;\r\n var idx = orient === 'horizontal' ? 0 : 1;\r\n var posPoints = {\r\n top: [xc, points[idx][1]],\r\n bottom: [xc, points[1 - idx][1]],\r\n left: [points[1 - idx][0], yc],\r\n right: [points[idx][0], yc]\r\n };\r\n var name = rangeData.start.y;\r\n if (+rangeData.end.y > +rangeData.start.y) {\r\n name = name + '-' + rangeData.end.y;\r\n }\r\n var formatter = yearLabel.get('formatter');\r\n var params = {\r\n start: rangeData.start.y,\r\n end: rangeData.end.y,\r\n nameMap: name\r\n };\r\n var content = this._formatterLabel(formatter, params);\r\n var yearText = new ZRText({\r\n z2: 30,\r\n style: createTextStyle(yearLabel, {\r\n text: content\r\n })\r\n });\r\n yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\r\n group.add(yearText);\r\n };\r\n CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\r\n var align = 'left';\r\n var vAlign = 'top';\r\n var x = point[0];\r\n var y = point[1];\r\n if (orient === 'horizontal') {\r\n y = y + margin;\r\n if (isCenter) {\r\n align = 'center';\r\n }\r\n if (position === 'start') {\r\n vAlign = 'bottom';\r\n }\r\n }\r\n else {\r\n x = x + margin;\r\n if (isCenter) {\r\n vAlign = 'middle';\r\n }\r\n if (position === 'start') {\r\n align = 'right';\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n align: align,\r\n verticalAlign: vAlign\r\n };\r\n };\r\n CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\r\n var monthLabel = calendarModel.getModel('monthLabel');\r\n if (!monthLabel.get('show')) {\r\n return;\r\n }\r\n var nameMap = monthLabel.get('nameMap');\r\n var margin = monthLabel.get('margin');\r\n var pos = monthLabel.get('position');\r\n var align = monthLabel.get('align');\r\n var termPoints = [this._tlpoints, this._blpoints];\r\n if (isString(nameMap)) {\r\n nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\r\n }\r\n var idx = pos === 'start' ? 0 : 1;\r\n var axis = orient === 'horizontal' ? 0 : 1;\r\n margin = pos === 'start' ? -margin : margin;\r\n var isCenter = (align === 'center');\r\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\r\n var tmp = termPoints[idx][i].slice();\r\n var firstDay = this._firstDayOfMonth[i];\r\n if (isCenter) {\r\n var firstDayPoints = this._firstDayPoints[i];\r\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\r\n }\r\n var formatter = monthLabel.get('formatter');\r\n var name_1 = nameMap[+firstDay.m - 1];\r\n var params = {\r\n yyyy: firstDay.y,\r\n yy: (firstDay.y + '').slice(2),\r\n MM: firstDay.m,\r\n M: +firstDay.m,\r\n nameMap: name_1\r\n };\r\n var content = this._formatterLabel(formatter, params);\r\n var monthText = new ZRText({\r\n z2: 30,\r\n style: extend(createTextStyle(monthLabel, { text: content }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\r\n });\r\n group.add(monthText);\r\n }\r\n };\r\n CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\r\n var align = 'center';\r\n var vAlign = 'middle';\r\n var x = point[0];\r\n var y = point[1];\r\n var isStart = position === 'start';\r\n if (orient === 'horizontal') {\r\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\r\n align = isStart ? 'right' : 'left';\r\n }\r\n else {\r\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\r\n vAlign = isStart ? 'bottom' : 'top';\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n align: align,\r\n verticalAlign: vAlign\r\n };\r\n };\r\n CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\r\n var dayLabel = calendarModel.getModel('dayLabel');\r\n if (!dayLabel.get('show')) {\r\n return;\r\n }\r\n var coordSys = calendarModel.coordinateSystem;\r\n var pos = dayLabel.get('position');\r\n var nameMap = dayLabel.get('nameMap');\r\n var margin = dayLabel.get('margin');\r\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\r\n if (isString(nameMap)) {\r\n nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\r\n }\r\n var start = coordSys.getNextNDay(rangeData.end.time, (7 - rangeData.lweek)).time;\r\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\r\n margin = parsePercent$2(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\r\n if (pos === 'start') {\r\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\r\n margin = -margin;\r\n }\r\n for (var i = 0; i < 7; i++) {\r\n var tmpD = coordSys.getNextNDay(start, i);\r\n var point = coordSys.dataToRect([tmpD.time], false).center;\r\n var day = i;\r\n day = Math.abs((i + firstDayOfWeek) % 7);\r\n var weekText = new ZRText({\r\n z2: 30,\r\n style: extend(createTextStyle(dayLabel, { text: nameMap[day] }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\r\n });\r\n group.add(weekText);\r\n }\r\n };\r\n CalendarView.type = 'calendar';\r\n return CalendarView;\r\n }(ComponentView));\r\n ComponentView.registerClass(CalendarView);\n\n var _nonShapeGraphicElements = {\r\n path: null,\r\n compoundPath: null,\r\n group: Group,\r\n image: ZRImage,\r\n text: ZRText\r\n };\r\n registerPreprocessor(function (option) {\r\n var graphicOption = option.graphic;\r\n if (isArray(graphicOption)) {\r\n if (!graphicOption[0] || !graphicOption[0].elements) {\r\n option.graphic = [{ elements: graphicOption }];\r\n }\r\n else {\r\n option.graphic = [option.graphic[0]];\r\n }\r\n }\r\n else if (graphicOption && !graphicOption.elements) {\r\n option.graphic = [{ elements: [graphicOption] }];\r\n }\r\n });\r\n var GraphicModel = extendComponentModel({\r\n type: 'graphic',\r\n defaultOption: {\r\n elements: [],\r\n parentId: null\r\n },\r\n _elOptionsToUpdate: null,\r\n mergeOption: function (option) {\r\n var elements = this.option.elements;\r\n this.option.elements = null;\r\n GraphicModel.superApply(this, 'mergeOption', arguments);\r\n this.option.elements = elements;\r\n },\r\n optionUpdated: function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var newList = (isInit ? thisOption : newOption).elements;\r\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\r\n var flattenedList = [];\r\n this._flatten(newList, flattenedList);\r\n var mappingResult = mappingToExists(existList, flattenedList, 'normalMerge');\r\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\r\n each(mappingResult, function (resultItem, index) {\r\n var newElOption = resultItem.newOption;\r\n if (__DEV__) {\r\n assert(isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\r\n }\r\n if (!newElOption) {\r\n return;\r\n }\r\n elOptionsToUpdate.push(newElOption);\r\n setKeyInfoToNewElOption(resultItem, newElOption);\r\n mergeNewElOptionToExist(existList, index, newElOption);\r\n setLayoutInfoToExist(existList[index], newElOption);\r\n }, this);\r\n for (var i = existList.length - 1; i >= 0; i--) {\r\n if (existList[i] == null) {\r\n existList.splice(i, 1);\r\n }\r\n else {\r\n delete existList[i].$action;\r\n }\r\n }\r\n },\r\n _flatten: function (optionList, result, parentOption) {\r\n each(optionList, function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (parentOption) {\r\n option.parentOption = parentOption;\r\n }\r\n result.push(option);\r\n var children = option.children;\r\n if (option.type === 'group' && children) {\r\n this._flatten(children, result, option);\r\n }\r\n delete option.children;\r\n }, this);\r\n },\r\n useElOptionsToUpdate: function () {\r\n var els = this._elOptionsToUpdate;\r\n this._elOptionsToUpdate = null;\r\n return els;\r\n }\r\n });\r\n extendComponentView({\r\n type: 'graphic',\r\n init: function (ecModel, api) {\r\n this._elMap = createHashMap();\r\n this._lastGraphicModel;\r\n },\r\n render: function (graphicModel, ecModel, api) {\r\n if (graphicModel !== this._lastGraphicModel) {\r\n this._clear();\r\n }\r\n this._lastGraphicModel = graphicModel;\r\n this._updateElements(graphicModel);\r\n this._relocate(graphicModel, api);\r\n },\r\n _updateElements: function (graphicModel) {\r\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\r\n if (!elOptionsToUpdate) {\r\n return;\r\n }\r\n var elMap = this._elMap;\r\n var rootGroup = this.group;\r\n each(elOptionsToUpdate, function (elOption) {\r\n var $action = elOption.$action;\r\n var id = elOption.id;\r\n var existEl = elMap.get(id);\r\n var parentId = elOption.parentId;\r\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\r\n var elOptionStyle = elOption.style;\r\n if (elOption.type === 'text' && elOptionStyle) {\r\n if (elOption.hv && elOption.hv[1]) {\r\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;\r\n }\r\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\r\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\r\n }\r\n var elOptionCleaned = getCleanedElOption(elOption);\r\n if (__DEV__) {\r\n existEl && assert(targetElParent === existEl.parent, 'Changing parent is not supported.');\r\n }\r\n if (!$action || $action === 'merge') {\r\n existEl\r\n ? existEl.attr(elOptionCleaned)\r\n : createEl$1(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'replace') {\r\n removeEl(existEl, elMap);\r\n createEl$1(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'remove') {\r\n removeEl(existEl, elMap);\r\n }\r\n var el = elMap.get(id);\r\n if (el) {\r\n el.__ecGraphicWidthOption = elOption.width;\r\n el.__ecGraphicHeightOption = elOption.height;\r\n setEventData(el, graphicModel);\r\n }\r\n });\r\n },\r\n _relocate: function (graphicModel, api) {\r\n var elOptions = graphicModel.option.elements;\r\n var rootGroup = this.group;\r\n var elMap = this._elMap;\r\n var apiWidth = api.getWidth();\r\n var apiHeight = api.getHeight();\r\n for (var i = 0; i < elOptions.length; i++) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el || !el.isGroup) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var isParentRoot = parentEl === rootGroup;\r\n el.__ecGraphicWidth = parsePercent$2(el.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentEl.__ecGraphicWidth) || 0;\r\n el.__ecGraphicHeight = parsePercent$2(el.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentEl.__ecGraphicHeight) || 0;\r\n }\r\n for (var i = elOptions.length - 1; i >= 0; i--) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var containerInfo = parentEl === rootGroup\r\n ? {\r\n width: apiWidth,\r\n height: apiHeight\r\n }\r\n : {\r\n width: parentEl.__ecGraphicWidth,\r\n height: parentEl.__ecGraphicHeight\r\n };\r\n positionElement(el, elOption, containerInfo, null, { hv: elOption.hv, boundingMode: elOption.bounding });\r\n }\r\n },\r\n _clear: function () {\r\n var elMap = this._elMap;\r\n elMap.each(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n this._elMap = createHashMap();\r\n },\r\n dispose: function () {\r\n this._clear();\r\n }\r\n });\r\n function createEl$1(id, targetElParent, elOption, elMap) {\r\n var graphicType = elOption.type;\r\n if (__DEV__) {\r\n assert(graphicType, 'graphic type MUST be set');\r\n }\r\n var Clz = _nonShapeGraphicElements.hasOwnProperty(graphicType)\r\n ? _nonShapeGraphicElements[graphicType]\r\n : getShapeClass(graphicType);\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type can not be found');\r\n }\r\n var el = new Clz(elOption);\r\n targetElParent.add(el);\r\n elMap.set(id, el);\r\n el.__ecGraphicId = id;\r\n }\r\n function removeEl(existEl, elMap) {\r\n var existElParent = existEl && existEl.parent;\r\n if (existElParent) {\r\n existEl.type === 'group' && existEl.traverse(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n elMap.removeKey(existEl.__ecGraphicId);\r\n existElParent.remove(existEl);\r\n }\r\n }\r\n function getCleanedElOption(elOption) {\r\n elOption = extend({}, elOption);\r\n each(['id', 'parentId', '$action', 'hv', 'bounding'].concat(LOCATION_PARAMS), function (name) {\r\n delete elOption[name];\r\n });\r\n return elOption;\r\n }\r\n function isSetLoc(obj, props) {\r\n var isSet;\r\n each(props, function (prop) {\r\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\r\n });\r\n return isSet;\r\n }\r\n function setKeyInfoToNewElOption(resultItem, newElOption) {\r\n var existElOption = resultItem.existing;\r\n newElOption.id = resultItem.keyInfo.id;\r\n !newElOption.type && existElOption && (newElOption.type = existElOption.type);\r\n if (newElOption.parentId == null) {\r\n var newElParentOption = newElOption.parentOption;\r\n if (newElParentOption) {\r\n newElOption.parentId = newElParentOption.id;\r\n }\r\n else if (existElOption) {\r\n newElOption.parentId = existElOption.parentId;\r\n }\r\n }\r\n newElOption.parentOption = null;\r\n }\r\n function mergeNewElOptionToExist(existList, index, newElOption) {\r\n var newElOptCopy = extend({}, newElOption);\r\n var existElOption = existList[index];\r\n var $action = newElOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n if (existElOption) {\r\n if (__DEV__) {\r\n var newType = newElOption.type;\r\n assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\r\n }\r\n merge(existElOption, newElOptCopy, true);\r\n mergeLayoutParam(existElOption, newElOptCopy, { ignoreSize: true });\r\n copyLayoutParams(newElOption, existElOption);\r\n }\r\n else {\r\n existList[index] = newElOptCopy;\r\n }\r\n }\r\n else if ($action === 'replace') {\r\n existList[index] = newElOptCopy;\r\n }\r\n else if ($action === 'remove') {\r\n existElOption && (existList[index] = null);\r\n }\r\n }\r\n function setLayoutInfoToExist(existItem, newElOption) {\r\n if (!existItem) {\r\n return;\r\n }\r\n existItem.hv = newElOption.hv = [\r\n isSetLoc(newElOption, ['left', 'right']),\r\n isSetLoc(newElOption, ['top', 'bottom'])\r\n ];\r\n if (existItem.type === 'group') {\r\n existItem.width == null && (existItem.width = newElOption.width = 0);\r\n existItem.height == null && (existItem.height = newElOption.height = 0);\r\n }\r\n }\r\n function setEventData(el, graphicModel, elOption) {\r\n var eventData = el.eventData;\r\n if (!el.silent && !el.ignore && !eventData) {\r\n eventData = el.eventData = {\r\n componentType: 'graphic',\r\n componentIndex: graphicModel.componentIndex,\r\n name: el.name\r\n };\r\n }\r\n if (eventData) {\r\n eventData.info = el.info;\r\n }\r\n }\n\n var ToolboxFeature = (function () {\r\n function ToolboxFeature() {\r\n }\r\n return ToolboxFeature;\r\n }());\r\n var features = {};\r\n function registerFeature(name, ctor) {\r\n features[name] = ctor;\r\n }\r\n function getFeature(name) {\r\n return features[name];\r\n }\n\n var ToolboxModel = (function (_super) {\r\n __extends(ToolboxModel, _super);\r\n function ToolboxModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ToolboxModel.type;\r\n return _this;\r\n }\r\n ToolboxModel.prototype.optionUpdated = function () {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n var ecModel = this.ecModel;\r\n each(this.option.feature, function (featureOpt, featureName) {\r\n var Feature = getFeature(featureName);\r\n if (Feature) {\r\n if (Feature.getDefaultOption) {\r\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\r\n }\r\n merge(featureOpt, Feature.defaultOption);\r\n }\r\n });\r\n };\r\n ToolboxModel.type = 'toolbox';\r\n ToolboxModel.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n ToolboxModel.defaultOption = {\r\n show: true,\r\n z: 6,\r\n zlevel: 0,\r\n orient: 'horizontal',\r\n left: 'right',\r\n top: 'top',\r\n backgroundColor: 'transparent',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemSize: 15,\r\n itemGap: 8,\r\n showTitle: true,\r\n iconStyle: {\r\n borderColor: '#666',\r\n color: 'none'\r\n },\r\n emphasis: {\r\n iconStyle: {\r\n borderColor: '#3E98C5'\r\n }\r\n },\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return ToolboxModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ToolboxModel);\n\n function layout$3(group, componentModel, api) {\r\n var boxLayoutParams = componentModel.getBoxLayoutParams();\r\n var padding = componentModel.get('padding');\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\r\n box(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\r\n positionElement(group, boxLayoutParams, viewportSize, padding);\r\n }\r\n function makeBackground(rect, componentModel) {\r\n var padding = normalizeCssArray$1(componentModel.get('padding'));\r\n var style = componentModel.getItemStyle(['color', 'opacity']);\r\n style.fill = componentModel.get('backgroundColor');\r\n rect = new Rect({\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[1] + padding[3],\r\n height: rect.height + padding[0] + padding[2],\r\n r: componentModel.get('borderRadius')\r\n },\r\n style: style,\r\n silent: true,\r\n z2: -1\r\n });\r\n return rect;\r\n }\n\n var ToolboxView = (function (_super) {\r\n __extends(ToolboxView, _super);\r\n function ToolboxView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n if (!toolboxModel.get('show')) {\r\n return;\r\n }\r\n var itemSize = +toolboxModel.get('itemSize');\r\n var featureOpts = toolboxModel.get('feature') || {};\r\n var features = this._features || (this._features = {});\r\n var featureNames = [];\r\n each(featureOpts, function (opt, name) {\r\n featureNames.push(name);\r\n });\r\n (new DataDiffer(this._featureNames || [], featureNames))\r\n .add(processFeature)\r\n .update(processFeature)\r\n .remove(curry(processFeature, null))\r\n .execute();\r\n this._featureNames = featureNames;\r\n function processFeature(newIndex, oldIndex) {\r\n var featureName = featureNames[newIndex];\r\n var oldName = featureNames[oldIndex];\r\n var featureOpt = featureOpts[featureName];\r\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\r\n var feature;\r\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\r\n featureOpt.title = payload.newTitle;\r\n }\r\n if (featureName && !oldName) {\r\n if (isUserFeatureName(featureName)) {\r\n feature = {\r\n onclick: featureModel.option.onclick,\r\n featureName: featureName\r\n };\r\n }\r\n else {\r\n var Feature = getFeature(featureName);\r\n if (!Feature) {\r\n return;\r\n }\r\n feature = new Feature();\r\n }\r\n features[featureName] = feature;\r\n }\r\n else {\r\n feature = features[oldName];\r\n if (!feature) {\r\n return;\r\n }\r\n }\r\n feature.uid = getUID('toolbox-feature');\r\n feature.model = featureModel;\r\n feature.ecModel = ecModel;\r\n feature.api = api;\r\n if (feature instanceof ToolboxFeature) {\r\n if (!featureName && oldName) {\r\n feature.dispose && feature.dispose(ecModel, api);\r\n return;\r\n }\r\n if (!featureModel.get('show') || feature.unusable) {\r\n feature.remove && feature.remove(ecModel, api);\r\n return;\r\n }\r\n }\r\n createIconPaths(featureModel, feature, featureName);\r\n featureModel.setIconStatus = function (iconName, status) {\r\n var option = this.option;\r\n var iconPaths = this.iconPaths;\r\n option.iconStatus = option.iconStatus || {};\r\n option.iconStatus[iconName] = status;\r\n if (iconPaths[iconName]) {\r\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\r\n }\r\n };\r\n if (feature instanceof ToolboxFeature) {\r\n if (feature.render) {\r\n feature.render(featureModel, ecModel, api, payload);\r\n }\r\n }\r\n }\r\n function createIconPaths(featureModel, feature, featureName) {\r\n var iconStyleModel = featureModel.getModel('iconStyle');\r\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\r\n var icons = (feature instanceof ToolboxFeature && feature.getIcons)\r\n ? feature.getIcons() : featureModel.get('icon');\r\n var titles = featureModel.get('title') || {};\r\n var iconsMap;\r\n var titlesMap;\r\n if (typeof icons === 'string') {\r\n iconsMap = {};\r\n iconsMap[featureName] = icons;\r\n }\r\n else {\r\n iconsMap = icons;\r\n }\r\n if (typeof titles === 'string') {\r\n titlesMap = {};\r\n titlesMap[featureName] = titles;\r\n }\r\n else {\r\n titlesMap = titles;\r\n }\r\n var iconPaths = featureModel.iconPaths = {};\r\n each(iconsMap, function (iconStr, iconName) {\r\n var path = createIcon(iconStr, {}, {\r\n x: -itemSize / 2,\r\n y: -itemSize / 2,\r\n width: itemSize,\r\n height: itemSize\r\n });\r\n path.setStyle(iconStyleModel.getItemStyle());\r\n var pathEmphasisState = path.ensureState('emphasis');\r\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\r\n var textContent = new ZRText({\r\n style: {\r\n text: titlesMap[iconName],\r\n align: iconStyleEmphasisModel.get('textAlign'),\r\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\r\n padding: iconStyleEmphasisModel.get('textPadding'),\r\n fill: null\r\n },\r\n ignore: true\r\n });\r\n path.setTextContent(textContent);\r\n var tooltipModel = toolboxModel.getModel('tooltip');\r\n if (tooltipModel && tooltipModel.get('show')) {\r\n path.tooltip = extend({\r\n content: titlesMap[iconName],\r\n formatter: tooltipModel.get('formatter', true)\r\n || function () {\r\n return titlesMap[iconName];\r\n },\r\n formatterParams: {\r\n componentType: 'toolbox',\r\n name: iconName,\r\n title: titlesMap[iconName],\r\n $vars: ['name', 'title']\r\n },\r\n position: tooltipModel.get('position', true) || 'bottom'\r\n }, tooltipModel.option);\r\n }\r\n path.__title = titlesMap[iconName];\r\n path.on('mouseover', function () {\r\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\r\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical'\r\n ? (toolboxModel.get('right') == null ? 'right' : 'left')\r\n : (toolboxModel.get('bottom') == null ? 'bottom' : 'top');\r\n textContent.setStyle({\r\n fill: (iconStyleEmphasisModel.get('textFill')\r\n || hoverStyle.fill || hoverStyle.stroke || '#000'),\r\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\r\n });\r\n path.setTextConfig({\r\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\r\n });\r\n textContent.ignore = !toolboxModel.get('showTitle');\r\n enterEmphasis(this);\r\n })\r\n .on('mouseout', function () {\r\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\r\n leaveEmphasis(this);\r\n }\r\n textContent.hide();\r\n });\r\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\r\n group.add(path);\r\n path.on('click', bind(feature.onclick, feature, ecModel, api, iconName));\r\n iconPaths[iconName] = path;\r\n });\r\n }\r\n layout$3(group, toolboxModel, api);\r\n group.add(makeBackground(group.getBoundingRect(), toolboxModel));\r\n group.eachChild(function (icon) {\r\n var titleText = icon.__title;\r\n var emphasisState = icon.ensureState('emphasis');\r\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\r\n var textContent = icon.getTextContent();\r\n var emphasisTextState = textContent && textContent.states.emphasis;\r\n if (emphasisTextState && !isFunction(emphasisTextState) && titleText) {\r\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\r\n var rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\r\n var offsetX = icon.x + group.x;\r\n var offsetY = icon.y + group.y + itemSize;\r\n var needPutOnTop = false;\r\n if (offsetY + rect.height > api.getHeight()) {\r\n emphasisTextConfig.position = 'top';\r\n needPutOnTop = true;\r\n }\r\n var topOffset = needPutOnTop ? (-5 - rect.height) : (itemSize + 8);\r\n if (offsetX + rect.width / 2 > api.getWidth()) {\r\n emphasisTextConfig.position = ['100%', topOffset];\r\n emphasisTextStyle.align = 'right';\r\n }\r\n else if (offsetX - rect.width / 2 < 0) {\r\n emphasisTextConfig.position = [0, topOffset];\r\n emphasisTextStyle.align = 'left';\r\n }\r\n }\r\n });\r\n };\r\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\r\n });\r\n };\r\n ToolboxView.prototype.remove = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.remove && feature.remove(ecModel, api);\r\n });\r\n this.group.removeAll();\r\n };\r\n ToolboxView.prototype.dispose = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.dispose && feature.dispose(ecModel, api);\r\n });\r\n };\r\n ToolboxView.type = 'toolbox';\r\n return ToolboxView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ToolboxView);\r\n function isUserFeatureName(featureName) {\r\n return featureName.indexOf('my') === 0;\r\n }\n\n var SaveAsImage = (function (_super) {\r\n __extends(SaveAsImage, _super);\r\n function SaveAsImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SaveAsImage.prototype.onclick = function (ecModel, api) {\r\n var model = this.model;\r\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\r\n var isSvg = api.getZr().painter.getType() === 'svg';\r\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\r\n var url = api.getConnectedDataURL({\r\n type: type,\r\n backgroundColor: model.get('backgroundColor', true)\r\n || ecModel.get('backgroundColor') || '#fff',\r\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\r\n excludeComponents: model.get('excludeComponents'),\r\n pixelRatio: model.get('pixelRatio')\r\n });\r\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\r\n var $a = document.createElement('a');\r\n $a.download = title + '.' + type;\r\n $a.target = '_blank';\r\n $a.href = url;\r\n var evt = new MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n $a.dispatchEvent(evt);\r\n }\r\n else {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n var bstr = atob(url.split(',')[1]);\r\n var n = bstr.length;\r\n var u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var blob = new Blob([u8arr]);\r\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\r\n }\r\n else {\r\n var lang = model.get('lang');\r\n var html = ''\r\n + ''\r\n + ''\r\n + '';\r\n var tab = window.open();\r\n tab.document.write(html);\r\n }\r\n }\r\n };\r\n SaveAsImage.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\r\n title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\r\n type: 'png',\r\n connectedBackgroundColor: '#fff',\r\n name: '',\r\n excludeComponents: ['toolbox'],\r\n pixelRatio: 1,\r\n lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\r\n };\r\n return defaultOption;\r\n };\r\n return SaveAsImage;\r\n }(ToolboxFeature));\r\n SaveAsImage.prototype.unusable = !env.canvasSupported;\r\n registerFeature('saveAsImage', SaveAsImage);\n\n var INNER_STACK_KEYWORD = '__ec_magicType_stack__';\r\n var radioTypes = [\r\n ['line', 'bar'],\r\n ['stack']\r\n ];\r\n var MagicType = (function (_super) {\r\n __extends(MagicType, _super);\r\n function MagicType() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MagicType.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon');\r\n var icons = {};\r\n each(model.get('type'), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n MagicType.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: [],\r\n icon: {\r\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\r\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\r\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\r\n option: {},\r\n seriesIndex: {}\r\n };\r\n return defaultOption;\r\n };\r\n MagicType.prototype.onclick = function (ecModel, api, type) {\r\n var model = this.model;\r\n var seriesIndex = model.get(['seriesIndex', type]);\r\n if (!seriesOptGenreator[type]) {\r\n return;\r\n }\r\n var newOption = {\r\n series: []\r\n };\r\n var generateNewSeriesTypes = function (seriesModel) {\r\n var seriesType = seriesModel.subType;\r\n var seriesId = seriesModel.id;\r\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\r\n if (newSeriesOpt) {\r\n defaults(newSeriesOpt, seriesModel.option);\r\n newOption.series.push(newSeriesOpt);\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (categoryAxis) {\r\n var axisDim = categoryAxis.dim;\r\n var axisType = axisDim + 'Axis';\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n var axisIndex = axisModel.componentIndex;\r\n newOption[axisType] = newOption[axisType] || [];\r\n for (var i = 0; i <= axisIndex; i++) {\r\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\r\n }\r\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\r\n }\r\n }\r\n };\r\n each(radioTypes, function (radio) {\r\n if (indexOf(radio, type) >= 0) {\r\n each(radio, function (item) {\r\n model.setIconStatus(item, 'normal');\r\n });\r\n }\r\n });\r\n model.setIconStatus(type, 'emphasis');\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n query: seriesIndex == null ? null : {\r\n seriesIndex: seriesIndex\r\n }\r\n }, generateNewSeriesTypes);\r\n var newTitle;\r\n if (type === 'stack') {\r\n var seriesOptions = newOption.series;\r\n var tiledLang = ecModel.getLocale(['toolbox', 'magicType', 'title', 'tiled']);\r\n var titleLang = ecModel.getLocale(['toolbox', 'magicType', 'title']);\r\n var isStack = seriesOptions && seriesOptions[0]\r\n && seriesOptions[0].stack === INNER_STACK_KEYWORD;\r\n newTitle = isStack\r\n ? merge({ stack: tiledLang }, titleLang)\r\n : clone(titleLang);\r\n }\r\n api.dispatchAction({\r\n type: 'changeMagicType',\r\n currentType: type,\r\n newOption: newOption,\r\n newTitle: newTitle,\r\n featureName: 'magicType'\r\n });\r\n };\r\n return MagicType;\r\n }(ToolboxFeature));\r\n var seriesOptGenreator = {\r\n 'line': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'bar') {\r\n return merge({\r\n id: seriesId,\r\n type: 'line',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'line']) || {}, true);\r\n }\r\n },\r\n 'bar': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'line') {\r\n return merge({\r\n id: seriesId,\r\n type: 'bar',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'bar']) || {}, true);\r\n }\r\n },\r\n 'stack': function (seriesType, seriesId, seriesModel, model) {\r\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\r\n if (seriesType === 'line' || seriesType === 'bar') {\r\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\r\n return merge({\r\n id: seriesId,\r\n stack: isStack ? '' : INNER_STACK_KEYWORD\r\n }, model.get(['option', 'stack']) || {}, true);\r\n }\r\n }\r\n };\r\n registerAction({\r\n type: 'changeMagicType',\r\n event: 'magicTypeChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n ecModel.mergeOption(payload.newOption);\r\n });\r\n registerFeature('magicType', MagicType);\n\n var BLOCK_SPLITER = new Array(60).join('-');\r\n var ITEM_SPLITER = '\\t';\r\n function groupSeries(ecModel) {\r\n var seriesGroupByCategoryAxis = {};\r\n var otherSeries = [];\r\n var meta = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n if (baseAxis.type === 'category') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n if (!seriesGroupByCategoryAxis[key]) {\r\n seriesGroupByCategoryAxis[key] = {\r\n categoryAxis: baseAxis,\r\n valueAxis: coordSys.getOtherAxis(baseAxis),\r\n series: []\r\n };\r\n meta.push({\r\n axisDim: baseAxis.dim,\r\n axisIndex: baseAxis.index\r\n });\r\n }\r\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n });\r\n return {\r\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\r\n other: otherSeries,\r\n meta: meta\r\n };\r\n }\r\n function assembleSeriesWithCategoryAxis(groups) {\r\n var tables = [];\r\n each(groups, function (group, key) {\r\n var categoryAxis = group.categoryAxis;\r\n var valueAxis = group.valueAxis;\r\n var valueAxisDim = valueAxis.dim;\r\n var headers = [' '].concat(map(group.series, function (series) {\r\n return series.name;\r\n }));\r\n var columns = [categoryAxis.model.getCategories()];\r\n each(group.series, function (series) {\r\n columns.push(series.getRawData().mapArray(valueAxisDim, function (val) {\r\n return val;\r\n }));\r\n });\r\n var lines = [headers.join(ITEM_SPLITER)];\r\n for (var i = 0; i < columns[0].length; i++) {\r\n var items = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n items.push(columns[j][i]);\r\n }\r\n lines.push(items.join(ITEM_SPLITER));\r\n }\r\n tables.push(lines.join('\\n'));\r\n });\r\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function assembleOtherSeries(series) {\r\n return map(series, function (series) {\r\n var data = series.getRawData();\r\n var lines = [series.name];\r\n var vals = [];\r\n data.each(data.dimensions, function () {\r\n var argLen = arguments.length;\r\n var dataIndex = arguments[argLen - 1];\r\n var name = data.getName(dataIndex);\r\n for (var i = 0; i < argLen - 1; i++) {\r\n vals[i] = arguments[i];\r\n }\r\n lines.push((name ? (name + ITEM_SPLITER) : '') + vals.join(ITEM_SPLITER));\r\n });\r\n return lines.join('\\n');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function getContentFromModel(ecModel) {\r\n var result = groupSeries(ecModel);\r\n return {\r\n value: filter([\r\n assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis),\r\n assembleOtherSeries(result.other)\r\n ], function (str) {\r\n return !!str.replace(/[\\n\\t\\s]/g, '');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\r\n meta: result.meta\r\n };\r\n }\r\n function trim$1(str) {\r\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n }\r\n function isTSVFormat(block) {\r\n var firstLine = block.slice(0, block.indexOf('\\n'));\r\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\r\n return true;\r\n }\r\n }\r\n var itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\r\n function parseTSVContents(tsv) {\r\n var tsvLines = tsv.split(/\\n+/g);\r\n var headers = trim$1(tsvLines.shift()).split(itemSplitRegex);\r\n var categories = [];\r\n var series = map(headers, function (header) {\r\n return {\r\n name: header,\r\n data: []\r\n };\r\n });\r\n for (var i = 0; i < tsvLines.length; i++) {\r\n var items = trim$1(tsvLines[i]).split(itemSplitRegex);\r\n categories.push(items.shift());\r\n for (var j = 0; j < items.length; j++) {\r\n series[j] && (series[j].data[i] = items[j]);\r\n }\r\n }\r\n return {\r\n series: series,\r\n categories: categories\r\n };\r\n }\r\n function parseListContents(str) {\r\n var lines = str.split(/\\n+/g);\r\n var seriesName = trim$1(lines.shift());\r\n var data = [];\r\n for (var i = 0; i < lines.length; i++) {\r\n var items = trim$1(lines[i]).split(itemSplitRegex);\r\n var name_1 = '';\r\n var value = void 0;\r\n var hasName = false;\r\n if (isNaN(items[0])) {\r\n hasName = true;\r\n name_1 = items[0];\r\n items = items.slice(1);\r\n data[i] = {\r\n name: name_1,\r\n value: []\r\n };\r\n value = data[i].value;\r\n }\r\n else {\r\n value = data[i] = [];\r\n }\r\n for (var j = 0; j < items.length; j++) {\r\n value.push(+items[j]);\r\n }\r\n if (value.length === 1) {\r\n hasName ? (data[i].value = value[0]) : (data[i] = value[0]);\r\n }\r\n }\r\n return {\r\n name: seriesName,\r\n data: data\r\n };\r\n }\r\n function parseContents(str, blockMetaList) {\r\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\r\n var newOption = {\r\n series: []\r\n };\r\n each(blocks, function (block, idx) {\r\n if (isTSVFormat(block)) {\r\n var result = parseTSVContents(block);\r\n var blockMeta = blockMetaList[idx];\r\n var axisKey = blockMeta.axisDim + 'Axis';\r\n if (blockMeta) {\r\n newOption[axisKey] = newOption[axisKey] || [];\r\n newOption[axisKey][blockMeta.axisIndex] = {\r\n data: result.categories\r\n };\r\n newOption.series = newOption.series.concat(result.series);\r\n }\r\n }\r\n else {\r\n var result = parseListContents(block);\r\n newOption.series.push(result);\r\n }\r\n });\r\n return newOption;\r\n }\r\n var DataView = (function (_super) {\r\n __extends(DataView, _super);\r\n function DataView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataView.prototype.onclick = function (ecModel, api) {\r\n var container = api.getDom();\r\n var model = this.model;\r\n if (this._dom) {\r\n container.removeChild(this._dom);\r\n }\r\n var root = document.createElement('div');\r\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\r\n root.style.backgroundColor = model.get('backgroundColor') || '#fff';\r\n var header = document.createElement('h4');\r\n var lang = model.get('lang') || [];\r\n header.innerHTML = lang[0] || model.get('title');\r\n header.style.cssText = 'margin: 10px 20px;';\r\n header.style.color = model.get('textColor');\r\n var viewMain = document.createElement('div');\r\n var textarea = document.createElement('textarea');\r\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\r\n var optionToContent = model.get('optionToContent');\r\n var contentToOption = model.get('contentToOption');\r\n var result = getContentFromModel(ecModel);\r\n if (typeof optionToContent === 'function') {\r\n var htmlOrDom = optionToContent(api.getOption());\r\n if (typeof htmlOrDom === 'string') {\r\n viewMain.innerHTML = htmlOrDom;\r\n }\r\n else if (isDom(htmlOrDom)) {\r\n viewMain.appendChild(htmlOrDom);\r\n }\r\n }\r\n else {\r\n viewMain.appendChild(textarea);\r\n textarea.readOnly = model.get('readOnly');\r\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\r\n textarea.style.color = model.get('textColor');\r\n textarea.style.borderColor = model.get('textareaBorderColor');\r\n textarea.style.backgroundColor = model.get('textareaColor');\r\n textarea.value = result.value;\r\n }\r\n var blockMetaList = result.meta;\r\n var buttonContainer = document.createElement('div');\r\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\r\n var buttonStyle = 'float:right;margin-right:20px;border:none;'\r\n + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\r\n var closeButton = document.createElement('div');\r\n var refreshButton = document.createElement('div');\r\n buttonStyle += ';background-color:' + model.get('buttonColor');\r\n buttonStyle += ';color:' + model.get('buttonTextColor');\r\n var self = this;\r\n function close() {\r\n container.removeChild(root);\r\n self._dom = null;\r\n }\r\n addEventListener(closeButton, 'click', close);\r\n addEventListener(refreshButton, 'click', function () {\r\n var newOption;\r\n try {\r\n if (typeof contentToOption === 'function') {\r\n newOption = contentToOption(viewMain, api.getOption());\r\n }\r\n else {\r\n newOption = parseContents(textarea.value, blockMetaList);\r\n }\r\n }\r\n catch (e) {\r\n close();\r\n throw new Error('Data view format error ' + e);\r\n }\r\n if (newOption) {\r\n api.dispatchAction({\r\n type: 'changeDataView',\r\n newOption: newOption\r\n });\r\n }\r\n close();\r\n });\r\n closeButton.innerHTML = lang[1];\r\n refreshButton.innerHTML = lang[2];\r\n refreshButton.style.cssText = buttonStyle;\r\n closeButton.style.cssText = buttonStyle;\r\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\r\n buttonContainer.appendChild(closeButton);\r\n root.appendChild(header);\r\n root.appendChild(viewMain);\r\n root.appendChild(buttonContainer);\r\n viewMain.style.height = (container.clientHeight - 80) + 'px';\r\n container.appendChild(root);\r\n this._dom = root;\r\n };\r\n DataView.prototype.remove = function (ecModel, api) {\r\n this._dom && api.getDom().removeChild(this._dom);\r\n };\r\n DataView.prototype.dispose = function (ecModel, api) {\r\n this.remove(ecModel, api);\r\n };\r\n DataView.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n readOnly: false,\r\n optionToContent: null,\r\n contentToOption: null,\r\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\r\n title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\r\n lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\r\n backgroundColor: '#fff',\r\n textColor: '#000',\r\n textareaColor: '#fff',\r\n textareaBorderColor: '#333',\r\n buttonColor: '#c23531',\r\n buttonTextColor: '#fff'\r\n };\r\n return defaultOption;\r\n };\r\n return DataView;\r\n }(ToolboxFeature));\r\n function tryMergeDataOption(newData, originalData) {\r\n return map(newData, function (newVal, idx) {\r\n var original = originalData && originalData[idx];\r\n if (isObject(original) && !isArray(original)) {\r\n if (isObject(newVal) && !isArray(newVal)) {\r\n newVal = newVal.value;\r\n }\r\n return defaults({\r\n value: newVal\r\n }, original);\r\n }\r\n else {\r\n return newVal;\r\n }\r\n });\r\n }\r\n registerFeature('dataView', DataView);\r\n registerAction({\r\n type: 'changeDataView',\r\n event: 'dataViewChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n var newSeriesOptList = [];\r\n each(payload.newOption.series, function (seriesOpt) {\r\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\r\n if (!seriesModel) {\r\n newSeriesOptList.push(extend({\r\n type: 'scatter'\r\n }, seriesOpt));\r\n }\r\n else {\r\n var originalData = seriesModel.get('data');\r\n newSeriesOptList.push({\r\n name: seriesOpt.name,\r\n data: tryMergeDataOption(seriesOpt.data, originalData)\r\n });\r\n }\r\n });\r\n ecModel.mergeOption(defaults({\r\n series: newSeriesOptList\r\n }, payload.newOption));\r\n });\n\n var COORD_CONVERTS = ['dataToPoint', 'pointToData'];\r\n var INCLUDE_FINDER_MAIN_TYPES = [\r\n 'grid', 'xAxis', 'yAxis', 'geo', 'graph',\r\n 'polar', 'radiusAxis', 'angleAxis', 'bmap'\r\n ];\r\n var BrushTargetManager = (function () {\r\n function BrushTargetManager(finder, ecModel, opt) {\r\n var _this = this;\r\n this._targetInfoList = [];\r\n var foundCpts = parseFinder$1(ecModel, finder);\r\n each(targetInfoBuilders, function (builder, type) {\r\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\r\n builder(foundCpts, _this._targetInfoList);\r\n }\r\n });\r\n }\r\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\r\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n (area.coordRanges || (area.coordRanges = [])).push(coordRange);\r\n if (!area.coordRange) {\r\n area.coordRange = coordRange;\r\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\r\n area.__rangeOffset = {\r\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\r\n xyMinMax: result.xyMinMax\r\n };\r\n }\r\n });\r\n return areas;\r\n };\r\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (targetInfo && targetInfo !== true) {\r\n each(targetInfo.coordSyses, function (coordSys) {\r\n var result = coordConvert[area.brushType](1, coordSys, area.range);\r\n cb(area, result.values, coordSys, ecModel);\r\n });\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (__DEV__) {\r\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\r\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\r\n }\r\n area.range = area.range || [];\r\n if (targetInfo && targetInfo !== true) {\r\n area.panelId = targetInfo.panelId;\r\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\r\n var rangeOffset = area.__rangeOffset;\r\n area.range = rangeOffset\r\n ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax))\r\n : result.values;\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\r\n return map(this._targetInfoList, function (targetInfo) {\r\n var rect = targetInfo.getPanelRect();\r\n return {\r\n panelId: targetInfo.panelId,\r\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect)\r\n };\r\n });\r\n };\r\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n return targetInfo === true || (targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0);\r\n };\r\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\r\n var targetInfoList = this._targetInfoList;\r\n var foundCpts = parseFinder$1(ecModel, area);\r\n for (var i = 0; i < targetInfoList.length; i++) {\r\n var targetInfo = targetInfoList[i];\r\n var areaPanelId = area.panelId;\r\n if (areaPanelId) {\r\n if (targetInfo.panelId === areaPanelId) {\r\n return targetInfo;\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < targetInfoMatchers.length; j++) {\r\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\r\n return targetInfo;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return BrushTargetManager;\r\n }());\r\n function formatMinMax(minMax) {\r\n minMax[0] > minMax[1] && minMax.reverse();\r\n return minMax;\r\n }\r\n function parseFinder$1(ecModel, finder) {\r\n return parseFinder(ecModel, finder, { includeMainTypes: INCLUDE_FINDER_MAIN_TYPES });\r\n }\r\n var targetInfoBuilders = {\r\n grid: function (foundCpts, targetInfoList) {\r\n var xAxisModels = foundCpts.xAxisModels;\r\n var yAxisModels = foundCpts.yAxisModels;\r\n var gridModels = foundCpts.gridModels;\r\n var gridModelMap = createHashMap();\r\n var xAxesHas = {};\r\n var yAxesHas = {};\r\n if (!xAxisModels && !yAxisModels && !gridModels) {\r\n return;\r\n }\r\n each(xAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n });\r\n each(yAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n each(gridModels, function (gridModel) {\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n gridModelMap.each(function (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n var cartesians = [];\r\n each(grid.getCartesians(), function (cartesian, index) {\r\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0\r\n || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\r\n cartesians.push(cartesian);\r\n }\r\n });\r\n targetInfoList.push({\r\n panelId: 'grid--' + gridModel.id,\r\n gridModel: gridModel,\r\n coordSysModel: gridModel,\r\n coordSys: cartesians[0],\r\n coordSyses: cartesians,\r\n getPanelRect: panelRectBuilders.grid,\r\n xAxisDeclared: xAxesHas[gridModel.id],\r\n yAxisDeclared: yAxesHas[gridModel.id]\r\n });\r\n });\r\n },\r\n geo: function (foundCpts, targetInfoList) {\r\n each(foundCpts.geoModels, function (geoModel) {\r\n var coordSys = geoModel.coordinateSystem;\r\n targetInfoList.push({\r\n panelId: 'geo--' + geoModel.id,\r\n geoModel: geoModel,\r\n coordSysModel: geoModel,\r\n coordSys: coordSys,\r\n coordSyses: [coordSys],\r\n getPanelRect: panelRectBuilders.geo\r\n });\r\n });\r\n }\r\n };\r\n var targetInfoMatchers = [\r\n function (foundCpts, targetInfo) {\r\n var xAxisModel = foundCpts.xAxisModel;\r\n var yAxisModel = foundCpts.yAxisModel;\r\n var gridModel = foundCpts.gridModel;\r\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\r\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\r\n return gridModel && gridModel === targetInfo.gridModel;\r\n },\r\n function (foundCpts, targetInfo) {\r\n var geoModel = foundCpts.geoModel;\r\n return geoModel && geoModel === targetInfo.geoModel;\r\n }\r\n ];\r\n var panelRectBuilders = {\r\n grid: function () {\r\n return this.coordSys.master.getRect().clone();\r\n },\r\n geo: function () {\r\n var coordSys = this.coordSys;\r\n var rect = coordSys.getBoundingRect().clone();\r\n rect.applyTransform(getTransform(coordSys));\r\n return rect;\r\n }\r\n };\r\n var coordConvert = {\r\n lineX: curry(axisConvert, 0),\r\n lineY: curry(axisConvert, 1),\r\n rect: function (to, coordSys, rangeOrCoordRange) {\r\n var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\r\n var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\r\n var values = [\r\n formatMinMax([xminymin[0], xmaxymax[0]]),\r\n formatMinMax([xminymin[1], xmaxymax[1]])\r\n ];\r\n return { values: values, xyMinMax: values };\r\n },\r\n polygon: function (to, coordSys, rangeOrCoordRange) {\r\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var values = map(rangeOrCoordRange, function (item) {\r\n var p = coordSys[COORD_CONVERTS[to]](item);\r\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\r\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\r\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\r\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\r\n return p;\r\n });\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n };\r\n function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\r\n if (__DEV__) {\r\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\r\n }\r\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\r\n var values = formatMinMax(map([0, 1], function (i) {\r\n return to\r\n ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]))\r\n : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\r\n }));\r\n var xyMinMax = [];\r\n xyMinMax[axisNameIndex] = values;\r\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n var diffProcessor = {\r\n lineX: curry(axisDiffProcessor, 0),\r\n lineY: curry(axisDiffProcessor, 1),\r\n rect: function (values, refer, scales) {\r\n return [\r\n [values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]],\r\n [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]\r\n ];\r\n },\r\n polygon: function (values, refer, scales) {\r\n return map(values, function (item, idx) {\r\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\r\n });\r\n }\r\n };\r\n function axisDiffProcessor(axisNameIndex, values, refer, scales) {\r\n return [\r\n values[0] - scales[axisNameIndex] * refer[0],\r\n values[1] - scales[axisNameIndex] * refer[1]\r\n ];\r\n }\r\n function getScales(xyMinMaxCurr, xyMinMaxOrigin) {\r\n var sizeCurr = getSize(xyMinMaxCurr);\r\n var sizeOrigin = getSize(xyMinMaxOrigin);\r\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\r\n isNaN(scales[0]) && (scales[0] = 1);\r\n isNaN(scales[1]) && (scales[1] = 1);\r\n return scales;\r\n }\r\n function getSize(xyMinMax) {\r\n return xyMinMax\r\n ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]]\r\n : [NaN, NaN];\r\n }\n\n var each$9 = each;\r\n var inner$h = makeInner();\r\n function push(ecModel, newSnapshot) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n each$9(newSnapshot, function (batchItem, dataZoomId) {\r\n var i = storedSnapshots.length - 1;\r\n for (; i >= 0; i--) {\r\n var snapshot = storedSnapshots[i];\r\n if (snapshot[dataZoomId]) {\r\n break;\r\n }\r\n }\r\n if (i < 0) {\r\n var dataZoomModel = ecModel.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId })[0];\r\n if (dataZoomModel) {\r\n var percentRange = dataZoomModel.getPercentRange();\r\n storedSnapshots[0][dataZoomId] = {\r\n dataZoomId: dataZoomId,\r\n start: percentRange[0],\r\n end: percentRange[1]\r\n };\r\n }\r\n }\r\n });\r\n storedSnapshots.push(newSnapshot);\r\n }\r\n function pop(ecModel) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n var head = storedSnapshots[storedSnapshots.length - 1];\r\n storedSnapshots.length > 1 && storedSnapshots.pop();\r\n var snapshot = {};\r\n each$9(head, function (batchItem, dataZoomId) {\r\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\r\n batchItem = storedSnapshots[i][dataZoomId];\r\n if (batchItem) {\r\n snapshot[dataZoomId] = batchItem;\r\n break;\r\n }\r\n }\r\n });\r\n return snapshot;\r\n }\r\n function clear$1(ecModel) {\r\n inner$h(ecModel).snapshots = null;\r\n }\r\n function count(ecModel) {\r\n return getStoreSnapshots(ecModel).length;\r\n }\r\n function getStoreSnapshots(ecModel) {\r\n var store = inner$h(ecModel);\r\n if (!store.snapshots) {\r\n store.snapshots = [{}];\r\n }\r\n return store.snapshots;\r\n }\n\n ComponentModel.registerSubTypeDefaulter('dataZoom', function () {\r\n return 'slider';\r\n });\n\n var DATA_ZOOM_AXIS_DIMENSIONS = [\r\n 'x', 'y', 'radius', 'angle', 'single'\r\n ];\r\n var SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\r\n function isCoordSupported(seriesModel) {\r\n var coordType = seriesModel.get('coordinateSystem');\r\n return indexOf(SERIES_COORDS, coordType) >= 0;\r\n }\r\n function getAxisMainType(axisDim) {\r\n if (__DEV__) {\r\n assert(axisDim);\r\n }\r\n return axisDim + 'Axis';\r\n }\r\n function findEffectedDataZooms(ecModel, payload) {\r\n var axisRecords = createHashMap();\r\n var effectedModels = [];\r\n var effectedModelMap = createHashMap();\r\n ecModel.eachComponent({ mainType: 'dataZoom', query: payload }, function (dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid)) {\r\n addToEffected(dataZoomModel);\r\n }\r\n });\r\n var foundNewLink;\r\n do {\r\n foundNewLink = false;\r\n ecModel.eachComponent('dataZoom', processSingle);\r\n } while (foundNewLink);\r\n function processSingle(dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\r\n addToEffected(dataZoomModel);\r\n foundNewLink = true;\r\n }\r\n }\r\n function addToEffected(dataZoom) {\r\n effectedModelMap.set(dataZoom.uid, true);\r\n effectedModels.push(dataZoom);\r\n markAxisControlled(dataZoom);\r\n }\r\n function isLinked(dataZoomModel) {\r\n var isLink = false;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisIdxArr = axisRecords.get(axisDim);\r\n if (axisIdxArr && axisIdxArr[axisIndex]) {\r\n isLink = true;\r\n }\r\n });\r\n return isLink;\r\n }\r\n function markAxisControlled(dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\r\n });\r\n }\r\n return effectedModels;\r\n }\r\n function collectReferCoordSysModelInfo(dataZoomModel) {\r\n var ecModel = dataZoomModel.ecModel;\r\n var coordSysInfoWrap = {\r\n infoList: [],\r\n infoMap: createHashMap()\r\n };\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n if (!axisModel) {\r\n return;\r\n }\r\n var coordSysModel = axisModel.getCoordSysModel();\r\n if (!coordSysModel) {\r\n return;\r\n }\r\n var coordSysUid = coordSysModel.uid;\r\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\r\n if (!coordSysInfo) {\r\n coordSysInfo = { model: coordSysModel, axisModels: [] };\r\n coordSysInfoWrap.infoList.push(coordSysInfo);\r\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\r\n }\r\n coordSysInfo.axisModels.push(axisModel);\r\n });\r\n return coordSysInfoWrap;\r\n }\n\n var DataZoomAxisInfo = (function () {\r\n function DataZoomAxisInfo() {\r\n this.indexList = [];\r\n this.indexMap = [];\r\n }\r\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\r\n this.indexList.push(axisCmptIdx);\r\n this.indexMap[axisCmptIdx] = true;\r\n };\r\n return DataZoomAxisInfo;\r\n }());\r\n var DataZoomModel = (function (_super) {\r\n __extends(DataZoomModel, _super);\r\n function DataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomModel.type;\r\n _this._autoThrottle = true;\r\n _this._noTarget = true;\r\n _this._rangePropMode = ['percent', 'percent'];\r\n return _this;\r\n }\r\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputRawOption = retrieveRawOption(option);\r\n this.settledOption = inputRawOption;\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype.mergeOption = function (newOption) {\r\n var inputRawOption = retrieveRawOption(newOption);\r\n merge(this.option, newOption, true);\r\n merge(this.settledOption, inputRawOption, true);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype._doInit = function (inputRawOption) {\r\n var thisOption = this.option;\r\n if (!env.canvasSupported) {\r\n thisOption.realtime = false;\r\n }\r\n this._setDefaultThrottle(inputRawOption);\r\n this._updateRangeUse(inputRawOption);\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n if (this._rangePropMode[index] === 'value') {\r\n thisOption[names[0]] = settledOption[names[0]] = null;\r\n }\r\n }, this);\r\n this._resetTarget();\r\n };\r\n DataZoomModel.prototype._resetTarget = function () {\r\n var optionOrient = this.get('orient', true);\r\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\r\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\r\n if (hasAxisSpecified) {\r\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\r\n }\r\n else {\r\n this._orient = optionOrient || 'horizontal';\r\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\r\n }\r\n this._noTarget = true;\r\n targetAxisIndexMap.each(function (axisInfo) {\r\n if (axisInfo.indexList.length) {\r\n this._noTarget = false;\r\n }\r\n }, this);\r\n };\r\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\r\n var hasAxisSpecified = false;\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\r\n if (!refering.specified) {\r\n return;\r\n }\r\n hasAxisSpecified = true;\r\n var axisInfo = new DataZoomAxisInfo();\r\n each(refering.models, function (axisModel) {\r\n axisInfo.add(axisModel.componentIndex);\r\n });\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }, this);\r\n return hasAxisSpecified;\r\n };\r\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\r\n var ecModel = this.ecModel;\r\n var needAuto = true;\r\n if (needAuto) {\r\n var axisDim = orient === 'vertical' ? 'y' : 'x';\r\n var axisModels = ecModel.findComponents({ mainType: axisDim + 'Axis' });\r\n setParallelAxis(axisModels, axisDim);\r\n }\r\n if (needAuto) {\r\n var axisModels = ecModel.findComponents({\r\n mainType: 'singleAxis',\r\n filter: function (axisModel) { return axisModel.get('orient', true) === orient; }\r\n });\r\n setParallelAxis(axisModels, 'single');\r\n }\r\n function setParallelAxis(axisModels, axisDim) {\r\n var axisModel = axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModel.componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n if (axisDim === 'x' || axisDim === 'y') {\r\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n gridModel_1 && each(axisModels, function (axModel) {\r\n if (axisModel.componentIndex !== axModel.componentIndex\r\n && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\r\n axisInfo.add(axModel.componentIndex);\r\n }\r\n });\r\n }\r\n }\r\n if (needAuto) {\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n if (needAuto) {\r\n return;\r\n }\r\n var axisModels = ecModel.findComponents({\r\n mainType: getAxisMainType(axisDim),\r\n filter: function (axisModel) { return axisModel.get('type', true) === 'category'; }\r\n });\r\n if (axisModels[0]) {\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModels[0].componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }\r\n }, this);\r\n }\r\n };\r\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\r\n var dim;\r\n this.eachTargetAxis(function (axisDim) {\r\n !dim && (dim = axisDim);\r\n }, this);\r\n return dim === 'y' ? 'vertical' : 'horizontal';\r\n };\r\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\r\n if (inputRawOption.hasOwnProperty('throttle')) {\r\n this._autoThrottle = false;\r\n }\r\n if (this._autoThrottle) {\r\n var globalOption = this.ecModel.option;\r\n this.option.throttle = (globalOption.animation && globalOption.animationDurationUpdate > 0) ? 100 : 20;\r\n }\r\n };\r\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\r\n var rangePropMode = this._rangePropMode;\r\n var rangeModeInOption = this.get('rangeMode');\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n var percentSpecified = inputRawOption[names[0]] != null;\r\n var valueSpecified = inputRawOption[names[1]] != null;\r\n if (percentSpecified && !valueSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n else if (!percentSpecified && valueSpecified) {\r\n rangePropMode[index] = 'value';\r\n }\r\n else if (rangeModeInOption) {\r\n rangePropMode[index] = rangeModeInOption[index];\r\n }\r\n else if (percentSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n });\r\n };\r\n DataZoomModel.prototype.noTarget = function () {\r\n return this._noTarget;\r\n };\r\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\r\n var firstAxisModel;\r\n this.eachTargetAxis(function (axisDim, axisIndex) {\r\n if (firstAxisModel == null) {\r\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n }, this);\r\n return firstAxisModel;\r\n };\r\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\r\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\r\n each(axisInfo.indexList, function (axisIndex) {\r\n callback.call(context, axisDim, axisIndex);\r\n });\r\n });\r\n };\r\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\r\n var axisModel = this.getAxisModel(axisDim, axisIndex);\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n };\r\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\r\n if (__DEV__) {\r\n assert(axisDim && axisIndex != null);\r\n }\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\r\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n };\r\n DataZoomModel.prototype.setRawRange = function (opt) {\r\n var thisOption = this.option;\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\r\n if (opt[names[0]] != null || opt[names[1]] != null) {\r\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\r\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\r\n }\r\n }, this);\r\n this._updateRangeUse(opt);\r\n };\r\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\r\n var option = this.option;\r\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\r\n option[name] = opt[name];\r\n });\r\n };\r\n DataZoomModel.prototype.getPercentRange = function () {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataPercentWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\r\n if (axisDim == null && axisIndex == null) {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataValueWindow();\r\n }\r\n }\r\n else {\r\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n var firstProxy;\r\n var axisDimList = this._targetAxisInfoMap.keys();\r\n for (var i = 0; i < axisDimList.length; i++) {\r\n var axisDim = axisDimList[i];\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n for (var j = 0; j < axisInfo.indexList.length; j++) {\r\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\r\n if (proxy.hostedBy(this)) {\r\n return proxy;\r\n }\r\n if (!firstProxy) {\r\n firstProxy = proxy;\r\n }\r\n }\r\n }\r\n return firstProxy;\r\n };\r\n DataZoomModel.prototype.getRangePropMode = function () {\r\n return this._rangePropMode.slice();\r\n };\r\n DataZoomModel.prototype.getOrient = function () {\r\n if (__DEV__) {\r\n assert(this._orient);\r\n }\r\n return this._orient;\r\n };\r\n DataZoomModel.type = 'dataZoom';\r\n DataZoomModel.dependencies = [\r\n 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'\r\n ];\r\n DataZoomModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n filterMode: 'filter',\r\n start: 0,\r\n end: 100\r\n };\r\n return DataZoomModel;\r\n }(ComponentModel));\r\n function retrieveRawOption(option) {\r\n var ret = {};\r\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\r\n option.hasOwnProperty(name) && (ret[name] = option[name]);\r\n });\r\n return ret;\r\n }\n\n var DataZoomView = (function (_super) {\r\n __extends(DataZoomView, _super);\r\n function DataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomView.type;\r\n return _this;\r\n }\r\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n this.dataZoomModel = dataZoomModel;\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n DataZoomView.type = 'dataZoom';\r\n return DataZoomView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DataZoomView);\n\n var SelectDataZoomModel = (function (_super) {\r\n __extends(SelectDataZoomModel, _super);\r\n function SelectDataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomModel.type;\r\n return _this;\r\n }\r\n SelectDataZoomModel.type = 'dataZoom.select';\r\n return SelectDataZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SelectDataZoomModel);\n\n var SelectDataZoomView = (function (_super) {\r\n __extends(SelectDataZoomView, _super);\r\n function SelectDataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomView.type;\r\n return _this;\r\n }\r\n SelectDataZoomView.type = 'dataZoom.select';\r\n return SelectDataZoomView;\r\n }(DataZoomView));\r\n ComponentView.registerClass(SelectDataZoomView);\n\n var each$a = each;\r\n var asc$1 = asc;\r\n var AxisProxy = (function () {\r\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\r\n this._dimName = dimName;\r\n this._axisIndex = axisIndex;\r\n this.ecModel = ecModel;\r\n this._dataZoomModel = dataZoomModel;\r\n }\r\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\r\n return this._dataZoomModel === dataZoomModel;\r\n };\r\n AxisProxy.prototype.getDataValueWindow = function () {\r\n return this._valueWindow.slice();\r\n };\r\n AxisProxy.prototype.getDataPercentWindow = function () {\r\n return this._percentWindow.slice();\r\n };\r\n AxisProxy.prototype.getTargetSeriesModels = function () {\r\n var seriesModels = [];\r\n this.ecModel.eachSeries(function (seriesModel) {\r\n if (isCoordSupported(seriesModel)) {\r\n var axisMainType = getAxisMainType(this._dimName);\r\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\r\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\r\n seriesModels.push(seriesModel);\r\n }\r\n }\r\n }, this);\r\n return seriesModels;\r\n };\r\n AxisProxy.prototype.getAxisModel = function () {\r\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\r\n };\r\n AxisProxy.prototype.getMinMaxSpan = function () {\r\n return clone(this._minMaxSpan);\r\n };\r\n AxisProxy.prototype.calculateDataWindow = function (opt) {\r\n var dataExtent = this._dataExtent;\r\n var axisModel = this.getAxisModel();\r\n var scale = axisModel.axis.scale;\r\n var rangePropMode = this._dataZoomModel.getRangePropMode();\r\n var percentExtent = [0, 100];\r\n var percentWindow = [];\r\n var valueWindow = [];\r\n var hasPropModeValue;\r\n each$a(['start', 'end'], function (prop, idx) {\r\n var boundPercent = opt[prop];\r\n var boundValue = opt[prop + 'Value'];\r\n if (rangePropMode[idx] === 'percent') {\r\n boundPercent == null && (boundPercent = percentExtent[idx]);\r\n boundValue = scale.parse(linearMap(boundPercent, percentExtent, dataExtent));\r\n }\r\n else {\r\n hasPropModeValue = true;\r\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\r\n boundPercent = linearMap(boundValue, dataExtent, percentExtent);\r\n }\r\n valueWindow[idx] = boundValue;\r\n percentWindow[idx] = boundPercent;\r\n });\r\n asc$1(valueWindow);\r\n asc$1(percentWindow);\r\n var spans = this._minMaxSpan;\r\n hasPropModeValue\r\n ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false)\r\n : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\r\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\r\n var suffix = toValue ? 'Span' : 'ValueSpan';\r\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\r\n for (var i = 0; i < 2; i++) {\r\n toWindow[i] = linearMap(fromWindow[i], fromExtent, toExtent, true);\r\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\r\n }\r\n }\r\n return {\r\n valueWindow: valueWindow,\r\n percentWindow: percentWindow\r\n };\r\n };\r\n AxisProxy.prototype.reset = function (dataZoomModel) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var targetSeries = this.getTargetSeriesModels();\r\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\r\n this._updateMinMaxSpan();\r\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\r\n this._valueWindow = dataWindow.valueWindow;\r\n this._percentWindow = dataWindow.percentWindow;\r\n this._setAxisModel();\r\n };\r\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var axisDim = this._dimName;\r\n var seriesModels = this.getTargetSeriesModels();\r\n var filterMode = dataZoomModel.get('filterMode');\r\n var valueWindow = this._valueWindow;\r\n if (filterMode === 'none') {\r\n return;\r\n }\r\n each$a(seriesModels, function (seriesModel) {\r\n var seriesData = seriesModel.getData();\r\n var dataDims = seriesData.mapDimensionsAll(axisDim);\r\n if (!dataDims.length) {\r\n return;\r\n }\r\n if (filterMode === 'weakFilter') {\r\n seriesData.filterSelf(function (dataIndex) {\r\n var leftOut;\r\n var rightOut;\r\n var hasValue;\r\n for (var i = 0; i < dataDims.length; i++) {\r\n var value = seriesData.get(dataDims[i], dataIndex);\r\n var thisHasValue = !isNaN(value);\r\n var thisLeftOut = value < valueWindow[0];\r\n var thisRightOut = value > valueWindow[1];\r\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\r\n return true;\r\n }\r\n thisHasValue && (hasValue = true);\r\n thisLeftOut && (leftOut = true);\r\n thisRightOut && (rightOut = true);\r\n }\r\n return hasValue && leftOut && rightOut;\r\n });\r\n }\r\n else {\r\n each$a(dataDims, function (dim) {\r\n if (filterMode === 'empty') {\r\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\r\n return !isInWindow(value) ? NaN : value;\r\n }));\r\n }\r\n else {\r\n var range = {};\r\n range[dim] = valueWindow;\r\n seriesData.selectRange(range);\r\n }\r\n });\r\n }\r\n each$a(dataDims, function (dim) {\r\n seriesData.setApproximateExtent(valueWindow, dim);\r\n });\r\n });\r\n function isInWindow(value) {\r\n return value >= valueWindow[0] && value <= valueWindow[1];\r\n }\r\n };\r\n AxisProxy.prototype._updateMinMaxSpan = function () {\r\n var minMaxSpan = this._minMaxSpan = {};\r\n var dataZoomModel = this._dataZoomModel;\r\n var dataExtent = this._dataExtent;\r\n each$a(['min', 'max'], function (minMax) {\r\n var percentSpan = dataZoomModel.get(minMax + 'Span');\r\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\r\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\r\n if (valueSpan != null) {\r\n percentSpan = linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\r\n }\r\n else if (percentSpan != null) {\r\n valueSpan = linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\r\n }\r\n minMaxSpan[minMax + 'Span'] = percentSpan;\r\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\r\n }, this);\r\n };\r\n AxisProxy.prototype._setAxisModel = function () {\r\n var axisModel = this.getAxisModel();\r\n var percentWindow = this._percentWindow;\r\n var valueWindow = this._valueWindow;\r\n if (!percentWindow) {\r\n return;\r\n }\r\n var precision = getPixelPrecision(valueWindow, [0, 500]);\r\n precision = Math.min(precision, 20);\r\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\r\n if (percentWindow[0] !== 0) {\r\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\r\n }\r\n if (percentWindow[1] !== 100) {\r\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\r\n }\r\n rawExtentInfo.freeze();\r\n };\r\n return AxisProxy;\r\n }());\r\n function calculateDataExtent(axisProxy, axisDim, seriesModels) {\r\n var dataExtent = [Infinity, -Infinity];\r\n each$a(seriesModels, function (seriesModel) {\r\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\r\n });\r\n var axisModel = axisProxy.getAxisModel();\r\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\r\n return [rawExtentResult.min, rawExtentResult.max];\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER, {\r\n getTargetSeries: function (ecModel) {\r\n function eachAxisModel(cb) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\r\n });\r\n });\r\n }\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n axisModel.__dzAxisProxy = null;\r\n });\r\n var proxyList = [];\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n if (!axisModel.__dzAxisProxy) {\r\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\r\n proxyList.push(axisModel.__dzAxisProxy);\r\n }\r\n });\r\n var seriesModelMap = createHashMap();\r\n each(proxyList, function (axisProxy) {\r\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\r\n seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\r\n });\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\r\n });\r\n });\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var percentRange = axisProxy.getDataPercentWindow();\r\n var valueRange = axisProxy.getDataValueWindow();\r\n dataZoomModel.setCalculatedRange({\r\n start: percentRange[0],\r\n end: percentRange[1],\r\n startValue: valueRange[0],\r\n endValue: valueRange[1]\r\n });\r\n }\r\n });\r\n }\r\n });\n\n registerAction('dataZoom', function (payload, ecModel) {\r\n var effectedModels = findEffectedDataZooms(ecModel, payload);\r\n each(effectedModels, function (dataZoomModel) {\r\n dataZoomModel.setRawRange({\r\n start: payload.start,\r\n end: payload.end,\r\n startValue: payload.startValue,\r\n endValue: payload.endValue\r\n });\r\n });\r\n });\n\n var each$b = each;\r\n var DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\r\n var DataZoomFeature = (function (_super) {\r\n __extends(DataZoomFeature, _super);\r\n function DataZoomFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\r\n if (!this.brushController) {\r\n this.brushController = new BrushController(api.getZr());\r\n this.brushController.on('brush', bind(this._onBrush, this))\r\n .mount();\r\n }\r\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\r\n updateBackBtnStatus(featureModel, ecModel);\r\n };\r\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\r\n handlers$1[type].call(this);\r\n };\r\n DataZoomFeature.prototype.remove = function (ecModel, api) {\r\n this.brushController.unmount();\r\n };\r\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\r\n this.brushController.dispose();\r\n };\r\n DataZoomFeature.prototype._onBrush = function (eventParam) {\r\n var areas = eventParam.areas;\r\n if (!eventParam.isEnd || !areas.length) {\r\n return;\r\n }\r\n var snapshot = {};\r\n var ecModel = this.ecModel;\r\n this.brushController.updateCovers([]);\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, { include: ['grid'] });\r\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n if (coordSys.type !== 'cartesian2d') {\r\n return;\r\n }\r\n var brushType = area.brushType;\r\n if (brushType === 'rect') {\r\n setBatch('x', coordSys, coordRange[0]);\r\n setBatch('y', coordSys, coordRange[1]);\r\n }\r\n else {\r\n setBatch({ lineX: 'x', lineY: 'y' }[brushType], coordSys, coordRange);\r\n }\r\n });\r\n push(ecModel, snapshot);\r\n this._dispatchZoomAction(snapshot);\r\n function setBatch(dimName, coordSys, minMax) {\r\n var axis = coordSys.getAxis(dimName);\r\n var axisModel = axis.model;\r\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\r\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\r\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\r\n }\r\n dataZoomModel && (snapshot[dataZoomModel.id] = {\r\n dataZoomId: dataZoomModel.id,\r\n startValue: minMax[0],\r\n endValue: minMax[1]\r\n });\r\n }\r\n function findDataZoom(dimName, axisModel, ecModel) {\r\n var found;\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (dzModel) {\r\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\r\n has && (found = dzModel);\r\n });\r\n return found;\r\n }\r\n };\r\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\r\n var batch = [];\r\n each$b(snapshot, function (batchItem, dataZoomId) {\r\n batch.push(clone(batchItem));\r\n });\r\n batch.length && this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n batch: batch\r\n });\r\n };\r\n DataZoomFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n filterMode: 'filter',\r\n icon: {\r\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\r\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'dataZoom', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return DataZoomFeature;\r\n }(ToolboxFeature));\r\n var handlers$1 = {\r\n zoom: function () {\r\n var nextActive = !this.isZoomActive;\r\n this.api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'dataZoomSelect',\r\n dataZoomSelectActive: nextActive\r\n });\r\n },\r\n back: function () {\r\n this._dispatchZoomAction(pop(this.ecModel));\r\n }\r\n };\r\n function makeAxisFinder(dzFeatureModel) {\r\n var setting = {\r\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\r\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\r\n xAxisId: dzFeatureModel.get('xAxisId', true),\r\n yAxisId: dzFeatureModel.get('yAxisId', true)\r\n };\r\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\r\n setting.xAxisIndex = 'all';\r\n }\r\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\r\n setting.yAxisIndex = 'all';\r\n }\r\n return setting;\r\n }\r\n function updateBackBtnStatus(featureModel, ecModel) {\r\n featureModel.setIconStatus('back', count(ecModel) > 1 ? 'emphasis' : 'normal');\r\n }\r\n function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\r\n var zoomActive = view.isZoomActive;\r\n if (payload && payload.type === 'takeGlobalCursor') {\r\n zoomActive = payload.key === 'dataZoomSelect'\r\n ? payload.dataZoomSelectActive : false;\r\n }\r\n view.isZoomActive = zoomActive;\r\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, { include: ['grid'] });\r\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\r\n return (targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared)\r\n ? 'lineX'\r\n : (!targetInfo.xAxisDeclared && targetInfo.yAxisDeclared)\r\n ? 'lineY'\r\n : 'rect';\r\n });\r\n view.brushController\r\n .setPanels(panels)\r\n .enableBrush((zoomActive && panels.length)\r\n ? {\r\n brushType: 'auto',\r\n brushStyle: {\r\n lineWidth: 0,\r\n fill: 'rgba(0,0,0,0.2)'\r\n }\r\n }\r\n : false);\r\n }\r\n registerFeature('dataZoom', DataZoomFeature);\r\n registerInternalOptionCreator('dataZoom', function (ecModel) {\r\n var toolboxModel = ecModel.getComponent('toolbox', 0);\r\n if (!toolboxModel) {\r\n return;\r\n }\r\n var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\r\n var dzOptions = [];\r\n var finder = makeAxisFinder(dzFeatureModel);\r\n var finderResult = parseFinder(ecModel, finder);\r\n each$b(finderResult.xAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex'); });\r\n each$b(finderResult.yAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex'); });\r\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\r\n var axisIndex = axisModel.componentIndex;\r\n var newOpt = {\r\n type: 'select',\r\n $fromToolbox: true,\r\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\r\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\r\n };\r\n newOpt[axisIndexPropName] = axisIndex;\r\n dzOptions.push(newOpt);\r\n }\r\n return dzOptions;\r\n });\n\n var RestoreOption = (function (_super) {\r\n __extends(RestoreOption, _super);\r\n function RestoreOption() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RestoreOption.prototype.onclick = function (ecModel, api) {\r\n clear$1(ecModel);\r\n api.dispatchAction({\r\n type: 'restore',\r\n from: this.uid\r\n });\r\n };\r\n RestoreOption.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\r\n title: ecModel.getLocale(['toolbox', 'restore', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return RestoreOption;\r\n }(ToolboxFeature));\r\n registerFeature('restore', RestoreOption);\r\n registerAction({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n ecModel.resetOption('recreate');\r\n });\n\n var TooltipModel = (function (_super) {\r\n __extends(TooltipModel, _super);\r\n function TooltipModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipModel.type;\r\n return _this;\r\n }\r\n TooltipModel.type = 'tooltip';\r\n TooltipModel.dependencies = ['axisPointer'];\r\n TooltipModel.defaultOption = {\r\n zlevel: 0,\r\n z: 60,\r\n show: true,\r\n showContent: true,\r\n trigger: 'item',\r\n triggerOn: 'mousemove|click',\r\n alwaysShowContent: false,\r\n displayMode: 'single',\r\n renderMode: 'auto',\r\n confine: false,\r\n showDelay: 0,\r\n hideDelay: 100,\r\n transitionDuration: 0.4,\r\n enterable: false,\r\n backgroundColor: '#fff',\r\n shadowBlur: 10,\r\n shadowColor: 'rgba(0, 0, 0, .2)',\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 2,\r\n borderColor: '#333',\r\n borderRadius: 4,\r\n borderWidth: 1,\r\n padding: 10,\r\n extraCssText: '',\r\n axisPointer: {\r\n type: 'line',\r\n axis: 'auto',\r\n animation: 'auto',\r\n animationDurationUpdate: 200,\r\n animationEasingUpdate: 'exponentialOut',\r\n crossStyle: {\r\n color: '#999',\r\n width: 1,\r\n type: 'dashed',\r\n textStyle: {}\r\n }\r\n },\r\n textStyle: {\r\n color: '#666',\r\n fontSize: 14\r\n }\r\n };\r\n return TooltipModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TooltipModel);\n\n var each$c = each;\r\n var toCamelCase$1 = toCamelCase;\r\n var vendors = ['', '-webkit-', '-moz-', '-o-'];\r\n var gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\r\n function mirrowPos(pos) {\r\n pos = pos === 'left'\r\n ? 'right'\r\n : pos === 'right'\r\n ? 'left'\r\n : pos === 'top'\r\n ? 'bottom'\r\n : 'top';\r\n return pos;\r\n }\r\n function getFinalColor(color) {\r\n var finalNearPointColor = '#fff';\r\n if (isObject(color) && color.type !== 'pattern') {\r\n finalNearPointColor = color.colorStops[0].color;\r\n }\r\n else if (isObject(color) && (color.type === 'pattern')) {\r\n finalNearPointColor = 'transparent';\r\n }\r\n else if (isString(color)) {\r\n finalNearPointColor = color;\r\n }\r\n return finalNearPointColor;\r\n }\r\n function assembleArrow(backgroundColor, borderColor, arrowPosition) {\r\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\r\n return '';\r\n }\r\n borderColor = getFinalColor(borderColor);\r\n var arrowPos = mirrowPos(arrowPosition);\r\n var centerPos = '';\r\n var rotate = 0;\r\n if (['left', 'right'].includes(arrowPos)) {\r\n centerPos = arrowPos + \":-6px;top:50%;transform:translateY(-50%)\";\r\n rotate = arrowPos === 'left' ? -225 : -45;\r\n }\r\n else {\r\n centerPos = arrowPos + \":-6px;left:50%;transform:translateX(-50%)\";\r\n rotate = arrowPos === 'top' ? 225 : 45;\r\n }\r\n var styleCss = [\r\n 'style=\"position:absolute;width:10px;height:10px;',\r\n \"\" + centerPos,\r\n \"rotate(\" + rotate + \"deg);\",\r\n \"border-bottom: \" + borderColor + \" solid 1px;\",\r\n \"border-right: \" + borderColor + \" solid 1px;\",\r\n \"background-color: \" + backgroundColor + \";\",\r\n 'box-shadow: 8px 8px 16px -3px #000',\r\n '\"'\r\n ];\r\n return \"
\";\r\n }\r\n function assembleTransition(duration) {\r\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\r\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ','\r\n + 'top ' + duration + 's ' + transitionCurve;\r\n return map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transition:' + transitionText;\r\n }).join(';');\r\n }\r\n function assembleFont(textStyleModel) {\r\n var cssText = [];\r\n var fontSize = textStyleModel.get('fontSize');\r\n var color = textStyleModel.getTextColor();\r\n color && cssText.push('color:' + color);\r\n cssText.push('font:' + textStyleModel.getFont());\r\n fontSize\r\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\r\n each$c(['decoration', 'align'], function (name) {\r\n var val = textStyleModel.get(name);\r\n val && cssText.push('text-' + name + ':' + val);\r\n });\r\n return cssText.join(';');\r\n }\r\n function assembleCssText(tooltipModel) {\r\n var cssText = [];\r\n var transitionDuration = tooltipModel.get('transitionDuration');\r\n var backgroundColor = tooltipModel.get('backgroundColor');\r\n var shadowBlur = tooltipModel.get('shadowBlur');\r\n var shadowColor = tooltipModel.get('shadowColor');\r\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\r\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n var padding = tooltipModel.get('padding');\r\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\r\n cssText.push('box-shadow:' + boxShadow);\r\n transitionDuration\r\n && !(['top', 'left', 'bottom', 'right'].includes(tooltipModel.get('position')))\r\n && tooltipModel.get('trigger') !== 'item'\r\n && cssText.push(assembleTransition(transitionDuration));\r\n if (backgroundColor) {\r\n if (env.canvasSupported) {\r\n cssText.push('background-Color:' + backgroundColor);\r\n }\r\n else {\r\n cssText.push('background-Color:#' + toHex(backgroundColor));\r\n cssText.push('filter:alpha(opacity=70)');\r\n }\r\n }\r\n each$c(['width', 'color', 'radius'], function (name) {\r\n var borderName = 'border-' + name;\r\n var camelCase = toCamelCase$1(borderName);\r\n var val = tooltipModel.get(camelCase);\r\n val != null\r\n && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\r\n });\r\n cssText.push(assembleFont(textStyleModel));\r\n if (padding != null) {\r\n cssText.push('padding:' + normalizeCssArray$1(padding).join('px ') + 'px');\r\n }\r\n return cssText.join(';') + ';';\r\n }\r\n function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\r\n var zrPainter = zr && zr.painter;\r\n if (appendToBody) {\r\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\r\n if (zrViewportRoot) {\r\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\r\n }\r\n }\r\n else {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\r\n if (viewportRootOffset) {\r\n out[0] += viewportRootOffset.offsetLeft;\r\n out[1] += viewportRootOffset.offsetTop;\r\n }\r\n }\r\n }\r\n var TooltipHTMLContent = (function () {\r\n function TooltipHTMLContent(container, api, opt) {\r\n this._show = false;\r\n this._styleCoord = [0, 0];\r\n this._enterable = true;\r\n if (env.wxa) {\r\n return null;\r\n }\r\n var el = document.createElement('div');\r\n el.domBelongToZr = true;\r\n this.el = el;\r\n var zr = this._zr = api.getZr();\r\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\r\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\r\n if (appendToBody) {\r\n document.body.appendChild(el);\r\n }\r\n else {\r\n container.appendChild(el);\r\n }\r\n this._container = container;\r\n var self = this;\r\n el.onmouseenter = function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n };\r\n el.onmousemove = function (e) {\r\n e = e || window.event;\r\n if (!self._enterable) {\r\n var handler = zr.handler;\r\n var zrViewportRoot = zr.painter.getViewportRoot();\r\n normalizeEvent(zrViewportRoot, e, true);\r\n handler.dispatch('mousemove', e);\r\n }\r\n };\r\n el.onmouseleave = function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n };\r\n }\r\n TooltipHTMLContent.prototype.update = function () {\r\n var container = this._container;\r\n var stl = container.currentStyle\r\n || document.defaultView.getComputedStyle(container);\r\n var domStyle = container.style;\r\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\r\n domStyle.position = 'relative';\r\n }\r\n };\r\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\r\n clearTimeout(this._hideTimeout);\r\n var el = this.el;\r\n var styleCoord = this._styleCoord;\r\n var offset = el.offsetHeight / 2;\r\n nearPointColor = getFinalColor(nearPointColor);\r\n el.style.cssText = gCssText + assembleCssText(tooltipModel)\r\n + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;'\r\n + (\"border-color: \" + nearPointColor + \";\")\r\n + (tooltipModel.get('extraCssText') || '');\r\n el.style.display = el.innerHTML ? 'block' : 'none';\r\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\r\n this._show = true;\r\n };\r\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\r\n if (content == null) {\r\n return;\r\n }\r\n this.el.innerHTML = content;\r\n this.el.innerHTML += (isString(arrowPosition)\r\n && tooltipModel.get('trigger') === 'item'\r\n && !tooltipModel.get('confine'))\r\n ? assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition) : '';\r\n };\r\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipHTMLContent.prototype.getSize = function () {\r\n var el = this.el;\r\n return [el.clientWidth, el.clientHeight];\r\n };\r\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\r\n var style = this.el.style;\r\n style.left = styleCoord[0] + 'px';\r\n style.top = styleCoord[1] + 'px';\r\n };\r\n TooltipHTMLContent.prototype.hide = function () {\r\n this.el.style.display = 'none';\r\n this._show = false;\r\n };\r\n TooltipHTMLContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipHTMLContent.prototype.dispose = function () {\r\n this.el.parentNode.removeChild(this.el);\r\n };\r\n TooltipHTMLContent.prototype.getOuterSize = function () {\r\n var width = this.el.clientWidth;\r\n var height = this.el.clientHeight;\r\n if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var stl = document.defaultView.getComputedStyle(this.el);\r\n if (stl) {\r\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\r\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\r\n }\r\n }\r\n return { width: width, height: height };\r\n };\r\n return TooltipHTMLContent;\r\n }());\n\n var TooltipRichContent = (function () {\r\n function TooltipRichContent(api) {\r\n this._show = false;\r\n this._enterable = true;\r\n this._zr = api.getZr();\r\n }\r\n TooltipRichContent.prototype.update = function () {\r\n };\r\n TooltipRichContent.prototype.show = function () {\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n }\r\n this.el.show();\r\n this._show = true;\r\n };\r\n TooltipRichContent.prototype.setContent = function (content, markerRich, tooltipModel, borderColor, arrowPosition) {\r\n if (this.el) {\r\n this._zr.remove(this.el);\r\n }\r\n var markers = {};\r\n var text = content;\r\n var prefix = '{marker';\r\n var suffix = '|}';\r\n var startId = text.indexOf(prefix);\r\n while (startId >= 0) {\r\n var endId = text.indexOf(suffix);\r\n var name_1 = text.substr(startId + prefix.length, endId - startId - prefix.length);\r\n if (name_1.indexOf('sub') > -1) {\r\n markers['marker' + name_1] = {\r\n width: 4,\r\n height: 4,\r\n borderRadius: 2,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n else {\r\n markers['marker' + name_1] = {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 5,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n text = text.substr(endId + 1);\r\n startId = text.indexOf(prefix);\r\n }\r\n this.el = new ZRText({\r\n style: {\r\n rich: markers,\r\n text: content,\r\n lineHeight: 20,\r\n backgroundColor: tooltipModel.get('backgroundColor'),\r\n borderRadius: tooltipModel.get('borderRadius'),\r\n borderWidth: 1,\r\n borderColor: borderColor,\r\n shadowColor: tooltipModel.get('shadowColor'),\r\n shadowBlur: tooltipModel.get('shadowBlur'),\r\n shadowOffsetX: tooltipModel.get('shadowOffsetX'),\r\n shadowOffsetY: tooltipModel.get('shadowOffsetY'),\r\n fill: tooltipModel.get(['textStyle', 'color']),\r\n padding: tooltipModel.get('padding'),\r\n verticalAlign: 'middle',\r\n align: 'left'\r\n },\r\n z: tooltipModel.get('z')\r\n });\r\n this._zr.add(this.el);\r\n var self = this;\r\n this.el.on('mouseover', function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n });\r\n this.el.on('mouseout', function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n });\r\n };\r\n TooltipRichContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipRichContent.prototype.getSize = function () {\r\n var bounding = this.el.getBoundingRect();\r\n return [bounding.width, bounding.height];\r\n };\r\n TooltipRichContent.prototype.moveTo = function (x, y) {\r\n var el = this.el;\r\n if (el) {\r\n el.x = x;\r\n el.y = y;\r\n el.markRedraw();\r\n }\r\n };\r\n TooltipRichContent.prototype.hide = function () {\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n this._show = false;\r\n };\r\n TooltipRichContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipRichContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipRichContent.prototype.getOuterSize = function () {\r\n var size = this.getSize();\r\n return {\r\n width: size[0],\r\n height: size[1]\r\n };\r\n };\r\n TooltipRichContent.prototype.dispose = function () {\r\n this._zr.remove(this.el);\r\n };\r\n return TooltipRichContent;\r\n }());\n\n var bind$2 = bind;\r\n var each$d = each;\r\n var parsePercent$3 = parsePercent$2;\r\n var proxyRect = new Rect({\r\n shape: { x: -1, y: -1, width: 2, height: 2 }\r\n });\r\n var TooltipView = (function (_super) {\r\n __extends(TooltipView, _super);\r\n function TooltipView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipView.type;\r\n return _this;\r\n }\r\n TooltipView.prototype.init = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var tooltipModel = ecModel.getComponent('tooltip');\r\n var renderMode = tooltipModel.get('renderMode');\r\n this._renderMode = getTooltipRenderMode(renderMode);\r\n var tooltipContent;\r\n if (this._renderMode === 'html') {\r\n tooltipContent = new TooltipHTMLContent(api.getDom(), api, {\r\n appendToBody: tooltipModel.get('appendToBody', true)\r\n });\r\n this._newLine = '';\r\n }\r\n else {\r\n tooltipContent = new TooltipRichContent(api);\r\n this._newLine = '\\n';\r\n }\r\n this._tooltipContent = tooltipContent;\r\n };\r\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this.group.removeAll();\r\n this._tooltipModel = tooltipModel;\r\n this._ecModel = ecModel;\r\n this._api = api;\r\n this._lastDataByCoordSys = null;\r\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n var tooltipContent = this._tooltipContent;\r\n tooltipContent.update();\r\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\r\n this._initGlobalListener();\r\n this._keepShow();\r\n };\r\n TooltipView.prototype._initGlobalListener = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var triggerOn = tooltipModel.get('triggerOn');\r\n register('itemTooltip', this._api, bind$2(function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none') {\r\n if (triggerOn.indexOf(currTrigger) >= 0) {\r\n this._tryShow(e, dispatchAction);\r\n }\r\n else if (currTrigger === 'leave') {\r\n this._hide(dispatchAction);\r\n }\r\n }\r\n }, this));\r\n };\r\n TooltipView.prototype._keepShow = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var ecModel = this._ecModel;\r\n var api = this._api;\r\n if (this._lastX != null\r\n && this._lastY != null\r\n && tooltipModel.get('triggerOn') !== 'none') {\r\n var self_1 = this;\r\n clearTimeout(this._refreshUpdateTimeout);\r\n this._refreshUpdateTimeout = setTimeout(function () {\r\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\r\n x: self_1._lastX,\r\n y: self_1._lastY\r\n });\r\n });\r\n }\r\n };\r\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\r\n if (payload.from === this.uid || env.node) {\r\n return;\r\n }\r\n var dispatchAction = makeDispatchAction$1(payload, api);\r\n this._ticket = '';\r\n var dataByCoordSys = payload.dataByCoordSys;\r\n if (payload.tooltip && payload.x != null && payload.y != null) {\r\n var el = proxyRect;\r\n el.x = payload.x;\r\n el.y = payload.y;\r\n el.update();\r\n el.tooltip = payload.tooltip;\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n target: el\r\n }, dispatchAction);\r\n }\r\n else if (dataByCoordSys) {\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n dataByCoordSys: dataByCoordSys,\r\n tooltipOption: payload.tooltipOption\r\n }, dispatchAction);\r\n }\r\n else if (payload.seriesIndex != null) {\r\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\r\n return;\r\n }\r\n var pointInfo = findPointFromSeries(payload, ecModel);\r\n var cx = pointInfo.point[0];\r\n var cy = pointInfo.point[1];\r\n if (cx != null && cy != null) {\r\n this._tryShow({\r\n offsetX: cx,\r\n offsetY: cy,\r\n position: payload.position,\r\n target: pointInfo.el\r\n }, dispatchAction);\r\n }\r\n }\r\n else if (payload.x != null && payload.y != null) {\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payload.x,\r\n y: payload.y\r\n });\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n target: api.getZr().findHover(payload.x, payload.y).target\r\n }, dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\r\n var tooltipContent = this._tooltipContent;\r\n if (!this._alwaysShowContent && this._tooltipModel) {\r\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\r\n }\r\n this._lastX = this._lastY = null;\r\n if (payload.from !== this.uid) {\r\n this._hide(makeDispatchAction$1(payload, api));\r\n }\r\n };\r\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\r\n var seriesIndex = payload.seriesIndex;\r\n var dataIndex = payload.dataIndex;\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\r\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (!seriesModel) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var tooltipCascadedModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n seriesModel,\r\n (seriesModel.coordinateSystem || {}).model,\r\n tooltipModel\r\n ]);\r\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\r\n return;\r\n }\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n seriesIndex: seriesIndex,\r\n dataIndex: dataIndex,\r\n position: payload.position\r\n });\r\n return true;\r\n };\r\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\r\n var el = e.target;\r\n var tooltipModel = this._tooltipModel;\r\n if (!tooltipModel) {\r\n return;\r\n }\r\n this._lastX = e.offsetX;\r\n this._lastY = e.offsetY;\r\n var dataByCoordSys = e.dataByCoordSys;\r\n if (dataByCoordSys && dataByCoordSys.length) {\r\n this._showAxisTooltip(dataByCoordSys, e);\r\n }\r\n else if (el && getECData(el).dataIndex != null) {\r\n this._lastDataByCoordSys = null;\r\n this._showSeriesItemTooltip(e, el, dispatchAction);\r\n }\r\n else if (el && el.tooltip) {\r\n this._lastDataByCoordSys = null;\r\n this._showComponentItemTooltip(e, el, dispatchAction);\r\n }\r\n else {\r\n this._lastDataByCoordSys = null;\r\n this._hide(dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\r\n var delay = tooltipModel.get('showDelay');\r\n cb = bind(cb, this);\r\n clearTimeout(this._showTimout);\r\n delay > 0\r\n ? (this._showTimout = setTimeout(cb, delay))\r\n : cb();\r\n };\r\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\r\n var ecModel = this._ecModel;\r\n var globalTooltipModel = this._tooltipModel;\r\n var point = [e.offsetX, e.offsetY];\r\n var singleDefaultHTML = [];\r\n var singleParamsList = [];\r\n var singleTooltipModel = buildTooltipModel([\r\n e.tooltipOption,\r\n globalTooltipModel\r\n ]);\r\n var renderMode = this._renderMode;\r\n var newLine = this._newLine;\r\n var markers = {};\r\n each$d(dataByCoordSys, function (itemCoordSys) {\r\n each$d(itemCoordSys.dataByAxis, function (item) {\r\n var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex);\r\n var axisValue = item.value;\r\n var seriesDefaultHTML = [];\r\n if (!axisModel || axisValue == null) {\r\n return;\r\n }\r\n var valueLabel = getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt);\r\n each(item.seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams.axisDim = item.axisDim;\r\n dataParams.axisIndex = item.axisIndex;\r\n dataParams.axisType = item.axisType;\r\n dataParams.axisId = item.axisId;\r\n dataParams.axisValue = getAxisRawValue(axisModel.axis, { value: axisValue });\r\n dataParams.axisValueLabel = valueLabel;\r\n dataParams.marker = getTooltipMarker({\r\n color: dataParams.color,\r\n renderMode: renderMode\r\n });\r\n singleParamsList.push(dataParams);\r\n var seriesTooltip = series.formatTooltip(dataIndex, true, null, renderMode);\r\n var html;\r\n if (isObject(seriesTooltip)) {\r\n html = seriesTooltip.html;\r\n var newMarkers = seriesTooltip.markers;\r\n merge(markers, newMarkers);\r\n }\r\n else {\r\n html = seriesTooltip;\r\n }\r\n dataParams.html = html;\r\n });\r\n switch (singleTooltipModel.get('order')) {\r\n case 'valueAsc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(a.data) - +(b.data);\r\n });\r\n break;\r\n case 'valueDesc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(b.data) - +(a.data);\r\n });\r\n break;\r\n case 'seriesDesc':\r\n singleParamsList.reverse();\r\n break;\r\n }\r\n each(singleParamsList, function (params) {\r\n seriesDefaultHTML.push(params.html);\r\n delete params.html;\r\n });\r\n var firstLine = valueLabel;\r\n if (renderMode !== 'html') {\r\n singleDefaultHTML.push(seriesDefaultHTML.join(newLine));\r\n }\r\n else {\r\n singleDefaultHTML.push((firstLine\r\n ? ('
'\r\n + encodeHTML(firstLine) + '
'\r\n + newLine)\r\n : '')\r\n + seriesDefaultHTML.reverse().join(newLine));\r\n }\r\n singleDefaultHTML.push('
');\r\n });\r\n }, this);\r\n singleDefaultHTML.pop();\r\n var singleDefaultHTMLStr = singleDefaultHTML.join(this._newLine + this._newLine);\r\n var positionExpr = e.position;\r\n this._showOrMove(singleTooltipModel, function () {\r\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\r\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList);\r\n }\r\n else {\r\n this._showTooltipContent(singleTooltipModel, singleDefaultHTMLStr, singleParamsList, Math.random() + '', point[0], point[1], positionExpr, undefined, markers);\r\n }\r\n });\r\n };\r\n TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\r\n var ecModel = this._ecModel;\r\n var ecData = getECData(el);\r\n var seriesIndex = ecData.seriesIndex;\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n var dataModel = ecData.dataModel || seriesModel;\r\n var dataIndex = ecData.dataIndex;\r\n var dataType = ecData.dataType;\r\n var data = dataModel.getData(dataType);\r\n var tooltipModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n dataModel,\r\n seriesModel && (seriesModel.coordinateSystem || {}).model,\r\n this._tooltipModel\r\n ]);\r\n var tooltipTrigger = tooltipModel.get('trigger');\r\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\r\n return;\r\n }\r\n var tooltipOrder = tooltipModel.get('order');\r\n var params = dataModel.getDataParams(dataIndex, dataType);\r\n params.marker = getTooltipMarker({\r\n color: params.color,\r\n renderMode: this._renderMode\r\n });\r\n var seriesTooltip = dataModel.formatTooltip(dataIndex, false, dataType, this._renderMode, tooltipOrder);\r\n var defaultHtml;\r\n var markers;\r\n if (isObject(seriesTooltip)) {\r\n defaultHtml = seriesTooltip.html;\r\n markers = seriesTooltip.markers;\r\n }\r\n else {\r\n defaultHtml = seriesTooltip;\r\n markers = null;\r\n }\r\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\r\n this._showOrMove(tooltipModel, function () {\r\n this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markers);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n dataIndexInside: dataIndex,\r\n dataIndex: data.getRawIndex(dataIndex),\r\n seriesIndex: seriesIndex,\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\r\n var tooltipOpt = el.tooltip;\r\n if (isString(tooltipOpt)) {\r\n var content = tooltipOpt;\r\n tooltipOpt = {\r\n content: content,\r\n formatter: content\r\n };\r\n }\r\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\r\n var defaultHtml = subTooltipModel.get('content');\r\n var asyncTicket = Math.random() + '';\r\n this._showOrMove(subTooltipModel, function () {\r\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markers) {\r\n this._ticket = '';\r\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\r\n return;\r\n }\r\n var tooltipContent = this._tooltipContent;\r\n var formatter = tooltipModel.get('formatter');\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var html = defaultHtml;\r\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'));\r\n if (formatter && isString(formatter)) {\r\n html = formatTpl(formatter, params, true);\r\n }\r\n else if (isFunction(formatter)) {\r\n var callback = bind$2(function (cbTicket, html) {\r\n if (cbTicket === this._ticket) {\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n }\r\n }, this);\r\n this._ticket = asyncTicket;\r\n html = formatter(params, asyncTicket, callback);\r\n }\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n tooltipContent.show(tooltipModel, nearPoint.color);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n };\r\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger) {\r\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\r\n return {\r\n color: this._renderMode === 'html' ? '#fff' : 'none'\r\n };\r\n }\r\n if (!isArray(tooltipDataParams)) {\r\n return {\r\n color: tooltipDataParams.color || tooltipDataParams.borderColor\r\n };\r\n }\r\n };\r\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\r\n var viewWidth = this._api.getWidth();\r\n var viewHeight = this._api.getHeight();\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var contentSize = content.getSize();\r\n var align = tooltipModel.get('align');\r\n var vAlign = tooltipModel.get('verticalAlign');\r\n var rect = el && el.getBoundingRect().clone();\r\n el && rect.applyTransform(el.transform);\r\n if (isFunction(positionExpr)) {\r\n positionExpr = positionExpr([x, y], params, content.el, rect, {\r\n viewSize: [viewWidth, viewHeight],\r\n contentSize: contentSize.slice()\r\n });\r\n }\r\n if (isArray(positionExpr)) {\r\n x = parsePercent$3(positionExpr[0], viewWidth);\r\n y = parsePercent$3(positionExpr[1], viewHeight);\r\n }\r\n else if (isObject(positionExpr)) {\r\n var boxLayoutPosition = positionExpr;\r\n boxLayoutPosition.width = contentSize[0];\r\n boxLayoutPosition.height = contentSize[1];\r\n var layoutRect = getLayoutRect(boxLayoutPosition, { width: viewWidth, height: viewHeight });\r\n x = layoutRect.x;\r\n y = layoutRect.y;\r\n align = null;\r\n vAlign = null;\r\n }\r\n else if (isString(positionExpr) && el) {\r\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n else {\r\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\r\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\r\n if (tooltipModel.get('confine')) {\r\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n content.moveTo(x, y);\r\n };\r\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\r\n var lastCoordSys = this._lastDataByCoordSys;\r\n var contentNotChanged = !!lastCoordSys\r\n && lastCoordSys.length === dataByCoordSys.length;\r\n contentNotChanged && each$d(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\r\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\r\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\r\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\r\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\r\n contentNotChanged && each$d(lastDataByAxis, function (lastItem, indexAxis) {\r\n var thisItem = thisDataByAxis[indexAxis] || {};\r\n var lastIndices = lastItem.seriesDataIndices || [];\r\n var newIndices = thisItem.seriesDataIndices || [];\r\n contentNotChanged = contentNotChanged\r\n && lastItem.value === thisItem.value\r\n && lastItem.axisType === thisItem.axisType\r\n && lastItem.axisId === thisItem.axisId\r\n && lastIndices.length === newIndices.length;\r\n contentNotChanged && each$d(lastIndices, function (lastIdxItem, j) {\r\n var newIdxItem = newIndices[j];\r\n contentNotChanged = contentNotChanged\r\n && lastIdxItem.seriesIndex === newIdxItem.seriesIndex\r\n && lastIdxItem.dataIndex === newIdxItem.dataIndex;\r\n });\r\n });\r\n });\r\n this._lastDataByCoordSys = dataByCoordSys;\r\n return !!contentNotChanged;\r\n };\r\n TooltipView.prototype._hide = function (dispatchAction) {\r\n this._lastDataByCoordSys = null;\r\n dispatchAction({\r\n type: 'hideTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype.dispose = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this._tooltipContent.dispose();\r\n unregister('itemTooltip', api);\r\n };\r\n TooltipView.type = 'tooltip';\r\n return TooltipView;\r\n }(ComponentView));\r\n function buildTooltipModel(modelCascade) {\r\n var resultModel = modelCascade.pop();\r\n while (modelCascade.length) {\r\n var tooltipOpt = modelCascade.pop();\r\n if (tooltipOpt) {\r\n if (tooltipOpt instanceof Model) {\r\n tooltipOpt = tooltipOpt.get('tooltip', true);\r\n }\r\n if (isString(tooltipOpt)) {\r\n tooltipOpt = {\r\n formatter: tooltipOpt\r\n };\r\n }\r\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\r\n }\r\n }\r\n return resultModel;\r\n }\r\n function makeDispatchAction$1(payload, api) {\r\n return payload.dispatchAction || bind(api.dispatchAction, api);\r\n }\r\n function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n if (gapH != null) {\r\n if (x + width + gapH > viewWidth) {\r\n x -= width + gapH;\r\n }\r\n else {\r\n x += gapH;\r\n }\r\n }\r\n if (gapV != null) {\r\n if (y + height + gapV > viewHeight) {\r\n y -= height + gapV;\r\n }\r\n else {\r\n y += gapV;\r\n }\r\n }\r\n return [x, y];\r\n }\r\n function confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n x = Math.min(x + width, viewWidth) - width;\r\n y = Math.min(y + height, viewHeight) - height;\r\n x = Math.max(x, 0);\r\n y = Math.max(y, 0);\r\n return [x, y];\r\n }\r\n function calcTooltipPosition(position, rect, contentSize) {\r\n var domWidth = contentSize[0];\r\n var domHeight = contentSize[1];\r\n var gap = 10;\r\n var offset = 5;\r\n var x = 0;\r\n var y = 0;\r\n var rectWidth = rect.width;\r\n var rectHeight = rect.height;\r\n switch (position) {\r\n case 'inside':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'top':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y - domHeight - gap;\r\n break;\r\n case 'bottom':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight + gap;\r\n break;\r\n case 'left':\r\n x = rect.x - domWidth - gap - offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'right':\r\n x = rect.x + rectWidth + gap + offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n }\r\n return [x, y];\r\n }\r\n function isCenterAlign(align) {\r\n return align === 'center' || align === 'middle';\r\n }\r\n ComponentView.registerClass(TooltipView);\n\n registerAction({\r\n type: 'showTip',\r\n event: 'showTip',\r\n update: 'tooltip:manuallyShowTip'\r\n }, function () { });\r\n registerAction({\r\n type: 'hideTip',\r\n event: 'hideTip',\r\n update: 'tooltip:manuallyHideTip'\r\n }, function () { });\n\n var DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\r\n function preprocessor$1 (option, isNew) {\r\n var brushComponents = normalizeToArray(option ? option.brush : []);\r\n if (!brushComponents.length) {\r\n return;\r\n }\r\n var brushComponentSpecifiedBtns = [];\r\n each(brushComponents, function (brushOpt) {\r\n var tbs = brushOpt.hasOwnProperty('toolbox')\r\n ? brushOpt.toolbox : [];\r\n if (tbs instanceof Array) {\r\n brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\r\n }\r\n });\r\n var toolbox = option && option.toolbox;\r\n if (isArray(toolbox)) {\r\n toolbox = toolbox[0];\r\n }\r\n if (!toolbox) {\r\n toolbox = { feature: {} };\r\n option.toolbox = [toolbox];\r\n }\r\n var toolboxFeature = (toolbox.feature || (toolbox.feature = {}));\r\n var toolboxBrush = (toolboxFeature.brush || (toolboxFeature.brush = {}));\r\n var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\r\n brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\r\n removeDuplicate(brushTypes);\r\n if (isNew && !brushTypes.length) {\r\n brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\r\n }\r\n }\r\n function removeDuplicate(arr) {\r\n var map = {};\r\n each(arr, function (val) {\r\n map[val] = 1;\r\n });\r\n arr.length = 0;\r\n each(map, function (flag, val) {\r\n arr.push(val);\r\n });\r\n }\n\n var each$e = each;\r\n function hasKeys(obj) {\r\n if (obj) {\r\n for (var name_1 in obj) {\r\n if (obj.hasOwnProperty(name_1)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n function createVisualMappings(option, stateList, supplementVisualOption) {\r\n var visualMappings = {};\r\n each$e(stateList, function (state) {\r\n var mappings = visualMappings[state] = createMappings();\r\n each$e(option[state], function (visualData, visualType) {\r\n if (!VisualMapping.isValidType(visualType)) {\r\n return;\r\n }\r\n var mappingOption = {\r\n type: visualType,\r\n visual: visualData\r\n };\r\n supplementVisualOption && supplementVisualOption(mappingOption, state);\r\n mappings[visualType] = new VisualMapping(mappingOption);\r\n if (visualType === 'opacity') {\r\n mappingOption = clone(mappingOption);\r\n mappingOption.type = 'colorAlpha';\r\n mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\r\n }\r\n });\r\n });\r\n return visualMappings;\r\n function createMappings() {\r\n var Creater = function () { };\r\n Creater.prototype.__hidden = Creater.prototype;\r\n var obj = new Creater();\r\n return obj;\r\n }\r\n }\r\n function replaceVisualOption(thisOption, newOption, keys) {\r\n var has;\r\n each(keys, function (key) {\r\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\r\n has = true;\r\n }\r\n });\r\n has && each(keys, function (key) {\r\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\r\n thisOption[key] = clone(newOption[key]);\r\n }\r\n else {\r\n delete thisOption[key];\r\n }\r\n });\r\n }\r\n function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\r\n var visualTypesMap = {};\r\n each(stateList, function (state) {\r\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\r\n visualTypesMap[state] = visualTypes;\r\n });\r\n var dataIndex;\r\n function getVisual(key) {\r\n return getItemVisualFromData(data, dataIndex, key);\r\n }\r\n function setVisual(key, value) {\r\n setItemVisualFromData(data, dataIndex, key, value);\r\n }\r\n if (dimension == null) {\r\n data.each(eachItem);\r\n }\r\n else {\r\n data.each([dimension], eachItem);\r\n }\r\n function eachItem(valueOrIndex, index) {\r\n dataIndex = dimension == null\r\n ? valueOrIndex\r\n : index;\r\n var rawDataItem = data.getRawDataItem(dataIndex);\r\n if (rawDataItem && rawDataItem.visualMap === false) {\r\n return;\r\n }\r\n var valueState = getValueState.call(scope, valueOrIndex);\r\n var mappings = visualMappings[valueState];\r\n var visualTypes = visualTypesMap[valueState];\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\r\n }\r\n }\r\n }\r\n function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\r\n var visualTypesMap = {};\r\n each(stateList, function (state) {\r\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\r\n visualTypesMap[state] = visualTypes;\r\n });\r\n return {\r\n progress: function progress(params, data) {\r\n var dimName;\r\n if (dim != null) {\r\n dimName = data.getDimension(dim);\r\n }\r\n function getVisual(key) {\r\n return getItemVisualFromData(data, dataIndex, key);\r\n }\r\n function setVisual(key, value) {\r\n setItemVisualFromData(data, dataIndex, key, value);\r\n }\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var rawDataItem = data.getRawDataItem(dataIndex);\r\n if (rawDataItem && rawDataItem.visualMap === false) {\r\n continue;\r\n }\r\n var value = dim != null\r\n ? data.get(dimName, dataIndex)\r\n : dataIndex;\r\n var valueState = getValueState(value);\r\n var mappings = visualMappings[valueState];\r\n var visualTypes = visualTypesMap[valueState];\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\r\n }\r\n }\r\n }\r\n };\r\n }\n\n function makeBrushCommonSelectorForSeries(area) {\r\n var brushType = area.brushType;\r\n var selectors = {\r\n point: function (itemLayout) {\r\n return selector[brushType].point(itemLayout, selectors, area);\r\n },\r\n rect: function (itemLayout) {\r\n return selector[brushType].rect(itemLayout, selectors, area);\r\n }\r\n };\r\n return selectors;\r\n }\r\n var selector = {\r\n lineX: getLineSelectors(0),\r\n lineY: getLineSelectors(1),\r\n rect: {\r\n point: function (itemLayout, selectors, area) {\r\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n return itemLayout && area.boundingRect.intersect(itemLayout);\r\n }\r\n },\r\n polygon: {\r\n point: function (itemLayout, selectors, area) {\r\n return itemLayout\r\n && area.boundingRect.contain(itemLayout[0], itemLayout[1])\r\n && contain$2(area.range, itemLayout[0], itemLayout[1]);\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n var points = area.range;\r\n if (!itemLayout || points.length <= 1) {\r\n return false;\r\n }\r\n var x = itemLayout.x;\r\n var y = itemLayout.y;\r\n var width = itemLayout.width;\r\n var height = itemLayout.height;\r\n var p = points[0];\r\n if (contain$2(points, x, y)\r\n || contain$2(points, x + width, y)\r\n || contain$2(points, x, y + height)\r\n || contain$2(points, x + width, y + height)\r\n || BoundingRect.create(itemLayout).contain(p[0], p[1])\r\n || linePolygonIntersect(x, y, x + width, y, points)\r\n || linePolygonIntersect(x, y, x, y + height, points)\r\n || linePolygonIntersect(x + width, y, x + width, y + height, points)\r\n || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\r\n return true;\r\n }\r\n }\r\n }\r\n };\r\n function getLineSelectors(xyIndex) {\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n return {\r\n point: function (itemLayout, selectors, area) {\r\n if (itemLayout) {\r\n var range = area.range;\r\n var p = itemLayout[xyIndex];\r\n return inLineRange(p, range);\r\n }\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n if (itemLayout) {\r\n var range = area.range;\r\n var layoutRange = [\r\n itemLayout[xy[xyIndex]],\r\n itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]\r\n ];\r\n layoutRange[1] < layoutRange[0] && layoutRange.reverse();\r\n return inLineRange(layoutRange[0], range)\r\n || inLineRange(layoutRange[1], range)\r\n || inLineRange(range[0], layoutRange)\r\n || inLineRange(range[1], layoutRange);\r\n }\r\n }\r\n };\r\n }\r\n function inLineRange(p, range) {\r\n return range[0] <= p && p <= range[1];\r\n }\n\n var STATE_LIST = ['inBrush', 'outOfBrush'];\r\n var DISPATCH_METHOD = '__ecBrushSelect';\r\n var DISPATCH_FLAG = '__ecInBrushSelectEvent';\r\n var PRIORITY_BRUSH = PRIORITY.VISUAL.BRUSH;\r\n function layoutCovers(ecModel) {\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\r\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\r\n });\r\n }\r\n registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\r\n var brushSelected = [];\r\n var throttleType;\r\n var throttleDelay;\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : { brushType: false });\r\n });\r\n layoutCovers(ecModel);\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel, brushIndex) {\r\n var thisBrushSelected = {\r\n brushId: brushModel.id,\r\n brushIndex: brushIndex,\r\n brushName: brushModel.name,\r\n areas: clone(brushModel.areas),\r\n selected: []\r\n };\r\n brushSelected.push(thisBrushSelected);\r\n var brushOption = brushModel.option;\r\n var brushLink = brushOption.brushLink;\r\n var linkedSeriesMap = [];\r\n var selectedDataIndexForLink = [];\r\n var rangeInfoBySeries = [];\r\n var hasBrushExists = false;\r\n if (!brushIndex) {\r\n throttleType = brushOption.throttleType;\r\n throttleDelay = brushOption.throttleDelay;\r\n }\r\n var areas = map(brushModel.areas, function (area) {\r\n var builder = boundingRectBuilders[area.brushType];\r\n var selectableArea = defaults({ boundingRect: builder ? builder(area) : void 0 }, area);\r\n selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\r\n return selectableArea;\r\n });\r\n var visualMappings = createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\r\n mappingOption.mappingMethod = 'fixed';\r\n });\r\n isArray(brushLink) && each(brushLink, function (seriesIndex) {\r\n linkedSeriesMap[seriesIndex] = 1;\r\n });\r\n function linkOthers(seriesIndex) {\r\n return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\r\n }\r\n function brushed(rangeInfoList) {\r\n return !!rangeInfoList.length;\r\n }\r\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\r\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\r\n seriesModel.subType === 'parallel'\r\n ? stepAParallel(seriesModel, seriesIndex)\r\n : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\r\n });\r\n function stepAParallel(seriesModel, seriesIndex) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\r\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\r\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\r\n });\r\n }\r\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\r\n if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\r\n return;\r\n }\r\n each(areas, function (area) {\r\n if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\r\n rangeInfoList.push(area);\r\n }\r\n hasBrushExists = hasBrushExists || brushed(rangeInfoList);\r\n });\r\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\r\n var data_1 = seriesModel.getData();\r\n data_1.each(function (dataIndex) {\r\n if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\r\n selectedDataIndexForLink[dataIndex] = 1;\r\n }\r\n });\r\n }\r\n }\r\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\r\n var seriesBrushSelected = {\r\n seriesId: seriesModel.id,\r\n seriesIndex: seriesIndex,\r\n seriesName: seriesModel.name,\r\n dataIndex: []\r\n };\r\n thisBrushSelected.selected.push(seriesBrushSelected);\r\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\r\n var data = seriesModel.getData();\r\n var getValueState = linkOthers(seriesIndex)\r\n ? function (dataIndex) {\r\n return selectedDataIndexForLink[dataIndex]\r\n ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush')\r\n : 'outOfBrush';\r\n }\r\n : function (dataIndex) {\r\n return checkInRange(seriesModel, rangeInfoList, data, dataIndex)\r\n ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush')\r\n : 'outOfBrush';\r\n };\r\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList))\r\n && applyVisual(STATE_LIST, visualMappings, data, getValueState);\r\n });\r\n });\r\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\r\n });\r\n function dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n if (zr[DISPATCH_FLAG]) {\r\n return;\r\n }\r\n if (!zr[DISPATCH_METHOD]) {\r\n zr[DISPATCH_METHOD] = doDispatch;\r\n }\r\n var fn = createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\r\n fn(api, brushSelected);\r\n }\r\n function doDispatch(api, brushSelected) {\r\n if (!api.isDisposed()) {\r\n var zr = api.getZr();\r\n zr[DISPATCH_FLAG] = true;\r\n api.dispatchAction({\r\n type: 'brushSelect',\r\n batch: brushSelected\r\n });\r\n zr[DISPATCH_FLAG] = false;\r\n }\r\n }\r\n function checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\r\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\r\n var area = rangeInfoList[i];\r\n if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\r\n return true;\r\n }\r\n }\r\n }\r\n function brushModelNotControll(brushModel, seriesIndex) {\r\n var seriesIndices = brushModel.option.seriesIndex;\r\n return seriesIndices != null\r\n && seriesIndices !== 'all'\r\n && (isArray(seriesIndices)\r\n ? indexOf(seriesIndices, seriesIndex) < 0\r\n : seriesIndex !== seriesIndices);\r\n }\r\n var boundingRectBuilders = {\r\n rect: function (area) {\r\n return getBoundingRectFromMinMax(area.range);\r\n },\r\n polygon: function (area) {\r\n var minMax;\r\n var range = area.range;\r\n for (var i = 0, len = range.length; i < len; i++) {\r\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var rg = range[i];\r\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\r\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\r\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\r\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\r\n }\r\n return minMax && getBoundingRectFromMinMax(minMax);\r\n }\r\n };\r\n function getBoundingRectFromMinMax(minMax) {\r\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\r\n }\n\n var DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\r\n var BrushModel = (function (_super) {\r\n __extends(BrushModel, _super);\r\n function BrushModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BrushModel.type;\r\n _this.areas = [];\r\n _this.brushOption = {};\r\n return _this;\r\n }\r\n BrushModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n !isInit && replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\r\n var inBrush = thisOption.inBrush = thisOption.inBrush || {};\r\n thisOption.outOfBrush = thisOption.outOfBrush || { color: DEFAULT_OUT_OF_BRUSH_COLOR };\r\n if (!inBrush.hasOwnProperty('liftZ')) {\r\n inBrush.liftZ = 5;\r\n }\r\n };\r\n BrushModel.prototype.setAreas = function (areas) {\r\n if (__DEV__) {\r\n assert(isArray(areas));\r\n each(areas, function (area) {\r\n assert(area.brushType, 'Illegal areas');\r\n });\r\n }\r\n if (!areas) {\r\n return;\r\n }\r\n this.areas = map(areas, function (area) {\r\n return generateBrushOption(this.option, area);\r\n }, this);\r\n };\r\n BrushModel.prototype.setBrushOption = function (brushOption) {\r\n this.brushOption = generateBrushOption(this.option, brushOption);\r\n this.brushType = this.brushOption.brushType;\r\n };\r\n BrushModel.type = 'brush';\r\n BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\r\n BrushModel.defaultOption = {\r\n seriesIndex: 'all',\r\n brushType: 'rect',\r\n brushMode: 'single',\r\n transformable: true,\r\n brushStyle: {\r\n borderWidth: 1,\r\n color: 'rgba(120,140,180,0.3)',\r\n borderColor: 'rgba(120,140,180,0.8)'\r\n },\r\n throttleType: 'fixRate',\r\n throttleDelay: 0,\r\n removeOnClick: true,\r\n z: 10000\r\n };\r\n return BrushModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(BrushModel);\r\n function generateBrushOption(option, brushOption) {\r\n return merge({\r\n brushType: option.brushType,\r\n brushMode: option.brushMode,\r\n transformable: option.transformable,\r\n brushStyle: new Model(option.brushStyle).getItemStyle(),\r\n removeOnClick: option.removeOnClick,\r\n z: option.z\r\n }, brushOption, true);\r\n }\n\n var BrushView = (function (_super) {\r\n __extends(BrushView, _super);\r\n function BrushView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BrushView.type;\r\n return _this;\r\n }\r\n BrushView.prototype.init = function (ecModel, api) {\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n this.model;\r\n (this._brushController = new BrushController(api.getZr()))\r\n .on('brush', bind(this._onBrush, this))\r\n .mount();\r\n };\r\n BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\r\n this.model = brushModel;\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\r\n layoutCovers(ecModel);\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\r\n this.updateTransform(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\r\n (!payload || payload.$from !== brushModel.id) && this._brushController\r\n .setPanels(brushModel.brushTargetManager.makePanelOpts(api))\r\n .enableBrush(brushModel.brushOption)\r\n .updateCovers(brushModel.areas.slice());\r\n };\r\n BrushView.prototype.dispose = function () {\r\n this._brushController.dispose();\r\n };\r\n BrushView.prototype._onBrush = function (eventParam) {\r\n var modelId = this.model.id;\r\n var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\r\n (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\r\n type: 'brush',\r\n brushId: modelId,\r\n areas: clone(areas),\r\n $from: modelId\r\n });\r\n eventParam.isEnd && this.api.dispatchAction({\r\n type: 'brushEnd',\r\n brushId: modelId,\r\n areas: clone(areas),\r\n $from: modelId\r\n });\r\n };\r\n BrushView.type = 'brush';\r\n return BrushView;\r\n }(ComponentView));\r\n ComponentView.registerClass(BrushView);\n\n registerAction({ type: 'brush', event: 'brush', update: 'updateVisual' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'brush', query: payload }, function (brushModel) {\r\n brushModel.setAreas(payload.areas);\r\n });\r\n });\r\n registerAction({ type: 'brushSelect', event: 'brushSelected', update: 'none' }, function () { });\r\n registerAction({ type: 'brushEnd', event: 'brushEnd', update: 'none' }, function () { });\n\n var ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\r\n var BrushFeature = (function (_super) {\r\n __extends(BrushFeature, _super);\r\n function BrushFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BrushFeature.prototype.render = function (featureModel, ecModel, api) {\r\n var brushType;\r\n var brushMode;\r\n var isBrushed;\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n brushType = brushModel.brushType;\r\n brushMode = brushModel.brushOption.brushMode || 'single';\r\n isBrushed = isBrushed || !!brushModel.areas.length;\r\n });\r\n this._brushType = brushType;\r\n this._brushMode = brushMode;\r\n each(featureModel.get('type', true), function (type) {\r\n featureModel.setIconStatus(type, (type === 'keep'\r\n ? brushMode === 'multiple'\r\n : type === 'clear'\r\n ? isBrushed\r\n : type === brushType) ? 'emphasis' : 'normal');\r\n });\r\n };\r\n BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\r\n this.render(featureModel, ecModel, api);\r\n };\r\n BrushFeature.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon', true);\r\n var icons = {};\r\n each(model.get('type', true), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n BrushFeature.prototype.onclick = function (ecModel, api, type) {\r\n var brushType = this._brushType;\r\n var brushMode = this._brushMode;\r\n if (type === 'clear') {\r\n api.dispatchAction({\r\n type: 'axisAreaSelect',\r\n intervals: []\r\n });\r\n api.dispatchAction({\r\n type: 'brush',\r\n command: 'clear',\r\n areas: []\r\n });\r\n }\r\n else {\r\n api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'brush',\r\n brushOption: {\r\n brushType: type === 'keep'\r\n ? brushType\r\n : (brushType === type ? false : type),\r\n brushMode: type === 'keep'\r\n ? (brushMode === 'multiple' ? 'single' : 'multiple')\r\n : brushMode\r\n }\r\n });\r\n }\r\n };\r\n BrushFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: ICON_TYPES.slice(),\r\n icon: {\r\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\r\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\r\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\r\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\r\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\r\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'brush', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return BrushFeature;\r\n }(ToolboxFeature));\r\n registerFeature('brush', BrushFeature);\n\n registerPreprocessor(preprocessor$1);\n\n var TitleModel = (function (_super) {\r\n __extends(TitleModel, _super);\r\n function TitleModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleModel.type;\r\n _this.layoutMode = { type: 'box', ignoreSize: true };\r\n return _this;\r\n }\r\n TitleModel.type = 'title';\r\n TitleModel.defaultOption = {\r\n zlevel: 0,\r\n z: 6,\r\n show: true,\r\n text: '',\r\n target: 'blank',\r\n subtext: '',\r\n subtarget: 'blank',\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n color: '#464646'\r\n },\r\n subtextStyle: {\r\n fontSize: 12,\r\n color: '#6E7079'\r\n }\r\n };\r\n return TitleModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TitleModel);\r\n var TitleView = (function (_super) {\r\n __extends(TitleView, _super);\r\n function TitleView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleView.type;\r\n return _this;\r\n }\r\n TitleView.prototype.render = function (titleModel, ecModel, api) {\r\n this.group.removeAll();\r\n if (!titleModel.get('show')) {\r\n return;\r\n }\r\n var group = this.group;\r\n var textStyleModel = titleModel.getModel('textStyle');\r\n var subtextStyleModel = titleModel.getModel('subtextStyle');\r\n var textAlign = titleModel.get('textAlign');\r\n var textVerticalAlign = retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\r\n var textEl = new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: titleModel.get('text'),\r\n fill: textStyleModel.getTextColor()\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var textRect = textEl.getBoundingRect();\r\n var subText = titleModel.get('subtext');\r\n var subTextEl = new ZRText({\r\n style: createTextStyle(subtextStyleModel, {\r\n text: subText,\r\n fill: subtextStyleModel.getTextColor(),\r\n y: textRect.height + titleModel.get('itemGap'),\r\n verticalAlign: 'top'\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var link = titleModel.get('link');\r\n var sublink = titleModel.get('sublink');\r\n var triggerEvent = titleModel.get('triggerEvent', true);\r\n textEl.silent = !link && !triggerEvent;\r\n subTextEl.silent = !sublink && !triggerEvent;\r\n if (link) {\r\n textEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('target'));\r\n });\r\n }\r\n if (sublink) {\r\n subTextEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('subtarget'));\r\n });\r\n }\r\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent\r\n ? {\r\n componentType: 'title',\r\n componentIndex: titleModel.componentIndex\r\n }\r\n : null;\r\n group.add(textEl);\r\n subText && group.add(subTextEl);\r\n var groupRect = group.getBoundingRect();\r\n var layoutOption = titleModel.getBoxLayoutParams();\r\n layoutOption.width = groupRect.width;\r\n layoutOption.height = groupRect.height;\r\n var layoutRect = getLayoutRect(layoutOption, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, titleModel.get('padding'));\r\n if (!textAlign) {\r\n textAlign = (titleModel.get('left') || titleModel.get('right'));\r\n if (textAlign === 'middle') {\r\n textAlign = 'center';\r\n }\r\n if (textAlign === 'right') {\r\n layoutRect.x += layoutRect.width;\r\n }\r\n else if (textAlign === 'center') {\r\n layoutRect.x += layoutRect.width / 2;\r\n }\r\n }\r\n if (!textVerticalAlign) {\r\n textVerticalAlign = (titleModel.get('top') || titleModel.get('bottom'));\r\n if (textVerticalAlign === 'center') {\r\n textVerticalAlign = 'middle';\r\n }\r\n if (textVerticalAlign === 'bottom') {\r\n layoutRect.y += layoutRect.height;\r\n }\r\n else if (textVerticalAlign === 'middle') {\r\n layoutRect.y += layoutRect.height / 2;\r\n }\r\n textVerticalAlign = textVerticalAlign || 'top';\r\n }\r\n group.x = layoutRect.x;\r\n group.y = layoutRect.y;\r\n group.markRedraw();\r\n var alignStyle = {\r\n align: textAlign,\r\n verticalAlign: textVerticalAlign\r\n };\r\n textEl.setStyle(alignStyle);\r\n subTextEl.setStyle(alignStyle);\r\n groupRect = group.getBoundingRect();\r\n var padding = layoutRect.margin;\r\n var style = titleModel.getItemStyle(['color', 'opacity']);\r\n style.fill = titleModel.get('backgroundColor');\r\n var rect = new Rect({\r\n shape: {\r\n x: groupRect.x - padding[3],\r\n y: groupRect.y - padding[0],\r\n width: groupRect.width + padding[1] + padding[3],\r\n height: groupRect.height + padding[0] + padding[2],\r\n r: titleModel.get('borderRadius')\r\n },\r\n style: style,\r\n subPixelOptimize: true,\r\n silent: true\r\n });\r\n group.add(rect);\r\n };\r\n TitleView.type = 'title';\r\n return TitleView;\r\n }(ComponentView));\r\n ComponentView.registerClass(TitleView);\n\n function preprocessor$2 (option) {\r\n var timelineOpt = option && option.timeline;\r\n if (!isArray(timelineOpt)) {\r\n timelineOpt = timelineOpt ? [timelineOpt] : [];\r\n }\r\n each(timelineOpt, function (opt) {\r\n if (!opt) {\r\n return;\r\n }\r\n compatibleEC2(opt);\r\n });\r\n }\r\n function compatibleEC2(opt) {\r\n var type = opt.type;\r\n var ec2Types = { 'number': 'value', 'time': 'time' };\r\n if (ec2Types[type]) {\r\n opt.axisType = ec2Types[type];\r\n delete opt.type;\r\n }\r\n transferItem(opt);\r\n if (has(opt, 'controlPosition')) {\r\n var controlStyle = opt.controlStyle || (opt.controlStyle = {});\r\n if (!has(controlStyle, 'position')) {\r\n controlStyle.position = opt.controlPosition;\r\n }\r\n if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\r\n controlStyle.show = false;\r\n delete controlStyle.position;\r\n }\r\n delete opt.controlPosition;\r\n }\r\n each(opt.data || [], function (dataItem) {\r\n if (isObject(dataItem) && !isArray(dataItem)) {\r\n if (!has(dataItem, 'value') && has(dataItem, 'name')) {\r\n dataItem.value = dataItem.name;\r\n }\r\n transferItem(dataItem);\r\n }\r\n });\r\n }\r\n function transferItem(opt) {\r\n var itemStyle = opt.itemStyle || (opt.itemStyle = {});\r\n var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\r\n var label = opt.label || (opt.label || {});\r\n var labelNormal = label.normal || (label.normal = {});\r\n var excludeLabelAttr = { normal: 1, emphasis: 1 };\r\n each(label, function (value, name) {\r\n if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\r\n labelNormal[name] = value;\r\n }\r\n });\r\n if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\r\n label.emphasis = itemStyleEmphasis.label;\r\n delete itemStyleEmphasis.label;\r\n }\r\n }\r\n function has(obj, attr) {\r\n return obj.hasOwnProperty(attr);\r\n }\n\n ComponentModel.registerSubTypeDefaulter('timeline', function () {\r\n return 'slider';\r\n });\n\n registerAction({ type: 'timelineChange', event: 'timelineChanged', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel && payload.currentIndex != null) {\r\n timelineModel.setCurrentIndex(payload.currentIndex);\r\n if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\r\n timelineModel.setPlayState(false);\r\n }\r\n }\r\n ecModel.resetOption('timeline', { replaceMerge: timelineModel.get('replaceMerge', true) });\r\n return defaults({\r\n currentIndex: timelineModel.option.currentIndex\r\n }, payload);\r\n });\r\n registerAction({ type: 'timelinePlayChange', event: 'timelinePlayChanged', update: 'update' }, function (payload, ecModel) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel && payload.playState != null) {\r\n timelineModel.setPlayState(payload.playState);\r\n }\r\n });\n\n var TimelineModel = (function (_super) {\r\n __extends(TimelineModel, _super);\r\n function TimelineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TimelineModel.type;\r\n _this.layoutMode = 'box';\r\n return _this;\r\n }\r\n TimelineModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._initData();\r\n };\r\n TimelineModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n this._initData();\r\n };\r\n TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\r\n if (currentIndex == null) {\r\n currentIndex = this.option.currentIndex;\r\n }\r\n var count = this._data.count();\r\n if (this.option.loop) {\r\n currentIndex = (currentIndex % count + count) % count;\r\n }\r\n else {\r\n currentIndex >= count && (currentIndex = count - 1);\r\n currentIndex < 0 && (currentIndex = 0);\r\n }\r\n this.option.currentIndex = currentIndex;\r\n };\r\n TimelineModel.prototype.getCurrentIndex = function () {\r\n return this.option.currentIndex;\r\n };\r\n TimelineModel.prototype.isIndexMax = function () {\r\n return this.getCurrentIndex() >= this._data.count() - 1;\r\n };\r\n TimelineModel.prototype.setPlayState = function (state) {\r\n this.option.autoPlay = !!state;\r\n };\r\n TimelineModel.prototype.getPlayState = function () {\r\n return !!this.option.autoPlay;\r\n };\r\n TimelineModel.prototype._initData = function () {\r\n var thisOption = this.option;\r\n var dataArr = thisOption.data || [];\r\n var axisType = thisOption.axisType;\r\n var names = this._names = [];\r\n var processedDataArr;\r\n if (axisType === 'category') {\r\n processedDataArr = [];\r\n each(dataArr, function (item, index) {\r\n var value = getDataItemValue(item);\r\n var newItem;\r\n if (isObject(item)) {\r\n newItem = clone(item);\r\n newItem.value = index;\r\n }\r\n else {\r\n newItem = index;\r\n }\r\n processedDataArr.push(newItem);\r\n if (!isString(value) && (value == null || isNaN(value))) {\r\n value = '';\r\n }\r\n names.push(value + '');\r\n });\r\n }\r\n else {\r\n processedDataArr = dataArr;\r\n }\r\n var dimType = ({\r\n category: 'ordinal',\r\n time: 'time',\r\n value: 'number'\r\n })[axisType] || 'number';\r\n var data = this._data = new List([{\r\n name: 'value', type: dimType\r\n }], this);\r\n data.initData(processedDataArr, names);\r\n };\r\n TimelineModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n TimelineModel.prototype.getCategories = function () {\r\n if (this.get('axisType') === 'category') {\r\n return this._names.slice();\r\n }\r\n };\r\n TimelineModel.type = 'timeline';\r\n TimelineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n axisType: 'time',\r\n realtime: true,\r\n left: '20%',\r\n top: null,\r\n right: '20%',\r\n bottom: 0,\r\n width: null,\r\n height: 40,\r\n padding: 5,\r\n controlPosition: 'left',\r\n autoPlay: false,\r\n rewind: false,\r\n loop: true,\r\n playInterval: 2000,\r\n currentIndex: 0,\r\n itemStyle: {},\r\n label: {\r\n color: '#000'\r\n },\r\n data: []\r\n };\r\n return TimelineModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TimelineModel);\n\n var SliderTimelineModel = (function (_super) {\r\n __extends(SliderTimelineModel, _super);\r\n function SliderTimelineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderTimelineModel.type;\r\n return _this;\r\n }\r\n SliderTimelineModel.type = 'timeline.slider';\r\n SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n orient: 'horizontal',\r\n inverse: false,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n symbol: 'circle',\r\n symbolSize: 12,\r\n lineStyle: {\r\n show: true,\r\n width: 2,\r\n color: '#DAE1F5'\r\n },\r\n label: {\r\n position: 'auto',\r\n show: true,\r\n interval: 'auto',\r\n rotate: 0,\r\n color: '#A4B1D7'\r\n },\r\n itemStyle: {\r\n color: '#A4B1D7',\r\n borderWidth: 1\r\n },\r\n checkpointStyle: {\r\n symbol: 'circle',\r\n symbolSize: 15,\r\n color: '#316bf3',\r\n borderColor: '#fff',\r\n borderWidth: 2,\r\n shadowBlur: 2,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0, 0, 0, 0.3)',\r\n animation: true,\r\n animationDuration: 300,\r\n animationEasing: 'quinticInOut'\r\n },\r\n controlStyle: {\r\n show: true,\r\n showPlayBtn: true,\r\n showPrevBtn: true,\r\n showNextBtn: true,\r\n itemSize: 24,\r\n itemGap: 12,\r\n position: 'left',\r\n playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\r\n stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\r\n nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z',\r\n prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z',\r\n prevBtnSize: 18,\r\n nextBtnSize: 18,\r\n color: '#A4B1D7',\r\n borderColor: '#A4B1D7',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: '#6f778d'\r\n },\r\n itemStyle: {\r\n color: '#316BF3'\r\n },\r\n controlStyle: {\r\n color: '#316BF3',\r\n borderColor: '#316BF3',\r\n borderWidth: 2\r\n }\r\n },\r\n progress: {\r\n lineStyle: {\r\n color: '#316BF3'\r\n },\r\n itemStyle: {\r\n color: '#316BF3'\r\n },\r\n label: {\r\n color: '#6f778d'\r\n }\r\n },\r\n data: []\r\n });\r\n return SliderTimelineModel;\r\n }(TimelineModel));\r\n mixin(SliderTimelineModel, DataFormatMixin.prototype);\r\n ComponentModel.registerClass(SliderTimelineModel);\n\n var TimelineView = (function (_super) {\r\n __extends(TimelineView, _super);\r\n function TimelineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TimelineView.type;\r\n return _this;\r\n }\r\n TimelineView.type = 'timeline';\r\n return TimelineView;\r\n }(ComponentView));\n\n var TimelineAxis = (function (_super) {\r\n __extends(TimelineAxis, _super);\r\n function TimelineAxis(dim, scale, coordExtent, axisType) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n return _this;\r\n }\r\n TimelineAxis.prototype.getLabelModel = function () {\r\n return this.model.getModel('label');\r\n };\r\n TimelineAxis.prototype.isHorizontal = function () {\r\n return this.model.get('orient') === 'horizontal';\r\n };\r\n return TimelineAxis;\r\n }(Axis));\n\n var PI$8 = Math.PI;\r\n var labelDataIndexStore = makeInner();\r\n var SliderTimelineView = (function (_super) {\r\n __extends(SliderTimelineView, _super);\r\n function SliderTimelineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderTimelineView.type;\r\n return _this;\r\n }\r\n SliderTimelineView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n };\r\n SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\r\n this.model = timelineModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n this.group.removeAll();\r\n if (timelineModel.get('show', true)) {\r\n var layoutInfo_1 = this._layout(timelineModel, api);\r\n var mainGroup_1 = this._createGroup('_mainGroup');\r\n var labelGroup = this._createGroup('_labelGroup');\r\n var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\r\n timelineModel.formatTooltip = function (dataIndex) {\r\n return encodeHTML(axis_1.scale.getLabel({ value: dataIndex }));\r\n };\r\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\r\n this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\r\n }, this);\r\n this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\r\n this._position(layoutInfo_1, timelineModel);\r\n }\r\n this._doPlayStop();\r\n this._updateTicksStatus();\r\n };\r\n SliderTimelineView.prototype.remove = function () {\r\n this._clearTimer();\r\n this.group.removeAll();\r\n };\r\n SliderTimelineView.prototype.dispose = function () {\r\n this._clearTimer();\r\n };\r\n SliderTimelineView.prototype._layout = function (timelineModel, api) {\r\n var labelPosOpt = timelineModel.get(['label', 'position']);\r\n var orient = timelineModel.get('orient');\r\n var viewRect = getViewRect$5(timelineModel, api);\r\n var parsedLabelPos;\r\n if (labelPosOpt == null || labelPosOpt === 'auto') {\r\n parsedLabelPos = orient === 'horizontal'\r\n ? ((viewRect.y + viewRect.height / 2) < api.getHeight() / 2 ? '-' : '+')\r\n : ((viewRect.x + viewRect.width / 2) < api.getWidth() / 2 ? '+' : '-');\r\n }\r\n else if (isString(labelPosOpt)) {\r\n parsedLabelPos = {\r\n horizontal: { top: '-', bottom: '+' },\r\n vertical: { left: '-', right: '+' }\r\n }[orient][labelPosOpt];\r\n }\r\n else {\r\n parsedLabelPos = labelPosOpt;\r\n }\r\n var labelAlignMap = {\r\n horizontal: 'center',\r\n vertical: (parsedLabelPos >= 0 || parsedLabelPos === '+') ? 'left' : 'right'\r\n };\r\n var labelBaselineMap = {\r\n horizontal: (parsedLabelPos >= 0 || parsedLabelPos === '+') ? 'top' : 'bottom',\r\n vertical: 'middle'\r\n };\r\n var rotationMap = {\r\n horizontal: 0,\r\n vertical: PI$8 / 2\r\n };\r\n var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\r\n var controlModel = timelineModel.getModel('controlStyle');\r\n var showControl = controlModel.get('show', true);\r\n var controlSize = showControl ? controlModel.get('itemSize') : 0;\r\n var controlGap = showControl ? controlModel.get('itemGap') : 0;\r\n var sizePlusGap = controlSize + controlGap;\r\n var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\r\n labelRotation = labelRotation * PI$8 / 180;\r\n var playPosition;\r\n var prevBtnPosition;\r\n var nextBtnPosition;\r\n var controlPosition = controlModel.get('position', true);\r\n var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\r\n var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\r\n var showNextBtn = showControl && controlModel.get('showNextBtn', true);\r\n var xLeft = 0;\r\n var xRight = mainLength;\r\n if (controlPosition === 'left' || controlPosition === 'bottom') {\r\n showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\r\n showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\r\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n }\r\n else {\r\n showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\r\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n }\r\n var axisExtent = [xLeft, xRight];\r\n if (timelineModel.get('inverse')) {\r\n axisExtent.reverse();\r\n }\r\n return {\r\n viewRect: viewRect,\r\n mainLength: mainLength,\r\n orient: orient,\r\n rotation: rotationMap[orient],\r\n labelRotation: labelRotation,\r\n labelPosOpt: parsedLabelPos,\r\n labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\r\n labelBaseline: timelineModel.get(['label', 'verticalAlign'])\r\n || timelineModel.get(['label', 'baseline'])\r\n || labelBaselineMap[orient],\r\n playPosition: playPosition,\r\n prevBtnPosition: prevBtnPosition,\r\n nextBtnPosition: nextBtnPosition,\r\n axisExtent: axisExtent,\r\n controlSize: controlSize,\r\n controlGap: controlGap\r\n };\r\n };\r\n SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\r\n var mainGroup = this._mainGroup;\r\n var labelGroup = this._labelGroup;\r\n var viewRect = layoutInfo.viewRect;\r\n if (layoutInfo.orient === 'vertical') {\r\n var m = create$1();\r\n var rotateOriginX = viewRect.x;\r\n var rotateOriginY = viewRect.y + viewRect.height;\r\n translate(m, m, [-rotateOriginX, -rotateOriginY]);\r\n rotate(m, m, -PI$8 / 2);\r\n translate(m, m, [rotateOriginX, rotateOriginY]);\r\n viewRect = viewRect.clone();\r\n viewRect.applyTransform(m);\r\n }\r\n var viewBound = getBound(viewRect);\r\n var mainBound = getBound(mainGroup.getBoundingRect());\r\n var labelBound = getBound(labelGroup.getBoundingRect());\r\n var mainPosition = [mainGroup.x, mainGroup.y];\r\n var labelsPosition = [labelGroup.x, labelGroup.y];\r\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\r\n var labelPosOpt = layoutInfo.labelPosOpt;\r\n if (labelPosOpt == null || isString(labelPosOpt)) {\r\n var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\r\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\r\n toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\r\n }\r\n else {\r\n var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\r\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\r\n labelsPosition[1] = mainPosition[1] + labelPosOpt;\r\n }\r\n mainGroup.setPosition(mainPosition);\r\n labelGroup.setPosition(labelsPosition);\r\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\r\n setOrigin(mainGroup);\r\n setOrigin(labelGroup);\r\n function setOrigin(targetGroup) {\r\n targetGroup.originX = viewBound[0][0] - targetGroup.x;\r\n targetGroup.originY = viewBound[1][0] - targetGroup.y;\r\n }\r\n function getBound(rect) {\r\n return [\r\n [rect.x, rect.x + rect.width],\r\n [rect.y, rect.y + rect.height]\r\n ];\r\n }\r\n function toBound(fromPos, from, to, dimIdx, boundIdx) {\r\n fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\r\n }\r\n };\r\n SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\r\n var data = timelineModel.getData();\r\n var axisType = timelineModel.get('axisType');\r\n var scale = createScaleByModel$1(timelineModel, axisType);\r\n scale.getTicks = function () {\r\n return data.mapArray(['value'], function (value) {\r\n return { value: value };\r\n });\r\n };\r\n var dataExtent = data.getDataExtent('value');\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n scale.niceTicks();\r\n var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\r\n axis.model = timelineModel;\r\n return axis;\r\n };\r\n SliderTimelineView.prototype._createGroup = function (key) {\r\n var newGroup = this[key] = new Group();\r\n this.group.add(newGroup);\r\n return newGroup;\r\n };\r\n SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\r\n var axisExtent = axis.getExtent();\r\n if (!timelineModel.get(['lineStyle', 'show'])) {\r\n return;\r\n }\r\n var line = new Line({\r\n shape: {\r\n x1: axisExtent[0], y1: 0,\r\n x2: axisExtent[1], y2: 0\r\n },\r\n style: extend({ lineCap: 'round' }, timelineModel.getModel('lineStyle').getLineStyle()),\r\n silent: true,\r\n z2: 1\r\n });\r\n group.add(line);\r\n var progressLine = this._progressLine = new Line({\r\n shape: {\r\n x1: axisExtent[0],\r\n x2: this._currentPointer\r\n ? this._currentPointer.x : axisExtent[0],\r\n y1: 0, y2: 0\r\n },\r\n style: defaults({ lineCap: 'round', lineWidth: line.style.lineWidth }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\r\n silent: true,\r\n z2: 1\r\n });\r\n group.add(progressLine);\r\n };\r\n SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\r\n var _this = this;\r\n var data = timelineModel.getData();\r\n var ticks = axis.scale.getTicks();\r\n this._tickSymbols = [];\r\n each(ticks, function (tick) {\r\n var tickCoord = axis.dataToCoord(tick.value);\r\n var itemModel = data.getItemModel(tick.value);\r\n var itemStyleModel = itemModel.getModel('itemStyle');\r\n var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\r\n var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\r\n var symbolOpt = {\r\n position: [tickCoord, 0],\r\n onclick: bind(_this._changeTimeline, _this, tick.value)\r\n };\r\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\r\n el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\r\n el.ensureState('progress').style = progressStyleModel.getItemStyle();\r\n enableHoverEmphasis(el);\r\n var ecData = getECData(el);\r\n if (itemModel.get('tooltip')) {\r\n ecData.dataIndex = tick.value;\r\n ecData.dataModel = timelineModel;\r\n }\r\n else {\r\n ecData.dataIndex = ecData.dataModel = null;\r\n }\r\n _this._tickSymbols.push(el);\r\n });\r\n };\r\n SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\r\n var _this = this;\r\n var labelModel = axis.getLabelModel();\r\n if (!labelModel.get('show')) {\r\n return;\r\n }\r\n var data = timelineModel.getData();\r\n var labels = axis.getViewLabels();\r\n this._tickLabels = [];\r\n each(labels, function (labelItem) {\r\n var dataIndex = labelItem.tickValue;\r\n var itemModel = data.getItemModel(dataIndex);\r\n var normalLabelModel = itemModel.getModel('label');\r\n var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\r\n var progressLabelModel = itemModel.getModel(['progress', 'label']);\r\n var tickCoord = axis.dataToCoord(labelItem.tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: 0,\r\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\r\n onclick: bind(_this._changeTimeline, _this, dataIndex),\r\n silent: false,\r\n style: createTextStyle(normalLabelModel, {\r\n text: labelItem.formattedLabel,\r\n align: layoutInfo.labelAlign,\r\n verticalAlign: layoutInfo.labelBaseline\r\n })\r\n });\r\n textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\r\n textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\r\n group.add(textEl);\r\n enableHoverEmphasis(textEl);\r\n labelDataIndexStore(textEl).dataIndex = dataIndex;\r\n _this._tickLabels.push(textEl);\r\n });\r\n };\r\n SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\r\n var controlSize = layoutInfo.controlSize;\r\n var rotation = layoutInfo.rotation;\r\n var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\r\n var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\r\n var playState = timelineModel.getPlayState();\r\n var inverse = timelineModel.get('inverse', true);\r\n makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\r\n makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\r\n makeBtn(layoutInfo.playPosition, (playState ? 'stop' : 'play'), bind(this._handlePlayClick, this, !playState), true);\r\n function makeBtn(position, iconName, onclick, willRotate) {\r\n if (!position) {\r\n return;\r\n }\r\n var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\r\n var rect = [0, -iconSize / 2, iconSize, iconSize];\r\n var opt = {\r\n position: position,\r\n origin: [controlSize / 2, 0],\r\n rotation: willRotate ? -rotation : 0,\r\n rectHover: true,\r\n style: itemStyle,\r\n onclick: onclick\r\n };\r\n var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\r\n btn.ensureState('emphasis').style = hoverStyle;\r\n group.add(btn);\r\n enableHoverEmphasis(btn);\r\n }\r\n };\r\n SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\r\n var data = timelineModel.getData();\r\n var currentIndex = timelineModel.getCurrentIndex();\r\n var pointerModel = data.getItemModel(currentIndex)\r\n .getModel('checkpointStyle');\r\n var me = this;\r\n var callback = {\r\n onCreate: function (pointer) {\r\n pointer.draggable = true;\r\n pointer.drift = bind(me._handlePointerDrag, me);\r\n pointer.ondragend = bind(me._handlePointerDragend, me);\r\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\r\n },\r\n onUpdate: function (pointer) {\r\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\r\n }\r\n };\r\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\r\n };\r\n SliderTimelineView.prototype._handlePlayClick = function (nextState) {\r\n this._clearTimer();\r\n this.api.dispatchAction({\r\n type: 'timelinePlayChange',\r\n playState: nextState,\r\n from: this.uid\r\n });\r\n };\r\n SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\r\n this._clearTimer();\r\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\r\n };\r\n SliderTimelineView.prototype._handlePointerDragend = function (e) {\r\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\r\n };\r\n SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\r\n var toCoord = this._toAxisCoord(mousePos)[0];\r\n var axis = this._axis;\r\n var axisExtent = asc(axis.getExtent().slice());\r\n toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\r\n toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\r\n this._currentPointer.x = toCoord;\r\n this._currentPointer.markRedraw();\r\n this._progressLine.shape.x2 = toCoord;\r\n this._progressLine.dirty();\r\n var targetDataIndex = this._findNearestTick(toCoord);\r\n var timelineModel = this.model;\r\n if (trigger || (targetDataIndex !== timelineModel.getCurrentIndex()\r\n && timelineModel.get('realtime'))) {\r\n this._changeTimeline(targetDataIndex);\r\n }\r\n };\r\n SliderTimelineView.prototype._doPlayStop = function () {\r\n var _this = this;\r\n this._clearTimer();\r\n if (this.model.getPlayState()) {\r\n this._timer = setTimeout(function () {\r\n var timelineModel = _this.model;\r\n _this._changeTimeline(timelineModel.getCurrentIndex()\r\n + (timelineModel.get('rewind', true) ? -1 : 1));\r\n }, this.model.get('playInterval'));\r\n }\r\n };\r\n SliderTimelineView.prototype._toAxisCoord = function (vertex) {\r\n var trans = this._mainGroup.getLocalTransform();\r\n return applyTransform$1(vertex, trans, true);\r\n };\r\n SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\r\n var data = this.model.getData();\r\n var dist = Infinity;\r\n var targetDataIndex;\r\n var axis = this._axis;\r\n data.each(['value'], function (value, dataIndex) {\r\n var coord = axis.dataToCoord(value);\r\n var d = Math.abs(coord - axisCoord);\r\n if (d < dist) {\r\n dist = d;\r\n targetDataIndex = dataIndex;\r\n }\r\n });\r\n return targetDataIndex;\r\n };\r\n SliderTimelineView.prototype._clearTimer = function () {\r\n if (this._timer) {\r\n clearTimeout(this._timer);\r\n this._timer = null;\r\n }\r\n };\r\n SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\r\n var currentIndex = this.model.getCurrentIndex();\r\n if (nextIndex === '+') {\r\n nextIndex = currentIndex + 1;\r\n }\r\n else if (nextIndex === '-') {\r\n nextIndex = currentIndex - 1;\r\n }\r\n this.api.dispatchAction({\r\n type: 'timelineChange',\r\n currentIndex: nextIndex,\r\n from: this.uid\r\n });\r\n };\r\n SliderTimelineView.prototype._updateTicksStatus = function () {\r\n var currentIndex = this.model.getCurrentIndex();\r\n var tickSymbols = this._tickSymbols;\r\n var tickLabels = this._tickLabels;\r\n if (tickSymbols) {\r\n for (var i = 0; i < tickSymbols.length; i++) {\r\n tickSymbols && tickSymbols[i]\r\n && tickSymbols[i].toggleState('progress', i < currentIndex);\r\n }\r\n }\r\n if (tickLabels) {\r\n for (var i = 0; i < tickLabels.length; i++) {\r\n tickLabels && tickLabels[i]\r\n && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\r\n }\r\n }\r\n };\r\n SliderTimelineView.type = 'timeline.slider';\r\n return SliderTimelineView;\r\n }(TimelineView));\r\n function createScaleByModel$1(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n lang: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new IntervalScale();\r\n }\r\n }\r\n }\r\n function getViewRect$5(model, api) {\r\n return getLayoutRect(model.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, model.get('padding'));\r\n }\r\n function makeControlIcon(timelineModel, objPath, rect, opts) {\r\n var icon = makePath(timelineModel.get(['controlStyle', objPath]).replace(/^path:\\/\\//, ''), clone(opts || {}), new BoundingRect(rect[0], rect[1], rect[2], rect[3]), 'center');\r\n return icon;\r\n }\r\n function giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\r\n var color = itemStyleModel.get('color');\r\n if (!symbol) {\r\n var symbolType = hostModel.get('symbol');\r\n symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\r\n symbol.setStyle('strokeNoScale', true);\r\n group.add(symbol);\r\n callback && callback.onCreate(symbol);\r\n }\r\n else {\r\n symbol.setColor(color);\r\n group.add(symbol);\r\n callback && callback.onUpdate(symbol);\r\n }\r\n var itemStyle = itemStyleModel.getItemStyle(['color']);\r\n symbol.setStyle(itemStyle);\r\n opt = merge({\r\n rectHover: true,\r\n z2: 100\r\n }, opt, true);\r\n var symbolSize = hostModel.get('symbolSize');\r\n symbolSize = symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n opt.scaleX = symbolSize[0] / 2;\r\n opt.scaleY = symbolSize[1] / 2;\r\n var symbolOffset = hostModel.get('symbolOffset');\r\n if (symbolOffset) {\r\n opt.x = opt.x || 0;\r\n opt.y = opt.y || 0;\r\n opt.x += parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n opt.y += parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n var symbolRotate = hostModel.get('symbolRotate');\r\n opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n symbol.attr(opt);\r\n symbol.updateTransform();\r\n return symbol;\r\n }\r\n function pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\r\n if (pointer.dragging) {\r\n return;\r\n }\r\n var pointerModel = timelineModel.getModel('checkpointStyle');\r\n var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\r\n if (noAnimation || !pointerModel.get('animation', true)) {\r\n pointer.attr({\r\n x: toCoord,\r\n y: 0\r\n });\r\n progressLine && progressLine.attr({\r\n shape: { x2: toCoord }\r\n });\r\n }\r\n else {\r\n var animationCfg = {\r\n duration: pointerModel.get('animationDuration', true),\r\n easing: pointerModel.get('animationEasing', true)\r\n };\r\n pointer.stopAnimation(null, true);\r\n pointer.animateTo({\r\n x: toCoord,\r\n y: 0\r\n }, animationCfg);\r\n progressLine && progressLine.animateTo({\r\n shape: { x2: toCoord }\r\n }, animationCfg);\r\n }\r\n }\r\n ComponentView.registerClass(SliderTimelineView);\n\n registerPreprocessor(preprocessor$2);\n\n function fillLabel(opt) {\r\n defaultEmphasis(opt, 'label', ['show']);\r\n }\r\n var inner$i = makeInner();\r\n var MarkerModel = (function (_super) {\r\n __extends(MarkerModel, _super);\r\n function MarkerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerModel.type;\r\n _this.createdBySelf = false;\r\n return _this;\r\n }\r\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\r\n if (__DEV__) {\r\n if (this.type === 'marker') {\r\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\r\n }\r\n }\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._mergeOption(option, ecModel, false, true);\r\n };\r\n MarkerModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var hostSeries = this.__hostSeries;\r\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\r\n };\r\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\r\n this._mergeOption(newOpt, ecModel, false, false);\r\n };\r\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\r\n var componentType = this.mainType;\r\n if (!createdBySelf) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerOpt = seriesModel.get(this.mainType, true);\r\n var markerModel = inner$i(seriesModel)[componentType];\r\n if (!markerOpt || !markerOpt.data) {\r\n inner$i(seriesModel)[componentType] = null;\r\n return;\r\n }\r\n if (!markerModel) {\r\n if (isInit) {\r\n fillLabel(markerOpt);\r\n }\r\n each(markerOpt.data, function (item) {\r\n if (item instanceof Array) {\r\n fillLabel(item[0]);\r\n fillLabel(item[1]);\r\n }\r\n else {\r\n fillLabel(item);\r\n }\r\n });\r\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\r\n extend(markerModel, {\r\n mainType: this.mainType,\r\n seriesIndex: seriesModel.seriesIndex,\r\n name: seriesModel.name,\r\n createdBySelf: true\r\n });\r\n markerModel.__hostSeries = seriesModel;\r\n }\r\n else {\r\n markerModel._mergeOption(markerOpt, ecModel, true);\r\n }\r\n inner$i(seriesModel)[componentType] = markerModel;\r\n }, this);\r\n }\r\n };\r\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var formattedValue = isArray(value)\r\n ? map(value, addCommas).join(', ') : addCommas(value);\r\n var name = encodeHTML(data.getName(dataIndex));\r\n var html = \"
\" + encodeHTML(this.name) + \"
\";\r\n if (value != null || name) {\r\n html += renderMode === 'html' ? '' : '\\n';\r\n }\r\n if (name) {\r\n html += \"
\" + name + \"\";\r\n }\r\n if (value != null) {\r\n html = renderMode === 'html'\r\n ? concatTooltipHtml(html, formattedValue, true) + (name ? '
' : '')\r\n : (html + formattedValue);\r\n }\r\n return html;\r\n };\r\n MarkerModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n MarkerModel.prototype.setData = function (data) {\r\n this._data = data;\r\n };\r\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\r\n return inner$i(seriesModel)[componentType];\r\n };\r\n MarkerModel.type = 'marker';\r\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\r\n return MarkerModel;\r\n }(ComponentModel));\r\n mixin(MarkerModel, DataFormatMixin.prototype);\n\n var MarkPointModel = (function (_super) {\r\n __extends(MarkPointModel, _super);\r\n function MarkPointModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointModel.type;\r\n return _this;\r\n }\r\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkPointModel.type = 'markPoint';\r\n MarkPointModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: 'pin',\r\n symbolSize: 50,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'inside'\r\n },\r\n itemStyle: {\r\n borderWidth: 2\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return MarkPointModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkPointModel);\n\n function hasXOrY(item) {\r\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\r\n }\r\n function hasXAndY(item) {\r\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\r\n }\r\n function markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\r\n var coordArr = [];\r\n var stacked = isDimensionStacked(data, targetDataDim);\r\n var calcDataDim = stacked\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDataDim;\r\n var value = numCalculate(data, calcDataDim, markerType);\r\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\r\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\r\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\r\n var coordArrValue = data.get(targetDataDim, dataIndex);\r\n var precision = getPrecision(data.get(targetDataDim, dataIndex));\r\n precision = Math.min(precision, 20);\r\n if (precision >= 0) {\r\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\r\n }\r\n return [coordArr, coordArrValue];\r\n }\r\n var markerTypeCalculator = {\r\n min: curry(markerTypeCalculatorWithExtent, 'min'),\r\n max: curry(markerTypeCalculatorWithExtent, 'max'),\r\n average: curry(markerTypeCalculatorWithExtent, 'average'),\r\n median: curry(markerTypeCalculatorWithExtent, 'median')\r\n };\r\n function dataTransform(seriesModel, item) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\r\n var dims = coordSys.dimensions;\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n item = clone(item);\r\n if (item.type\r\n && markerTypeCalculator[item.type]\r\n && axisInfo.baseAxis && axisInfo.valueAxis) {\r\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\r\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\r\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\r\n item.coord = coordInfo[0];\r\n item.value = coordInfo[1];\r\n }\r\n else {\r\n var coord = [\r\n item.xAxis != null ? item.xAxis : item.radiusAxis,\r\n item.yAxis != null ? item.yAxis : item.angleAxis\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n if (markerTypeCalculator[coord[i]]) {\r\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\r\n }\r\n }\r\n item.coord = coord;\r\n }\r\n }\r\n return item;\r\n }\r\n function getAxisInfo$1(item, data, coordSys, seriesModel) {\r\n var ret = {};\r\n if (item.valueIndex != null || item.valueDim != null) {\r\n ret.valueDataDim = item.valueIndex != null\r\n ? data.getDimension(item.valueIndex) : item.valueDim;\r\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\r\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n }\r\n else {\r\n ret.baseAxis = seriesModel.getBaseAxis();\r\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\r\n }\r\n return ret;\r\n }\r\n function dataDimToCoordDim(seriesModel, dataDim) {\r\n var data = seriesModel.getData();\r\n var dimensions = data.dimensions;\r\n dataDim = data.getDimension(dataDim);\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimItem = data.getDimensionInfo(dimensions[i]);\r\n if (dimItem.name === dataDim) {\r\n return dimItem.coordDim;\r\n }\r\n }\r\n }\r\n function dataFilter$1(coordSys, item) {\r\n return (coordSys && coordSys.containData && item.coord && !hasXOrY(item))\r\n ? coordSys.containData(item.coord) : true;\r\n }\r\n function dimValueGetter(item, dimName, dataIndex, dimIndex) {\r\n if (dimIndex < 2) {\r\n return item.coord && item.coord[dimIndex];\r\n }\r\n return item.value;\r\n }\r\n function numCalculate(data, valueDataDim, type) {\r\n if (type === 'average') {\r\n var sum_1 = 0;\r\n var count_1 = 0;\r\n data.each(valueDataDim, function (val, idx) {\r\n if (!isNaN(val)) {\r\n sum_1 += val;\r\n count_1++;\r\n }\r\n });\r\n return sum_1 / count_1;\r\n }\r\n else if (type === 'median') {\r\n return data.getMedian(valueDataDim);\r\n }\r\n else {\r\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\r\n }\r\n }\n\n var inner$j = makeInner();\r\n var MarkerView = (function (_super) {\r\n __extends(MarkerView, _super);\r\n function MarkerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerView.type;\r\n return _this;\r\n }\r\n MarkerView.prototype.init = function () {\r\n this.markerGroupMap = createHashMap();\r\n };\r\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\r\n var _this = this;\r\n var markerGroupMap = this.markerGroupMap;\r\n markerGroupMap.each(function (item) {\r\n inner$j(item).keep = false;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\r\n });\r\n markerGroupMap.each(function (item) {\r\n !inner$j(item).keep && _this.group.remove(item.group);\r\n });\r\n };\r\n MarkerView.prototype.markKeep = function (drawGroup) {\r\n inner$j(drawGroup).keep = true;\r\n };\r\n MarkerView.prototype.blurSeries = function (seriesModelList) {\r\n var _this = this;\r\n each(seriesModelList, function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n if (markerModel) {\r\n var data = markerModel.getData();\r\n data.eachItemGraphicEl(function (el) {\r\n if (el) {\r\n enterBlur(el);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n MarkerView.type = 'marker';\r\n return MarkerView;\r\n }(ComponentView));\n\n function updateMarkerLayout(mpData, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\r\n }\r\n else if (coordSys) {\r\n var x = mpData.get(coordSys.dimensions[0], idx);\r\n var y = mpData.get(coordSys.dimensions[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n mpData.setItemLayout(idx, point);\r\n });\r\n }\r\n var MarkPointView = (function (_super) {\r\n __extends(MarkPointView, _super);\r\n function MarkPointView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointView.type;\r\n return _this;\r\n }\r\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\r\n if (mpModel) {\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var symbolDrawMap = this.markerGroupMap;\r\n var symbolDraw = symbolDrawMap.get(seriesId)\r\n || symbolDrawMap.set(seriesId, new SymbolDraw());\r\n var mpData = createList$1(coordSys, seriesModel, mpModel);\r\n mpModel.setData(mpData);\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var symbol = itemModel.getShallow('symbol');\r\n var symbolSize = itemModel.getShallow('symbolSize');\r\n if (isFunction(symbol) || isFunction(symbolSize)) {\r\n var rawIdx = mpModel.getRawValue(idx);\r\n var dataParams = mpModel.getDataParams(idx);\r\n if (isFunction(symbol)) {\r\n symbol = symbol(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolSize)) {\r\n symbolSize = symbolSize(rawIdx, dataParams);\r\n }\r\n }\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n var color = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color;\r\n }\r\n mpData.setItemVisual(idx, {\r\n symbol: symbol,\r\n symbolSize: symbolSize,\r\n style: style\r\n });\r\n });\r\n symbolDraw.updateData(mpData);\r\n this.group.add(symbolDraw.group);\r\n mpData.eachItemGraphicEl(function (el) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mpModel;\r\n });\r\n });\r\n this.markKeep(symbolDraw);\r\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkPointView.type = 'markPoint';\r\n return MarkPointView;\r\n }(MarkerView));\r\n function createList$1(coordSys, seriesModel, mpModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var mpData = new List(coordDimsInfos, mpModel);\r\n var dataOpt = map(mpModel.get('data'), curry(dataTransform, seriesModel));\r\n if (coordSys) {\r\n dataOpt = filter(dataOpt, curry(dataFilter$1, coordSys));\r\n }\r\n mpData.initData(dataOpt, null, coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n });\r\n return mpData;\r\n }\r\n ComponentView.registerClass(MarkPointView);\n\n registerPreprocessor(function (opt) {\r\n opt.markPoint = opt.markPoint || {};\r\n });\n\n var MarkLineModel = (function (_super) {\r\n __extends(MarkLineModel, _super);\r\n function MarkLineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineModel.type;\r\n return _this;\r\n }\r\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkLineModel.type = 'markLine';\r\n MarkLineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: ['circle', 'arrow'],\r\n symbolSize: [8, 16],\r\n precision: 2,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'end',\r\n distance: 5\r\n },\r\n lineStyle: {\r\n type: 'dashed'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n width: 3\r\n }\r\n },\r\n animationEasing: 'linear'\r\n };\r\n return MarkLineModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkLineModel);\n\n var inner$k = makeInner();\r\n var markLineTransform = function (seriesModel, coordSys, mlModel, item) {\r\n var data = seriesModel.getData();\r\n var itemArray;\r\n if (!isArray(item)) {\r\n var mlType = item.type;\r\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median'\r\n || (item.xAxis != null || item.yAxis != null)) {\r\n var valueAxis = void 0;\r\n var value = void 0;\r\n if (item.yAxis != null || item.xAxis != null) {\r\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\r\n value = retrieve(item.yAxis, item.xAxis);\r\n }\r\n else {\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n valueAxis = axisInfo.valueAxis;\r\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\r\n value = numCalculate(data, valueDataDim, mlType);\r\n }\r\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\r\n var baseIndex = 1 - valueIndex;\r\n var mlFrom = clone(item);\r\n var mlTo = {\r\n coord: []\r\n };\r\n mlFrom.type = null;\r\n mlFrom.coord = [];\r\n mlFrom.coord[baseIndex] = -Infinity;\r\n mlTo.coord[baseIndex] = Infinity;\r\n var precision = mlModel.get('precision');\r\n if (precision >= 0 && typeof value === 'number') {\r\n value = +value.toFixed(Math.min(precision, 20));\r\n }\r\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\r\n itemArray = [mlFrom, mlTo, {\r\n type: mlType,\r\n valueIndex: item.valueIndex,\r\n value: value\r\n }];\r\n }\r\n else {\r\n if (__DEV__) {\r\n logError('Invalid markLine data.');\r\n }\r\n itemArray = [];\r\n }\r\n }\r\n else {\r\n itemArray = item;\r\n }\r\n var normalizedItem = [\r\n dataTransform(seriesModel, itemArray[0]),\r\n dataTransform(seriesModel, itemArray[1]),\r\n extend({}, itemArray[2])\r\n ];\r\n normalizedItem[2].type = normalizedItem[2].type || null;\r\n merge(normalizedItem[2], normalizedItem[0]);\r\n merge(normalizedItem[2], normalizedItem[1]);\r\n return normalizedItem;\r\n };\r\n function isInifinity(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n var dimName = coordSys.dimensions[dimIndex];\r\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex])\r\n && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\r\n }\r\n function markLineFilter(coordSys, item) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var fromCoord = item[0].coord;\r\n var toCoord = item[1].coord;\r\n if (fromCoord && toCoord\r\n && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys)\r\n || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, item[0])\r\n && dataFilter$1(coordSys, item[1]);\r\n }\r\n function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\r\n }\r\n else {\r\n var dims = coordSys.dimensions;\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var dims = coordSys.dimensions;\r\n if (isInifinity(data.get(dims[0], idx))) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n else if (isInifinity(data.get(dims[1], idx))) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n data.setItemLayout(idx, point);\r\n }\r\n var MarkLineView = (function (_super) {\r\n __extends(MarkLineView, _super);\r\n function MarkLineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineView.type;\r\n return _this;\r\n }\r\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\r\n if (mlModel) {\r\n var mlData_1 = mlModel.getData();\r\n var fromData_1 = inner$k(mlModel).from;\r\n var toData_1 = inner$k(mlModel).to;\r\n fromData_1.each(function (idx) {\r\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\r\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\r\n });\r\n mlData_1.each(function (idx) {\r\n mlData_1.setItemLayout(idx, [\r\n fromData_1.getItemLayout(idx),\r\n toData_1.getItemLayout(idx)\r\n ]);\r\n });\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var lineDrawMap = this.markerGroupMap;\r\n var lineDraw = lineDrawMap.get(seriesId)\r\n || lineDrawMap.set(seriesId, new LineDraw());\r\n this.group.add(lineDraw.group);\r\n var mlData = createList$2(coordSys, seriesModel, mlModel);\r\n var fromData = mlData.from;\r\n var toData = mlData.to;\r\n var lineData = mlData.line;\r\n inner$k(mlModel).from = fromData;\r\n inner$k(mlModel).to = toData;\r\n mlModel.setData(lineData);\r\n var symbolType = mlModel.get('symbol');\r\n var symbolSize = mlModel.get('symbolSize');\r\n if (!isArray(symbolType)) {\r\n symbolType = [symbolType, symbolType];\r\n }\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [symbolSize, symbolSize];\r\n }\r\n mlData.from.each(function (idx) {\r\n updateDataVisualAndLayout(fromData, idx, true);\r\n updateDataVisualAndLayout(toData, idx, false);\r\n });\r\n lineData.each(function (idx) {\r\n var lineStyle = lineData.getItemModel(idx)\r\n .getModel('lineStyle').getLineStyle();\r\n lineData.setItemLayout(idx, [\r\n fromData.getItemLayout(idx),\r\n toData.getItemLayout(idx)\r\n ]);\r\n if (lineStyle.stroke == null) {\r\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\r\n }\r\n lineData.setItemVisual(idx, {\r\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\r\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\r\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\r\n toSymbol: toData.getItemVisual(idx, 'symbol'),\r\n style: lineStyle\r\n });\r\n });\r\n lineDraw.updateData(lineData);\r\n mlData.line.eachItemGraphicEl(function (el, idx) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mlModel;\r\n });\r\n });\r\n function updateDataVisualAndLayout(data, idx, isFrom) {\r\n var itemModel = data.getItemModel(idx);\r\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (style.fill == null) {\r\n style.fill = getVisualFromData(seriesData, 'color');\r\n }\r\n data.setItemVisual(idx, {\r\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\r\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\r\n style: style\r\n });\r\n }\r\n this.markKeep(lineDraw);\r\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkLineView.type = 'markLine';\r\n return MarkLineView;\r\n }(MarkerView));\r\n function createList$2(coordSys, seriesModel, mlModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var fromData = new List(coordDimsInfos, mlModel);\r\n var toData = new List(coordDimsInfos, mlModel);\r\n var lineData = new List([], mlModel);\r\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markLineFilter, coordSys));\r\n }\r\n var dimValueGetter$1 = coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n };\r\n fromData.initData(map(optData, function (item) {\r\n return item[0];\r\n }), null, dimValueGetter$1);\r\n toData.initData(map(optData, function (item) {\r\n return item[1];\r\n }), null, dimValueGetter$1);\r\n lineData.initData(map(optData, function (item) {\r\n return item[2];\r\n }));\r\n lineData.hasItemOption = true;\r\n return {\r\n from: fromData,\r\n to: toData,\r\n line: lineData\r\n };\r\n }\r\n ComponentView.registerClass(MarkLineView);\n\n registerPreprocessor(function (opt) {\r\n opt.markLine = opt.markLine || {};\r\n });\n\n var MarkAreaModel = (function (_super) {\r\n __extends(MarkAreaModel, _super);\r\n function MarkAreaModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaModel.type;\r\n return _this;\r\n }\r\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkAreaModel.type = 'markArea';\r\n MarkAreaModel.defaultOption = {\r\n zlevel: 0,\r\n z: 1,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n animation: false,\r\n label: {\r\n show: true,\r\n position: 'top'\r\n },\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n position: 'top'\r\n }\r\n }\r\n };\r\n return MarkAreaModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkAreaModel);\n\n var inner$l = makeInner();\r\n var markAreaTransform = function (seriesModel, coordSys, maModel, item) {\r\n var lt = dataTransform(seriesModel, item[0]);\r\n var rb = dataTransform(seriesModel, item[1]);\r\n var ltCoord = lt.coord;\r\n var rbCoord = rb.coord;\r\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\r\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\r\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\r\n rbCoord[1] = retrieve(rbCoord[1], Infinity);\r\n var result = mergeAll([{}, lt, rb]);\r\n result.coord = [\r\n lt.coord, rb.coord\r\n ];\r\n result.x0 = lt.x;\r\n result.y0 = lt.y;\r\n result.x1 = rb.x;\r\n result.y1 = rb.y;\r\n return result;\r\n };\r\n function isInifinity$1(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n return isInifinity$1(fromCoord[otherDimIndex]) && isInifinity$1(toCoord[otherDimIndex]);\r\n }\r\n function markAreaFilter(coordSys, item) {\r\n var fromCoord = item.coord[0];\r\n var toCoord = item.coord[1];\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n if (fromCoord && toCoord\r\n && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord)\r\n || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, {\r\n coord: fromCoord,\r\n x: item.x0,\r\n y: item.y0\r\n })\r\n || dataFilter$1(coordSys, {\r\n coord: toCoord,\r\n x: item.x1,\r\n y: item.y1\r\n });\r\n }\r\n function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get(dims[0]), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get(dims[1]), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\r\n }\r\n else {\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n var pt = [x, y];\r\n coordSys.clampData && coordSys.clampData(pt, pt);\r\n point = coordSys.dataToPoint(pt, true);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n if (isInifinity$1(x)) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\r\n }\r\n else if (isInifinity$1(y)) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n return point;\r\n }\r\n var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\r\n var MarkAreaView = (function (_super) {\r\n __extends(MarkAreaView, _super);\r\n function MarkAreaView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaView.type;\r\n return _this;\r\n }\r\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\r\n if (maModel) {\r\n var areaData_1 = maModel.getData();\r\n areaData_1.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\r\n });\r\n areaData_1.setItemLayout(idx, points);\r\n var el = areaData_1.getItemGraphicEl(idx);\r\n el.setShape('points', points);\r\n });\r\n }\r\n }, this);\r\n };\r\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var areaGroupMap = this.markerGroupMap;\r\n var polygonGroup = areaGroupMap.get(seriesId)\r\n || areaGroupMap.set(seriesId, { group: new Group() });\r\n this.group.add(polygonGroup.group);\r\n this.markKeep(polygonGroup);\r\n var areaData = createList$3(coordSys, seriesModel, maModel);\r\n maModel.setData(areaData);\r\n areaData.each(function (idx) {\r\n areaData.setItemLayout(idx, map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\r\n }));\r\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\r\n var color$1 = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color$1;\r\n if (typeof style.fill === 'string') {\r\n style.fill = modifyAlpha(style.fill, 0.4);\r\n }\r\n }\r\n if (!style.stroke) {\r\n style.stroke = color$1;\r\n }\r\n areaData.setItemVisual(idx, 'style', style);\r\n });\r\n areaData.diff(inner$l(polygonGroup).data)\r\n .add(function (idx) {\r\n var polygon = new Polygon({\r\n shape: {\r\n points: areaData.getItemLayout(idx)\r\n }\r\n });\r\n areaData.setItemGraphicEl(idx, polygon);\r\n polygonGroup.group.add(polygon);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var polygon = inner$l(polygonGroup).data.getItemGraphicEl(oldIdx);\r\n updateProps(polygon, {\r\n shape: {\r\n points: areaData.getItemLayout(newIdx)\r\n }\r\n }, maModel, newIdx);\r\n polygonGroup.group.add(polygon);\r\n areaData.setItemGraphicEl(newIdx, polygon);\r\n })\r\n .remove(function (idx) {\r\n var polygon = inner$l(polygonGroup).data.getItemGraphicEl(idx);\r\n polygonGroup.group.remove(polygon);\r\n })\r\n .execute();\r\n areaData.eachItemGraphicEl(function (polygon, idx) {\r\n var itemModel = areaData.getItemModel(idx);\r\n var style = areaData.getItemVisual(idx, 'style');\r\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\r\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\r\n labelFetcher: maModel,\r\n labelDataIndex: idx,\r\n defaultText: areaData.getName(idx) || '',\r\n inheritColor: typeof style.fill === 'string'\r\n ? modifyAlpha(style.fill, 1) : '#000'\r\n });\r\n setStatesStylesFromModel(polygon, itemModel);\r\n enableHoverEmphasis(polygon);\r\n getECData(polygon).dataModel = maModel;\r\n });\r\n inner$l(polygonGroup).data = areaData;\r\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkAreaView.type = 'markArea';\r\n return MarkAreaView;\r\n }(MarkerView));\r\n function createList$3(coordSys, seriesModel, maModel) {\r\n var coordDimsInfos;\r\n var areaData;\r\n var dims = ['x0', 'y0', 'x1', 'y1'];\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var data = seriesModel.getData();\r\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\r\n return defaults({\r\n name: coordDim\r\n }, info);\r\n });\r\n areaData = new List(map(dims, function (dim, idx) {\r\n return {\r\n name: dim,\r\n type: coordDimsInfos[idx % 2].type\r\n };\r\n }), maModel);\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n areaData = new List(coordDimsInfos, maModel);\r\n }\r\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markAreaFilter, coordSys));\r\n }\r\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\r\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\r\n } : function (item) {\r\n return item.value;\r\n };\r\n areaData.initData(optData, null, dimValueGetter);\r\n areaData.hasItemOption = true;\r\n return areaData;\r\n }\r\n ComponentView.registerClass(MarkAreaView);\n\n registerPreprocessor(function (opt) {\r\n opt.markArea = opt.markArea || {};\r\n });\n\n var getDefaultSelectorOptions = function (ecModel, type) {\r\n if (type === 'all') {\r\n return {\r\n type: 'all',\r\n title: ecModel.getLocale(['legend', 'selector', 'all'])\r\n };\r\n }\r\n else if (type === 'inverse') {\r\n return {\r\n type: 'inverse',\r\n title: ecModel.getLocale(['legend', 'selector', 'inverse'])\r\n };\r\n }\r\n };\r\n var LegendModel = (function (_super) {\r\n __extends(LegendModel, _super);\r\n function LegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendModel.type;\r\n _this.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n return _this;\r\n }\r\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n option.selected = option.selected || {};\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype._updateSelector = function (option) {\r\n var selector = option.selector;\r\n var ecModel = this.ecModel;\r\n if (selector === true) {\r\n selector = option.selector = ['all', 'inverse'];\r\n }\r\n if (isArray(selector)) {\r\n each(selector, function (item, index) {\r\n isString(item) && (item = { type: item });\r\n selector[index] = merge(item, getDefaultSelectorOptions(ecModel, item.type));\r\n });\r\n }\r\n };\r\n LegendModel.prototype.optionUpdated = function () {\r\n this._updateData(this.ecModel);\r\n var legendData = this._data;\r\n if (legendData[0] && this.get('selectedMode') === 'single') {\r\n var hasSelected = false;\r\n for (var i = 0; i < legendData.length; i++) {\r\n var name_1 = legendData[i].get('name');\r\n if (this.isSelected(name_1)) {\r\n this.select(name_1);\r\n hasSelected = true;\r\n break;\r\n }\r\n }\r\n !hasSelected && this.select(legendData[0].get('name'));\r\n }\r\n };\r\n LegendModel.prototype._updateData = function (ecModel) {\r\n var potentialData = [];\r\n var availableNames = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var seriesName = seriesModel.name;\r\n availableNames.push(seriesName);\r\n var isPotential;\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n var names = provider.getAllNames();\r\n if (!ecModel.isSeriesFiltered(seriesModel)) {\r\n availableNames = availableNames.concat(names);\r\n }\r\n if (names.length) {\r\n potentialData = potentialData.concat(names);\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n if (isPotential && isNameSpecified(seriesModel)) {\r\n potentialData.push(seriesModel.name);\r\n }\r\n });\r\n this._availableNames = availableNames;\r\n var rawData = this.get('data') || potentialData;\r\n var legendData = map(rawData, function (dataItem) {\r\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\r\n dataItem = {\r\n name: dataItem\r\n };\r\n }\r\n return new Model(dataItem, this, this.ecModel);\r\n }, this);\r\n this._data = legendData;\r\n };\r\n LegendModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n LegendModel.prototype.select = function (name) {\r\n var selected = this.option.selected;\r\n var selectedMode = this.get('selectedMode');\r\n if (selectedMode === 'single') {\r\n var data = this._data;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name')] = false;\r\n });\r\n }\r\n selected[name] = true;\r\n };\r\n LegendModel.prototype.unSelect = function (name) {\r\n if (this.get('selectedMode') !== 'single') {\r\n this.option.selected[name] = false;\r\n }\r\n };\r\n LegendModel.prototype.toggleSelected = function (name) {\r\n var selected = this.option.selected;\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n this[selected[name] ? 'unSelect' : 'select'](name);\r\n };\r\n LegendModel.prototype.allSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name', true)] = true;\r\n });\r\n };\r\n LegendModel.prototype.inverseSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n var name = dataItem.get('name', true);\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n selected[name] = !selected[name];\r\n });\r\n };\r\n LegendModel.prototype.isSelected = function (name) {\r\n var selected = this.option.selected;\r\n return !(selected.hasOwnProperty(name) && !selected[name])\r\n && indexOf(this._availableNames, name) >= 0;\r\n };\r\n LegendModel.prototype.getOrient = function () {\r\n return this.get('orient') === 'vertical'\r\n ? { index: 1, name: 'vertical' }\r\n : { index: 0, name: 'horizontal' };\r\n };\r\n LegendModel.type = 'legend.plain';\r\n LegendModel.dependencies = ['series'];\r\n LegendModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n orient: 'horizontal',\r\n left: 'center',\r\n top: 0,\r\n align: 'auto',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n itemWidth: 25,\r\n itemHeight: 14,\r\n inactiveColor: '#ccc',\r\n inactiveBorderColor: '#ccc',\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n textStyle: {\r\n color: '#333'\r\n },\r\n selectedMode: true,\r\n selector: false,\r\n selectorLabel: {\r\n show: true,\r\n borderRadius: 10,\r\n padding: [3, 5, 3, 5],\r\n fontSize: 12,\r\n fontFamily: ' sans-serif',\r\n color: '#666',\r\n borderWidth: 1,\r\n borderColor: '#666'\r\n },\r\n emphasis: {\r\n selectorLabel: {\r\n show: true,\r\n color: '#eee',\r\n backgroundColor: '#666'\r\n }\r\n },\r\n selectorPosition: 'auto',\r\n selectorItemGap: 7,\r\n selectorButtonGap: 10,\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return LegendModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(LegendModel);\n\n function legendSelectActionHandler(methodName, payload, ecModel) {\r\n var selectedMap = {};\r\n var isToggleSelect = methodName === 'toggleSelected';\r\n var isSelected;\r\n ecModel.eachComponent('legend', function (legendModel) {\r\n if (isToggleSelect && isSelected != null) {\r\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\r\n }\r\n else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\r\n legendModel[methodName]();\r\n }\r\n else {\r\n legendModel[methodName](payload.name);\r\n isSelected = legendModel.isSelected(payload.name);\r\n }\r\n var legendData = legendModel.getData();\r\n each(legendData, function (model) {\r\n var name = model.get('name');\r\n if (name === '\\n' || name === '') {\r\n return;\r\n }\r\n var isItemSelected = legendModel.isSelected(name);\r\n if (selectedMap.hasOwnProperty(name)) {\r\n selectedMap[name] = selectedMap[name] && isItemSelected;\r\n }\r\n else {\r\n selectedMap[name] = isItemSelected;\r\n }\r\n });\r\n });\r\n return (methodName === 'allSelect' || methodName === 'inverseSelect')\r\n ? {\r\n selected: selectedMap\r\n }\r\n : {\r\n name: payload.name,\r\n selected: selectedMap\r\n };\r\n }\r\n registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\r\n registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\r\n registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\r\n registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\r\n registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n\n var curry$1 = curry;\r\n var each$f = each;\r\n var Group$2 = Group;\r\n var LegendView = (function (_super) {\r\n __extends(LegendView, _super);\r\n function LegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendView.type;\r\n _this.newlineDisabled = false;\r\n return _this;\r\n }\r\n LegendView.prototype.init = function () {\r\n this.group.add(this._contentGroup = new Group$2());\r\n this.group.add(this._selectorGroup = new Group$2());\r\n this._isFirstRender = true;\r\n };\r\n LegendView.prototype.getContentGroup = function () {\r\n return this._contentGroup;\r\n };\r\n LegendView.prototype.getSelectorGroup = function () {\r\n return this._selectorGroup;\r\n };\r\n LegendView.prototype.render = function (legendModel, ecModel, api) {\r\n var isFirstRender = this._isFirstRender;\r\n this._isFirstRender = false;\r\n this.resetInner();\r\n if (!legendModel.get('show', true)) {\r\n return;\r\n }\r\n var itemAlign = legendModel.get('align');\r\n var orient = legendModel.get('orient');\r\n if (!itemAlign || itemAlign === 'auto') {\r\n itemAlign = (legendModel.get('left') === 'right'\r\n && orient === 'vertical') ? 'right' : 'left';\r\n }\r\n var selector = legendModel.get('selector', true);\r\n var selectorPosition = legendModel.get('selectorPosition', true);\r\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\r\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\r\n }\r\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var positionInfo = legendModel.getBoxLayoutParams();\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var padding = legendModel.get('padding');\r\n var maxSize = getLayoutRect(positionInfo, viewportSize, padding);\r\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\r\n var layoutRect = getLayoutRect(defaults({\r\n width: mainRect.width,\r\n height: mainRect.height\r\n }, positionInfo), viewportSize, padding);\r\n this.group.x = layoutRect.x - mainRect.x;\r\n this.group.y = layoutRect.y - mainRect.y;\r\n this.group.markRedraw();\r\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\r\n };\r\n LegendView.prototype.resetInner = function () {\r\n this.getContentGroup().removeAll();\r\n this._backgroundEl && this.group.remove(this._backgroundEl);\r\n this.getSelectorGroup().removeAll();\r\n };\r\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var legendDrawnMap = createHashMap();\r\n var selectMode = legendModel.get('selectedMode');\r\n var excludeSeriesId = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\r\n });\r\n each$f(legendModel.getData(), function (itemModel, dataIndex) {\r\n var name = itemModel.get('name');\r\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\r\n var g = new Group$2();\r\n g.newline = true;\r\n contentGroup.add(g);\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByName(name)[0];\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel) {\r\n var data = seriesModel.getData();\r\n var style = data.getVisual('style');\r\n var color = style[data.getVisual('drawType')] || style.fill;\r\n var borderColor = style.stroke;\r\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\r\n var symbolType = data.getVisual('symbol');\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, name, null, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n else {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n if (!provider.containName(name)) {\r\n return;\r\n }\r\n var idx = provider.indexOfName(name);\r\n var style = provider.getItemVisual(idx, 'style');\r\n var borderColor = style.stroke;\r\n var color = style.fill;\r\n var colorArr = parse(style.fill);\r\n if (colorArr && colorArr[3] === 0) {\r\n colorArr[3] = 0.2;\r\n color = stringify(colorArr, 'rgba');\r\n }\r\n var legendSymbolType = 'roundRect';\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, null, name, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, null, name, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, null, name, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n }, this);\r\n }\r\n if (__DEV__) {\r\n if (!legendDrawnMap.get(name)) {\r\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\r\n }\r\n }\r\n }, this);\r\n if (selector) {\r\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\r\n }\r\n };\r\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n each$f(selector, function createSelectorButton(selectorItem) {\r\n var type = selectorItem.type;\r\n var labelText = new ZRText({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n },\r\n onclick: function () {\r\n api.dispatchAction({\r\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\r\n });\r\n }\r\n });\r\n selectorGroup.add(labelText);\r\n var labelModel = legendModel.getModel('selectorLabel');\r\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\r\n setLabelStyle(labelText, { normal: labelModel, emphasis: emphasisLabelModel }, {\r\n defaultText: selectorItem.title\r\n });\r\n enableHoverEmphasis(labelText);\r\n });\r\n };\r\n LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode) {\r\n var itemWidth = legendModel.get('itemWidth');\r\n var itemHeight = legendModel.get('itemHeight');\r\n var inactiveColor = legendModel.get('inactiveColor');\r\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\r\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\r\n var legendModelItemStyle = legendModel.getModel('itemStyle');\r\n var isSelected = legendModel.isSelected(name);\r\n var itemGroup = new Group$2();\r\n var textStyleModel = itemModel.getModel('textStyle');\r\n var itemIcon = itemModel.get('icon');\r\n var tooltipModel = itemModel.getModel('tooltip');\r\n var legendGlobalTooltipModel = tooltipModel.parentModel;\r\n legendSymbolType = itemIcon || legendSymbolType;\r\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n if (!itemIcon && symbolType\r\n && ((symbolType !== legendSymbolType) || symbolType === 'none')) {\r\n var size = itemHeight * 0.8;\r\n if (symbolType === 'none') {\r\n symbolType = 'circle';\r\n }\r\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n }\r\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\r\n var textAlign = itemAlign;\r\n var formatter = legendModel.get('formatter');\r\n var content = name;\r\n if (typeof formatter === 'string' && formatter) {\r\n content = formatter.replace('{name}', name != null ? name : '');\r\n }\r\n else if (typeof formatter === 'function') {\r\n content = formatter(name);\r\n }\r\n itemGroup.add(new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: content,\r\n x: textX,\r\n y: itemHeight / 2,\r\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\r\n align: textAlign,\r\n verticalAlign: 'middle'\r\n })\r\n }));\r\n var hitRect = new Rect({\r\n shape: itemGroup.getBoundingRect(),\r\n invisible: true\r\n });\r\n if (tooltipModel.get('show')) {\r\n var formatterParams = {\r\n componentType: 'legend',\r\n legendIndex: legendModel.componentIndex,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n hitRect.tooltip = extend({\r\n content: name,\r\n formatter: legendGlobalTooltipModel.get('formatter', true)\r\n || function (params) {\r\n return params.name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipModel.option);\r\n }\r\n itemGroup.add(hitRect);\r\n itemGroup.eachChild(function (child) {\r\n child.silent = true;\r\n });\r\n hitRect.silent = !selectMode;\r\n this.getContentGroup().add(itemGroup);\r\n enableHoverEmphasis(itemGroup);\r\n itemGroup.__legendDataIndex = dataIndex;\r\n return itemGroup;\r\n };\r\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var selectorGroup = this.getSelectorGroup();\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\r\n var contentRect = contentGroup.getBoundingRect();\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n selectorGroup.markRedraw();\r\n contentGroup.markRedraw();\r\n if (selector) {\r\n box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = orientIdx === 0 ? 'width' : 'height';\r\n var hw = orientIdx === 0 ? 'height' : 'width';\r\n var yx = orientIdx === 0 ? 'y' : 'x';\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\r\n }\r\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n return mainRect;\r\n }\r\n else {\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n return this.group.getBoundingRect();\r\n }\r\n };\r\n LegendView.prototype.remove = function () {\r\n this.getContentGroup().removeAll();\r\n this._isFirstRender = true;\r\n };\r\n LegendView.type = 'legend.plain';\r\n return LegendView;\r\n }(ComponentView));\r\n function setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected) {\r\n var itemStyle;\r\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\r\n itemStyle = legendModelItemStyle.getItemStyle();\r\n symbol.style.stroke = borderColor;\r\n if (!isSelected) {\r\n itemStyle.stroke = inactiveBorderColor;\r\n }\r\n }\r\n else {\r\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\r\n }\r\n symbol.setStyle(itemStyle);\r\n return symbol;\r\n }\r\n function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\r\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\r\n api.dispatchAction({\r\n type: 'legendToggleSelect',\r\n name: seriesName != null ? seriesName : dataName\r\n });\r\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\r\n }\r\n function isUseHoverLayer(api) {\r\n var list = api.getZr().storage.getDisplayList();\r\n var emphasisState;\r\n var i = 0;\r\n var len = list.length;\r\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\r\n i++;\r\n }\r\n return emphasisState && emphasisState.hoverLayer;\r\n }\r\n function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'highlight',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'downplay',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n ComponentView.registerClass(LegendView);\n\n function legendFilter (ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (legendModels && legendModels.length) {\r\n ecModel.filterSeries(function (series) {\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(series.name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\r\n ComponentModel.registerSubTypeDefaulter('legend', function () {\r\n return 'plain';\r\n });\n\n var ScrollableLegendModel = (function (_super) {\r\n __extends(ScrollableLegendModel, _super);\r\n function ScrollableLegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendModel.type;\r\n return _this;\r\n }\r\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\r\n this.option.scrollDataIndex = scrollDataIndex;\r\n };\r\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n mergeAndNormalizeLayoutParams$1(this, option, inputPositionParams);\r\n };\r\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n mergeAndNormalizeLayoutParams$1(this, this.option, option);\r\n };\r\n ScrollableLegendModel.type = 'legend.scroll';\r\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\r\n scrollDataIndex: 0,\r\n pageButtonItemGap: 5,\r\n pageButtonGap: null,\r\n pageButtonPosition: 'end',\r\n pageFormatter: '{current}/{total}',\r\n pageIcons: {\r\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\r\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\r\n },\r\n pageIconColor: '#2f4554',\r\n pageIconInactiveColor: '#aaa',\r\n pageIconSize: 15,\r\n pageTextStyle: {\r\n color: '#333'\r\n },\r\n animationDurationUpdate: 800\r\n });\r\n return ScrollableLegendModel;\r\n }(LegendModel));\r\n function mergeAndNormalizeLayoutParams$1(legendModel, target, raw) {\r\n var orient = legendModel.getOrient();\r\n var ignoreSize = [1, 1];\r\n ignoreSize[orient.index] = 0;\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: !!ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(ScrollableLegendModel);\n\n var Group$3 = Group;\r\n var WH$1 = ['width', 'height'];\r\n var XY$1 = ['x', 'y'];\r\n var ScrollableLegendView = (function (_super) {\r\n __extends(ScrollableLegendView, _super);\r\n function ScrollableLegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendView.type;\r\n _this.newlineDisabled = true;\r\n _this._currentIndex = 0;\r\n return _this;\r\n }\r\n ScrollableLegendView.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n this.group.add(this._containerGroup = new Group$3());\r\n this._containerGroup.add(this.getContentGroup());\r\n this.group.add(this._controllerGroup = new Group$3());\r\n };\r\n ScrollableLegendView.prototype.resetInner = function () {\r\n _super.prototype.resetInner.call(this);\r\n this._controllerGroup.removeAll();\r\n this._containerGroup.removeClipPath();\r\n this._containerGroup.__rectSize = null;\r\n };\r\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var self = this;\r\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var controllerGroup = this._controllerGroup;\r\n var pageIconSize = legendModel.get('pageIconSize', true);\r\n var pageIconSizeArr = isArray(pageIconSize)\r\n ? pageIconSize : [pageIconSize, pageIconSize];\r\n createPageButton('pagePrev', 0);\r\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\r\n controllerGroup.add(new ZRText({\r\n name: 'pageText',\r\n style: {\r\n text: 'xx/xx',\r\n fill: pageTextStyleModel.getTextColor(),\r\n font: pageTextStyleModel.getFont(),\r\n verticalAlign: 'middle',\r\n align: 'center'\r\n },\r\n silent: true\r\n }));\r\n createPageButton('pageNext', 1);\r\n function createPageButton(name, iconIdx) {\r\n var pageDataIndexName = (name + 'DataIndex');\r\n var icon = createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\r\n onclick: bind(self._pageGo, self, pageDataIndexName, legendModel, api)\r\n }, {\r\n x: -pageIconSizeArr[0] / 2,\r\n y: -pageIconSizeArr[1] / 2,\r\n width: pageIconSizeArr[0],\r\n height: pageIconSizeArr[1]\r\n });\r\n icon.name = name;\r\n controllerGroup.add(icon);\r\n }\r\n };\r\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH$1[orientIdx];\r\n var xy = XY$1[orientIdx];\r\n var hw = WH$1[1 - orientIdx];\r\n var yx = XY$1[1 - orientIdx];\r\n selector && box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var processMaxSize = clone(maxSize);\r\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\r\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\r\n if (selector) {\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n var offset = selectorRect[wh] + selectorButtonGap;\r\n selectorPos[orientIdx] -= offset;\r\n mainRect[xy] -= offset;\r\n }\r\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\r\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\r\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n selectorGroup.markRedraw();\r\n }\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\r\n var contentGroup = this.getContentGroup();\r\n var containerGroup = this._containerGroup;\r\n var controllerGroup = this._controllerGroup;\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\r\n box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\r\n var contentRect = contentGroup.getBoundingRect();\r\n var controllerRect = controllerGroup.getBoundingRect();\r\n var showController = this._showController = contentRect[wh] > maxSize[wh];\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n if (!isFirstRender) {\r\n contentPos[orientIdx] = contentGroup[yx];\r\n }\r\n var containerPos = [0, 0];\r\n var controllerPos = [-controllerRect.x, -controllerRect.y];\r\n var pageButtonGap = retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\r\n if (showController) {\r\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\r\n if (pageButtonPosition === 'end') {\r\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\r\n }\r\n else {\r\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\r\n }\r\n }\r\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\r\n contentGroup.setPosition(contentPos);\r\n containerGroup.setPosition(containerPos);\r\n controllerGroup.setPosition(controllerPos);\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\r\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\r\n containerGroup.__rectSize = maxSize[wh];\r\n if (showController) {\r\n var clipShape = { x: 0, y: 0 };\r\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\r\n clipShape[hw] = mainRect[hw];\r\n containerGroup.setClipPath(new Rect({ shape: clipShape }));\r\n containerGroup.__rectSize = clipShape[wh];\r\n }\r\n else {\r\n controllerGroup.eachChild(function (child) {\r\n child.attr({\r\n invisible: true,\r\n silent: true\r\n });\r\n });\r\n }\r\n var pageInfo = this._getPageInfo(legendModel);\r\n pageInfo.pageIndex != null && updateProps(contentGroup, { x: pageInfo.contentPosition[0], y: pageInfo.contentPosition[1] }, showController ? legendModel : null);\r\n this._updatePageInfoView(legendModel, pageInfo);\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\r\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\r\n scrollDataIndex != null && api.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: scrollDataIndex,\r\n legendId: legendModel.id\r\n });\r\n };\r\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\r\n var controllerGroup = this._controllerGroup;\r\n each(['pagePrev', 'pageNext'], function (name) {\r\n var key = (name + 'DataIndex');\r\n var canJump = pageInfo[key] != null;\r\n var icon = controllerGroup.childOfName(name);\r\n if (icon) {\r\n icon.setStyle('fill', canJump\r\n ? legendModel.get('pageIconColor', true)\r\n : legendModel.get('pageIconInactiveColor', true));\r\n icon.cursor = canJump ? 'pointer' : 'default';\r\n }\r\n });\r\n var pageText = controllerGroup.childOfName('pageText');\r\n var pageFormatter = legendModel.get('pageFormatter');\r\n var pageIndex = pageInfo.pageIndex;\r\n var current = pageIndex != null ? pageIndex + 1 : 0;\r\n var total = pageInfo.pageCount;\r\n pageText && pageFormatter && pageText.setStyle('text', isString(pageFormatter)\r\n ? pageFormatter.replace('{current}', current == null ? '' : current + '')\r\n .replace('{total}', total == null ? '' : total + '')\r\n : pageFormatter({ current: current, total: total }));\r\n };\r\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\r\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\r\n var contentGroup = this.getContentGroup();\r\n var containerRectSize = this._containerGroup.__rectSize;\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH$1[orientIdx];\r\n var xy = XY$1[orientIdx];\r\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\r\n var children = contentGroup.children();\r\n var targetItem = children[targetItemIndex];\r\n var itemCount = children.length;\r\n var pCount = !itemCount ? 0 : 1;\r\n var result = {\r\n contentPosition: [contentGroup.x, contentGroup.y],\r\n pageCount: pCount,\r\n pageIndex: pCount - 1,\r\n pagePrevDataIndex: null,\r\n pageNextDataIndex: null\r\n };\r\n if (!targetItem) {\r\n return result;\r\n }\r\n var targetItemInfo = getItemInfo(targetItem);\r\n result.contentPosition[orientIdx] = -targetItemInfo.s;\r\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize)\r\n || (currItemInfo && !intersect(currItemInfo, winStartItemInfo.s))) {\r\n if (winEndItemInfo.i > winStartItemInfo.i) {\r\n winStartItemInfo = winEndItemInfo;\r\n }\r\n else {\r\n winStartItemInfo = currItemInfo;\r\n }\r\n if (winStartItemInfo) {\r\n if (result.pageNextDataIndex == null) {\r\n result.pageNextDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n }\r\n }\r\n winEndItemInfo = currItemInfo;\r\n }\r\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s))\r\n && winStartItemInfo.i < winEndItemInfo.i) {\r\n winEndItemInfo = winStartItemInfo;\r\n if (result.pagePrevDataIndex == null) {\r\n result.pagePrevDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n ++result.pageIndex;\r\n }\r\n winStartItemInfo = currItemInfo;\r\n }\r\n return result;\r\n function getItemInfo(el) {\r\n if (el) {\r\n var itemRect = el.getBoundingRect();\r\n var start = itemRect[xy] + el[xy];\r\n return {\r\n s: start,\r\n e: start + itemRect[wh],\r\n i: el.__legendDataIndex\r\n };\r\n }\r\n }\r\n function intersect(itemInfo, winStart) {\r\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\r\n }\r\n };\r\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\r\n if (!this._showController) {\r\n return 0;\r\n }\r\n var index;\r\n var contentGroup = this.getContentGroup();\r\n var defaultIndex;\r\n contentGroup.eachChild(function (child, idx) {\r\n var legendDataIdx = child.__legendDataIndex;\r\n if (defaultIndex == null && legendDataIdx != null) {\r\n defaultIndex = idx;\r\n }\r\n if (legendDataIdx === targetDataIndex) {\r\n index = idx;\r\n }\r\n });\r\n return index != null ? index : defaultIndex;\r\n };\r\n ScrollableLegendView.type = 'legend.scroll';\r\n return ScrollableLegendView;\r\n }(LegendView));\r\n ComponentView.registerClass(ScrollableLegendView);\n\n registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\r\n var scrollDataIndex = payload.scrollDataIndex;\r\n scrollDataIndex != null && ecModel.eachComponent({ mainType: 'legend', subType: 'scroll', query: payload }, function (legendModel) {\r\n legendModel.setScrollDataIndex(scrollDataIndex);\r\n });\r\n });\n\n var SliderZoomModel = (function (_super) {\r\n __extends(SliderZoomModel, _super);\r\n function SliderZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomModel.type;\r\n return _this;\r\n }\r\n SliderZoomModel.type = 'dataZoom.slider';\r\n SliderZoomModel.layoutMode = 'box';\r\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n show: true,\r\n right: 'ph',\r\n top: 'ph',\r\n width: 'ph',\r\n height: 'ph',\r\n left: null,\r\n bottom: null,\r\n borderColor: '#d2dbee',\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(47,69,84,0)',\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#d2dbee',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#d2dbee',\r\n opacity: 0.2\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#8fb0f7',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#8fb0f7',\r\n opacity: 0.2\r\n }\r\n },\r\n fillerColor: 'rgba(135,175,274,0.2)',\r\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\r\n handleSize: '100%',\r\n handleStyle: {\r\n color: '#fff',\r\n borderColor: '#ACB8D1'\r\n },\r\n moveHandleSize: 7,\r\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\r\n moveHandleStyle: {\r\n color: '#D2DBEE',\r\n opacity: 0.7\r\n },\r\n showDetail: true,\r\n showDataShadow: 'auto',\r\n realtime: true,\r\n zoomLock: false,\r\n textStyle: {\r\n color: '#6E7079'\r\n },\r\n brushSelect: true,\r\n brushStyle: {\r\n color: 'rgba(135,175,274,0.15)'\r\n },\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#8FB0F7'\r\n },\r\n moveHandleStyle: {\r\n color: '#8FB0F7'\r\n }\r\n }\r\n });\r\n return SliderZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SliderZoomModel);\n\n var Rect$2 = Rect;\r\n var DEFAULT_LOCATION_EDGE_GAP = 7;\r\n var DEFAULT_FRAME_BORDER_WIDTH = 1;\r\n var DEFAULT_FILLER_SIZE = 30;\r\n var DEFAULT_MOVE_HANDLE_SIZE = 7;\r\n var HORIZONTAL = 'horizontal';\r\n var VERTICAL = 'vertical';\r\n var LABEL_GAP = 5;\r\n var SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\r\n var REALTIME_ANIMATION_CONFIG = {\r\n easing: 'cubicOut',\r\n duration: 100\r\n };\r\n var SliderZoomView = (function (_super) {\r\n __extends(SliderZoomView, _super);\r\n function SliderZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomView.type;\r\n _this._displayables = {};\r\n return _this;\r\n }\r\n SliderZoomView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n this._onBrush = bind(this._onBrush, this);\r\n this._onBrushEnd = bind(this._onBrushEnd, this);\r\n };\r\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n _super.prototype.render.apply(this, arguments);\r\n createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\r\n this._orient = dataZoomModel.getOrient();\r\n if (dataZoomModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n this._updateView();\r\n };\r\n SliderZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n SliderZoomView.prototype._clear = function () {\r\n clear(this, '_dispatchZoomAction');\r\n var zr = this.api.getZr();\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n };\r\n SliderZoomView.prototype._buildView = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n this._brushing = false;\r\n this._resetLocation();\r\n this._resetInterval();\r\n var barGroup = this._displayables.sliderGroup = new Group();\r\n this._renderBackground();\r\n this._renderHandle();\r\n this._renderDataShadow();\r\n thisGroup.add(barGroup);\r\n this._positionGroup();\r\n };\r\n SliderZoomView.prototype._resetLocation = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var showMoveHandle = dataZoomModel.get('brushSelect');\r\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\r\n var coordRect = this._findCoordRect();\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var positionInfo = this._orient === HORIZONTAL\r\n ? {\r\n right: ecSize.width - coordRect.x - coordRect.width,\r\n top: (ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize),\r\n width: coordRect.width,\r\n height: DEFAULT_FILLER_SIZE\r\n }\r\n : {\r\n right: DEFAULT_LOCATION_EDGE_GAP,\r\n top: coordRect.y,\r\n width: DEFAULT_FILLER_SIZE,\r\n height: coordRect.height\r\n };\r\n var layoutParams = getLayoutParams(dataZoomModel.option);\r\n each(['right', 'top', 'width', 'height'], function (name) {\r\n if (layoutParams[name] === 'ph') {\r\n layoutParams[name] = positionInfo[name];\r\n }\r\n });\r\n var layoutRect = getLayoutRect(layoutParams, ecSize);\r\n this._location = { x: layoutRect.x, y: layoutRect.y };\r\n this._size = [layoutRect.width, layoutRect.height];\r\n this._orient === VERTICAL && this._size.reverse();\r\n };\r\n SliderZoomView.prototype._positionGroup = function () {\r\n var thisGroup = this.group;\r\n var location = this._location;\r\n var orient = this._orient;\r\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\r\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\r\n sliderGroup.attr((orient === HORIZONTAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: 1 }\r\n : (orient === HORIZONTAL && inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: -1 }\r\n : (orient === VERTICAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 }\r\n : { scaleY: otherAxisInverse ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 });\r\n var rect = thisGroup.getBoundingRect([sliderGroup]);\r\n thisGroup.x = location.x - rect.x;\r\n thisGroup.y = location.y - rect.y;\r\n thisGroup.markRedraw();\r\n };\r\n SliderZoomView.prototype._getViewExtent = function () {\r\n return [0, this._size[0]];\r\n };\r\n SliderZoomView.prototype._renderBackground = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var size = this._size;\r\n var barGroup = this._displayables.sliderGroup;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n barGroup.add(new Rect$2({\r\n silent: true,\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: dataZoomModel.get('backgroundColor')\r\n },\r\n z2: -40\r\n }));\r\n var clickPanel = new Rect$2({\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: 'transparent'\r\n },\r\n z2: 0,\r\n onclick: bind(this._onClickPanel, this)\r\n });\r\n var zr = this.api.getZr();\r\n if (brushSelect) {\r\n clickPanel.on('mousedown', this._onBrushStart, this);\r\n clickPanel.cursor = 'crosshair';\r\n zr.on('mousemove', this._onBrush);\r\n zr.on('mouseup', this._onBrushEnd);\r\n }\r\n else {\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n }\r\n barGroup.add(clickPanel);\r\n };\r\n SliderZoomView.prototype._renderDataShadow = function () {\r\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\r\n this._displayables.dataShadowSegs = [];\r\n if (!info) {\r\n return;\r\n }\r\n var size = this._size;\r\n var seriesModel = info.series;\r\n var data = seriesModel.getRawData();\r\n var otherDim = seriesModel.getShadowDim\r\n ? seriesModel.getShadowDim()\r\n : info.otherDim;\r\n if (otherDim == null) {\r\n return;\r\n }\r\n var otherDataExtent = data.getDataExtent(otherDim);\r\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\r\n otherDataExtent = [\r\n otherDataExtent[0] - otherOffset,\r\n otherDataExtent[1] + otherOffset\r\n ];\r\n var otherShadowExtent = [0, size[1]];\r\n var thisShadowExtent = [0, size[0]];\r\n var areaPoints = [[size[0], 0], [0, 0]];\r\n var linePoints = [];\r\n var step = thisShadowExtent[1] / (data.count() - 1);\r\n var thisCoord = 0;\r\n var stride = Math.round(data.count() / size[0]);\r\n var lastIsEmpty;\r\n data.each([otherDim], function (value, index) {\r\n if (stride > 0 && (index % stride)) {\r\n thisCoord += step;\r\n return;\r\n }\r\n var isEmpty = value == null || isNaN(value) || value === '';\r\n var otherCoord = isEmpty\r\n ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\r\n if (isEmpty && !lastIsEmpty && index) {\r\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\r\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\r\n }\r\n else if (!isEmpty && lastIsEmpty) {\r\n areaPoints.push([thisCoord, 0]);\r\n linePoints.push([thisCoord, 0]);\r\n }\r\n areaPoints.push([thisCoord, otherCoord]);\r\n linePoints.push([thisCoord, otherCoord]);\r\n thisCoord += step;\r\n lastIsEmpty = isEmpty;\r\n });\r\n var dataZoomModel = this.dataZoomModel;\r\n function createDataShadowGroup(isSelectedArea) {\r\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\r\n var group = new Group();\r\n var polygon = new Polygon({\r\n shape: { points: areaPoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('areaStyle').getAreaStyle(),\r\n silent: true,\r\n z2: -20\r\n });\r\n var polyline = new Polyline({\r\n shape: { points: linePoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('lineStyle').getLineStyle(),\r\n silent: true,\r\n z2: -19\r\n });\r\n group.add(polygon);\r\n group.add(polyline);\r\n return group;\r\n }\r\n for (var i = 0; i < 3; i++) {\r\n var group = createDataShadowGroup(i === 1);\r\n this._displayables.sliderGroup.add(group);\r\n this._displayables.dataShadowSegs.push(group);\r\n }\r\n };\r\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var showDataShadow = dataZoomModel.get('showDataShadow');\r\n if (showDataShadow === false) {\r\n return;\r\n }\r\n var result;\r\n var ecModel = this.ecModel;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var seriesModels = dataZoomModel\r\n .getAxisProxy(axisDim, axisIndex)\r\n .getTargetSeriesModels();\r\n each(seriesModels, function (seriesModel) {\r\n if (result) {\r\n return;\r\n }\r\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\r\n return;\r\n }\r\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\r\n var otherDim = getOtherDim(axisDim);\r\n var otherAxisInverse;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (otherDim != null && coordSys.getOtherAxis) {\r\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\r\n }\r\n otherDim = seriesModel.getData().mapDimension(otherDim);\r\n result = {\r\n thisAxis: thisAxis,\r\n series: seriesModel,\r\n thisDim: axisDim,\r\n otherDim: otherDim,\r\n otherAxisInverse: otherAxisInverse\r\n };\r\n }, this);\r\n }, this);\r\n return result;\r\n };\r\n SliderZoomView.prototype._renderHandle = function () {\r\n var thisGroup = this.group;\r\n var displayables = this._displayables;\r\n var handles = displayables.handles = [null, null];\r\n var handleLabels = displayables.handleLabels = [null, null];\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var size = this._size;\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n var filler = displayables.filler = new Rect$2({\r\n silent: brushSelect,\r\n style: {\r\n fill: dataZoomModel.get('fillerColor')\r\n },\r\n textConfig: {\r\n position: 'inside'\r\n }\r\n });\r\n sliderGroup.add(filler);\r\n sliderGroup.add(new Rect$2({\r\n silent: true,\r\n subPixelOptimize: true,\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: size[0],\r\n height: size[1],\r\n r: borderRadius\r\n },\r\n style: {\r\n stroke: dataZoomModel.get('dataBackgroundColor')\r\n || dataZoomModel.get('borderColor'),\r\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\r\n fill: 'rgba(0,0,0,0)'\r\n }\r\n }));\r\n each([0, 1], function (handleIndex) {\r\n var iconStr = dataZoomModel.get('handleIcon');\r\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\r\n iconStr = 'path://' + iconStr;\r\n if (__DEV__) {\r\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\r\n }\r\n }\r\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\r\n path.attr({\r\n cursor: getCursor(this._orient),\r\n draggable: true,\r\n drift: bind(this._onDragMove, this, handleIndex),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false),\r\n z2: 5\r\n });\r\n var bRect = path.getBoundingRect();\r\n var handleSize = dataZoomModel.get('handleSize');\r\n this._handleHeight = parsePercent$2(handleSize, this._size[1]);\r\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\r\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\r\n path.style.strokeNoScale = true;\r\n path.rectHover = true;\r\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n enableHoverEmphasis(path);\r\n var handleColor = dataZoomModel.get('handleColor');\r\n if (handleColor != null) {\r\n path.style.fill = handleColor;\r\n }\r\n sliderGroup.add(handles[handleIndex] = path);\r\n var textStyleModel = dataZoomModel.getModel('textStyle');\r\n thisGroup.add(handleLabels[handleIndex] = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n verticalAlign: 'middle',\r\n align: 'center',\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n },\r\n z2: 10\r\n }));\r\n }, this);\r\n var actualMoveZone = filler;\r\n if (brushSelect) {\r\n var moveHandleHeight = parsePercent$2(dataZoomModel.get('moveHandleSize'), size[1]);\r\n var moveHandle_1 = displayables.moveHandle = new Rect({\r\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\r\n silent: true,\r\n shape: {\r\n r: [0, 0, 2, 2],\r\n y: size[1] - 0.5,\r\n height: moveHandleHeight\r\n }\r\n });\r\n var iconSize = moveHandleHeight * 0.8;\r\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\r\n moveHandleIcon.silent = true;\r\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\r\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\r\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\r\n actualMoveZone = displayables.moveZone = new Rect({\r\n invisible: true,\r\n shape: {\r\n y: size[1] - moveZoneExpandSize,\r\n height: moveHandleHeight + moveZoneExpandSize\r\n }\r\n });\r\n actualMoveZone.on('mouseover', function () {\r\n api.enterEmphasis(moveHandle_1);\r\n })\r\n .on('mouseout', function () {\r\n api.leaveEmphasis(moveHandle_1);\r\n });\r\n sliderGroup.add(moveHandle_1);\r\n sliderGroup.add(moveHandleIcon);\r\n sliderGroup.add(actualMoveZone);\r\n }\r\n actualMoveZone.attr({\r\n draggable: true,\r\n cursor: getCursor(this._orient),\r\n drift: bind(this._onDragMove, this, 'all'),\r\n ondragstart: bind(this._showDataInfo, this, true),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false)\r\n });\r\n };\r\n SliderZoomView.prototype._resetInterval = function () {\r\n var range = this._range = this.dataZoomModel.getPercentRange();\r\n var viewExtent = this._getViewExtent();\r\n this._handleEnds = [\r\n linearMap(range[0], [0, 100], viewExtent, true),\r\n linearMap(range[1], [0, 100], viewExtent, true)\r\n ];\r\n };\r\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var handleEnds = this._handleEnds;\r\n var viewExtend = this._getViewExtent();\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n var percentExtent = [0, 100];\r\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null\r\n ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null\r\n ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\r\n var lastRange = this._range;\r\n var range = this._range = asc([\r\n linearMap(handleEnds[0], viewExtend, percentExtent, true),\r\n linearMap(handleEnds[1], viewExtend, percentExtent, true)\r\n ]);\r\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\r\n };\r\n SliderZoomView.prototype._updateView = function (nonRealtime) {\r\n var displaybles = this._displayables;\r\n var handleEnds = this._handleEnds;\r\n var handleInterval = asc(handleEnds.slice());\r\n var size = this._size;\r\n each([0, 1], function (handleIndex) {\r\n var handle = displaybles.handles[handleIndex];\r\n var handleHeight = this._handleHeight;\r\n handle.attr({\r\n scaleX: handleHeight / 2,\r\n scaleY: handleHeight / 2,\r\n x: handleEnds[handleIndex],\r\n y: size[1] / 2 - handleHeight / 2\r\n });\r\n }, this);\r\n displaybles.filler.setShape({\r\n x: handleInterval[0],\r\n y: 0,\r\n width: handleInterval[1] - handleInterval[0],\r\n height: size[1]\r\n });\r\n var viewExtent = {\r\n x: handleInterval[0],\r\n width: handleInterval[1] - handleInterval[0]\r\n };\r\n if (displaybles.moveHandle) {\r\n displaybles.moveHandle.setShape(viewExtent);\r\n displaybles.moveZone.setShape(viewExtent);\r\n displaybles.moveZone.getBoundingRect();\r\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\r\n }\r\n var dataShadowSegs = displaybles.dataShadowSegs;\r\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\r\n for (var i = 0; i < dataShadowSegs.length; i++) {\r\n var segGroup = dataShadowSegs[i];\r\n var clipPath = segGroup.getClipPath();\r\n if (!clipPath) {\r\n clipPath = new Rect();\r\n segGroup.setClipPath(clipPath);\r\n }\r\n clipPath.setShape({\r\n x: segIntervals[i],\r\n y: 0,\r\n width: segIntervals[i + 1] - segIntervals[i],\r\n height: size[1]\r\n });\r\n }\r\n this._updateDataInfo(nonRealtime);\r\n };\r\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var displaybles = this._displayables;\r\n var handleLabels = displaybles.handleLabels;\r\n var orient = this._orient;\r\n var labelTexts = ['', ''];\r\n if (dataZoomModel.get('showDetail')) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var axis = axisProxy.getAxisModel().axis;\r\n var range = this._range;\r\n var dataInterval = nonRealtime\r\n ? axisProxy.calculateDataWindow({\r\n start: range[0], end: range[1]\r\n }).valueWindow\r\n : axisProxy.getDataValueWindow();\r\n labelTexts = [\r\n this._formatLabel(dataInterval[0], axis),\r\n this._formatLabel(dataInterval[1], axis)\r\n ];\r\n }\r\n }\r\n var orderedHandleEnds = asc(this._handleEnds.slice());\r\n setLabel.call(this, 0);\r\n setLabel.call(this, 1);\r\n function setLabel(handleIndex) {\r\n var barTransform = getTransform(displaybles.handles[handleIndex].parent, this.group);\r\n var direction = transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\r\n var offset = this._handleWidth / 2 + LABEL_GAP;\r\n var textPoint = applyTransform$1([\r\n orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset),\r\n this._size[1] / 2\r\n ], barTransform);\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\r\n align: orient === HORIZONTAL ? direction : 'center',\r\n text: labelTexts[handleIndex]\r\n });\r\n }\r\n };\r\n SliderZoomView.prototype._formatLabel = function (value, axis) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var labelFormatter = dataZoomModel.get('labelFormatter');\r\n var labelPrecision = dataZoomModel.get('labelPrecision');\r\n if (labelPrecision == null || labelPrecision === 'auto') {\r\n labelPrecision = axis.getPixelPrecision();\r\n }\r\n var valueStr = (value == null || isNaN(value))\r\n ? ''\r\n : (axis.type === 'category' || axis.type === 'time')\r\n ? axis.scale.getLabel({\r\n value: Math.round(value)\r\n })\r\n : value.toFixed(Math.min(labelPrecision, 20));\r\n return isFunction(labelFormatter)\r\n ? labelFormatter(value, valueStr)\r\n : isString(labelFormatter)\r\n ? labelFormatter.replace('{value}', valueStr)\r\n : valueStr;\r\n };\r\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\r\n showOrHide = this._dragging || showOrHide;\r\n var displayables = this._displayables;\r\n var handleLabels = displayables.handleLabels;\r\n handleLabels[0].attr('invisible', !showOrHide);\r\n handleLabels[1].attr('invisible', !showOrHide);\r\n displayables.moveHandle\r\n && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\r\n };\r\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\r\n this._dragging = true;\r\n stop(event.event);\r\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\r\n var vertex = applyTransform$1([dx, dy], barTransform, true);\r\n var changed = this._updateInterval(handleIndex, vertex[0]);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n this._updateView(!realtime);\r\n changed && realtime && this._dispatchZoomAction(true);\r\n };\r\n SliderZoomView.prototype._onDragEnd = function () {\r\n this._dragging = false;\r\n this._showDataInfo(false);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n !realtime && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onClickPanel = function (e) {\r\n var size = this._size;\r\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\r\n if (localPoint[0] < 0 || localPoint[0] > size[0]\r\n || localPoint[1] < 0 || localPoint[1] > size[1]) {\r\n return;\r\n }\r\n var handleEnds = this._handleEnds;\r\n var center = (handleEnds[0] + handleEnds[1]) / 2;\r\n var changed = this._updateInterval('all', localPoint[0] - center);\r\n this._updateView();\r\n changed && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrushStart = function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n this._brushStart = new Point(x, y);\r\n this._brushing = true;\r\n this._brushStartTime = +new Date();\r\n };\r\n SliderZoomView.prototype._onBrushEnd = function (e) {\r\n if (!this._brushing) {\r\n return;\r\n }\r\n var brushRect = this._displayables.brushRect;\r\n this._brushing = false;\r\n if (!brushRect) {\r\n return;\r\n }\r\n brushRect.attr('ignore', true);\r\n var brushShape = brushRect.shape;\r\n var brushEndTime = +new Date();\r\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\r\n return;\r\n }\r\n var viewExtend = this._getViewExtent();\r\n var percentExtent = [0, 100];\r\n this._range = asc([\r\n linearMap(brushShape.x, viewExtend, percentExtent, true),\r\n linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)\r\n ]);\r\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\r\n this._updateView();\r\n this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrush = function (e) {\r\n if (this._brushing) {\r\n stop(e.event);\r\n this._updateBrushRect(e.offsetX, e.offsetY);\r\n }\r\n };\r\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\r\n var displayables = this._displayables;\r\n var dataZoomModel = this.dataZoomModel;\r\n var brushRect = displayables.brushRect;\r\n if (!brushRect) {\r\n brushRect = displayables.brushRect = new Rect$2({\r\n silent: true,\r\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\r\n });\r\n displayables.sliderGroup.add(brushRect);\r\n }\r\n brushRect.ignore = false;\r\n var brushStart = this._brushStart;\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\r\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\r\n var size = this._size;\r\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\r\n brushRect.setShape({\r\n x: startPoint[0], y: 0,\r\n width: endPoint[0] - startPoint[0], height: size[1]\r\n });\r\n };\r\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\r\n var range = this._range;\r\n this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n dataZoomId: this.dataZoomModel.id,\r\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n };\r\n SliderZoomView.prototype._findCoordRect = function () {\r\n var rect;\r\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\r\n if (!rect && coordSysInfoList.length) {\r\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\r\n rect = coordSys.getRect && coordSys.getRect();\r\n }\r\n if (!rect) {\r\n var width = this.api.getWidth();\r\n var height = this.api.getHeight();\r\n rect = {\r\n x: width * 0.2,\r\n y: height * 0.2,\r\n width: width * 0.6,\r\n height: height * 0.6\r\n };\r\n }\r\n return rect;\r\n };\r\n SliderZoomView.type = 'dataZoom.slider';\r\n return SliderZoomView;\r\n }(DataZoomView));\r\n function getOtherDim(thisDim) {\r\n var map = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' };\r\n return map[thisDim];\r\n }\r\n function getCursor(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(SliderZoomView);\n\n var InsideZoomModel = (function (_super) {\r\n __extends(InsideZoomModel, _super);\r\n function InsideZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = InsideZoomModel.type;\r\n return _this;\r\n }\r\n InsideZoomModel.type = 'dataZoom.inside';\r\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n disabled: false,\r\n zoomLock: false,\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n return InsideZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(InsideZoomModel);\n\n var inner$m = makeInner();\r\n registerProcessor(PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\r\n var apiInner = inner$m(api);\r\n var coordSysRecordMap = apiInner.coordSysRecordMap\r\n || (apiInner.coordSysRecordMap = createHashMap());\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n coordSysRecord.dataZoomInfoMap = null;\r\n });\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'inside' }, function (dataZoomModel) {\r\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\r\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\r\n var coordSysUid = dzCoordSysInfo.model.uid;\r\n var coordSysRecord = coordSysRecordMap.get(coordSysUid)\r\n || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap\r\n || (coordSysRecord.dataZoomInfoMap = createHashMap());\r\n dataZoomInfoMap.set(dataZoomModel.uid, {\r\n dzReferCoordSysInfo: dzCoordSysInfo,\r\n model: dataZoomModel,\r\n getRange: null\r\n });\r\n });\r\n });\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n var controller = coordSysRecord.controller;\r\n var firstDzInfo;\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var firstDzKey = dataZoomInfoMap.keys()[0];\r\n if (firstDzKey != null) {\r\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\r\n }\r\n }\r\n if (!firstDzInfo) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n return;\r\n }\r\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\r\n controller.enable(controllerParams.controlType, controllerParams.opt);\r\n controller.setPointerChecker(coordSysRecord.containsPoint);\r\n createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\r\n });\r\n });\r\n function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\r\n inner$m(api).coordSysRecordMap.each(function (coordSysRecord) {\r\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\r\n if (dzInfo) {\r\n dzInfo.getRange = getRange;\r\n }\r\n });\r\n }\r\n function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\r\n var coordSysRecordMap = inner$m(api).coordSysRecordMap;\r\n var coordSysKeyArr = coordSysRecordMap.keys();\r\n for (var i = 0; i < coordSysKeyArr.length; i++) {\r\n var coordSysKey = coordSysKeyArr[i];\r\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var dzUid = dataZoomModel.uid;\r\n var dzInfo = dataZoomInfoMap.get(dzUid);\r\n if (dzInfo) {\r\n dataZoomInfoMap.removeKey(dzUid);\r\n if (!dataZoomInfoMap.keys().length) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\r\n if (coordSysRecord) {\r\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\r\n var controller = coordSysRecord.controller;\r\n controller && controller.dispose();\r\n }\r\n }\r\n function createCoordSysRecord(api, coordSysModel) {\r\n var coordSysRecord = {\r\n model: coordSysModel,\r\n containsPoint: curry(containsPoint, coordSysModel),\r\n dispatchAction: curry(dispatchAction$1, api),\r\n dataZoomInfoMap: null,\r\n controller: null\r\n };\r\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\r\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\r\n controller.on(eventName, function (event) {\r\n var batch = [];\r\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\r\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\r\n return;\r\n }\r\n var method = (dzInfo.getRange || {})[eventName];\r\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\r\n !dzInfo.model.get('disabled', true) && range && batch.push({\r\n dataZoomId: dzInfo.model.id,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n });\r\n batch.length && coordSysRecord.dispatchAction(batch);\r\n });\r\n });\r\n return coordSysRecord;\r\n }\r\n function dispatchAction$1(api, batch) {\r\n api.dispatchAction({\r\n type: 'dataZoom',\r\n animation: {\r\n easing: 'cubicOut',\r\n duration: 100\r\n },\r\n batch: batch\r\n });\r\n }\r\n function containsPoint(coordSysModel, e, x, y) {\r\n return coordSysModel.coordinateSystem.containPoint([x, y]);\r\n }\r\n function mergeControllerParams(dataZoomInfoMap) {\r\n var controlType;\r\n var prefix = 'type_';\r\n var typePriority = {\r\n 'type_true': 2,\r\n 'type_move': 1,\r\n 'type_false': 0,\r\n 'type_undefined': -1\r\n };\r\n var preventDefaultMouseMove = true;\r\n dataZoomInfoMap.each(function (dataZoomInfo) {\r\n var dataZoomModel = dataZoomInfo.model;\r\n var oneType = dataZoomModel.get('disabled', true)\r\n ? false\r\n : dataZoomModel.get('zoomLock', true)\r\n ? 'move'\r\n : true;\r\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\r\n controlType = oneType;\r\n }\r\n preventDefaultMouseMove = preventDefaultMouseMove\r\n && dataZoomModel.get('preventDefaultMouseMove', true);\r\n });\r\n return {\r\n controlType: controlType,\r\n opt: {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: true,\r\n preventDefaultMouseMove: !!preventDefaultMouseMove\r\n }\r\n };\r\n }\n\n var InsideZoomView = (function (_super) {\r\n __extends(InsideZoomView, _super);\r\n function InsideZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataZoom.inside';\r\n return _this;\r\n }\r\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\r\n _super.prototype.render.apply(this, arguments);\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n return;\r\n }\r\n this.range = dataZoomModel.getPercentRange();\r\n setViewInfoToCoordSysRecord(api, dataZoomModel, {\r\n pan: bind(getRangeHandlers.pan, this),\r\n zoom: bind(getRangeHandlers.zoom, this),\r\n scrollMove: bind(getRangeHandlers.scrollMove, this)\r\n });\r\n };\r\n InsideZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n InsideZoomView.prototype._clear = function () {\r\n disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\r\n this.range = null;\r\n };\r\n InsideZoomView.type = 'dataZoom.inside';\r\n return InsideZoomView;\r\n }(DataZoomView));\r\n var getRangeHandlers = {\r\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\r\n var percentPoint = (directionInfo.signal > 0\r\n ? (directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel)\r\n : (directionInfo.pixel - directionInfo.pixelStart)) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\r\n var scale = Math.max(1 / e.scale, 0);\r\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\r\n range[1] = (range[1] - percentPoint) * scale + percentPoint;\r\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n },\r\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal\r\n * (range[1] - range[0])\r\n * directionInfo.pixel / directionInfo.pixelLength;\r\n }),\r\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\r\n })\r\n };\r\n function makeMover(getPercentDelta) {\r\n return function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\r\n sliderMove(percentDelta, range, [0, 100], 'all');\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n };\r\n }\r\n var getDirectionInfo = {\r\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.dim === 'x') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var polar = coordSysInfo.model.coordinateSystem;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var angleExtent = polar.getAngleAxis().getExtent();\r\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\r\n newPoint = polar.pointToCoord(newPoint);\r\n if (axisModel.mainType === 'radiusAxis') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\r\n ret.pixelStart = radiusExtent[0];\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = angleExtent[1] - angleExtent[0];\r\n ret.pixelStart = angleExtent[0];\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n var ret = {};\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.orient === 'horizontal') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n }\r\n };\r\n ComponentView.registerClass(InsideZoomView);\n\n var each$g = each;\r\n function preprocessor$3 (option) {\r\n var visualMap = option && option.visualMap;\r\n if (!isArray(visualMap)) {\r\n visualMap = visualMap ? [visualMap] : [];\r\n }\r\n each$g(visualMap, function (opt) {\r\n if (!opt) {\r\n return;\r\n }\r\n if (has$1(opt, 'splitList') && !has$1(opt, 'pieces')) {\r\n opt.pieces = opt.splitList;\r\n delete opt.splitList;\r\n }\r\n var pieces = opt.pieces;\r\n if (pieces && isArray(pieces)) {\r\n each$g(pieces, function (piece) {\r\n if (isObject(piece)) {\r\n if (has$1(piece, 'start') && !has$1(piece, 'min')) {\r\n piece.min = piece.start;\r\n }\r\n if (has$1(piece, 'end') && !has$1(piece, 'max')) {\r\n piece.max = piece.end;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n function has$1(obj, name) {\r\n return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\r\n }\n\n ComponentModel.registerSubTypeDefaulter('visualMap', function (option) {\r\n return (!option.categories\r\n && (!(option.pieces\r\n ? option.pieces.length > 0\r\n : option.splitNumber > 0)\r\n || option.calculable))\r\n ? 'continuous' : 'piecewise';\r\n });\n\n var VISUAL_PRIORITY = PRIORITY.VISUAL.COMPONENT;\r\n registerVisual(VISUAL_PRIORITY, {\r\n createOnAllSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var resetDefines = [];\r\n ecModel.eachComponent('visualMap', function (visualMapModel) {\r\n var pipelineContext = seriesModel.pipelineContext;\r\n if (!visualMapModel.isTargetSeries(seriesModel)\r\n || (pipelineContext && pipelineContext.large)) {\r\n return;\r\n }\r\n resetDefines.push(incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\r\n });\r\n return resetDefines;\r\n }\r\n });\r\n registerVisual(VISUAL_PRIORITY, {\r\n createOnAllSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var visualMetaList = [];\r\n ecModel.eachComponent('visualMap', function (visualMapModel) {\r\n if (visualMapModel.isTargetSeries(seriesModel)) {\r\n var visualMeta = visualMapModel.getVisualMeta(bind(getColorVisual, null, seriesModel, visualMapModel)) || {\r\n stops: [],\r\n outerColors: []\r\n };\r\n var concreteDim = visualMapModel.getDataDimension(data);\r\n var dimInfo = data.getDimensionInfo(concreteDim);\r\n if (dimInfo != null) {\r\n visualMeta.dimension = dimInfo.index;\r\n visualMetaList.push(visualMeta);\r\n }\r\n }\r\n });\r\n seriesModel.getData().setVisual('visualMeta', visualMetaList);\r\n }\r\n });\r\n function getColorVisual(seriesModel, visualMapModel, value, valueState) {\r\n var mappings = visualMapModel.targetVisuals[valueState];\r\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\r\n var resultVisual = {\r\n color: getVisualFromData(seriesModel.getData(), 'color')\r\n };\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n var mapping = mappings[(type === 'opacity' ? '__alphaForOpacity' : type)];\r\n mapping && mapping.applyVisual(value, getVisual, setVisual);\r\n }\r\n return resultVisual.color;\r\n function getVisual(key) {\r\n return resultVisual[key];\r\n }\r\n function setVisual(key, value) {\r\n resultVisual[key] = value;\r\n }\r\n }\n\n var visualDefault = {\r\n get: function (visualType, key, isCategory) {\r\n var value = clone((defaultOption$2[visualType] || {})[key]);\r\n return isCategory\r\n ? (isArray(value) ? value[value.length - 1] : value)\r\n : value;\r\n }\r\n };\r\n var defaultOption$2 = {\r\n color: {\r\n active: ['#006edd', '#e0ffff'],\r\n inactive: ['rgba(0,0,0,0)']\r\n },\r\n colorHue: {\r\n active: [0, 360],\r\n inactive: [0, 0]\r\n },\r\n colorSaturation: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n colorLightness: {\r\n active: [0.9, 0.5],\r\n inactive: [0, 0]\r\n },\r\n colorAlpha: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n opacity: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n symbol: {\r\n active: ['circle', 'roundRect', 'diamond'],\r\n inactive: ['none']\r\n },\r\n symbolSize: {\r\n active: [10, 50],\r\n inactive: [0, 0]\r\n }\r\n };\n\n var mapVisual$1 = VisualMapping.mapVisual;\r\n var eachVisual = VisualMapping.eachVisual;\r\n var isArray$1 = isArray;\r\n var each$h = each;\r\n var asc$2 = asc;\r\n var linearMap$1 = linearMap;\r\n var VisualMapModel = (function (_super) {\r\n __extends(VisualMapModel, _super);\r\n function VisualMapModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = VisualMapModel.type;\r\n _this.stateList = ['inRange', 'outOfRange'];\r\n _this.replacableOptionKeys = [\r\n 'inRange', 'outOfRange', 'target', 'controller', 'color'\r\n ];\r\n _this.layoutMode = {\r\n type: 'box', ignoreSize: true\r\n };\r\n _this.dataBound = [-Infinity, Infinity];\r\n _this.targetVisuals = {};\r\n _this.controllerVisuals = {};\r\n return _this;\r\n }\r\n VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n if (!env.canvasSupported) {\r\n thisOption.realtime = false;\r\n }\r\n !isInit && replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\r\n this.textStyleModel = this.getModel('textStyle');\r\n this.resetItemSize();\r\n this.completeVisualOption();\r\n };\r\n VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\r\n var stateList = this.stateList;\r\n supplementVisualOption = bind(supplementVisualOption, this);\r\n this.controllerVisuals = createVisualMappings(this.option.controller, stateList, supplementVisualOption);\r\n this.targetVisuals = createVisualMappings(this.option.target, stateList, supplementVisualOption);\r\n };\r\n VisualMapModel.prototype.getTargetSeriesIndices = function () {\r\n var optionSeriesIndex = this.option.seriesIndex;\r\n var seriesIndices = [];\r\n if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\r\n this.ecModel.eachSeries(function (seriesModel, index) {\r\n seriesIndices.push(index);\r\n });\r\n }\r\n else {\r\n seriesIndices = normalizeToArray(optionSeriesIndex);\r\n }\r\n return seriesIndices;\r\n };\r\n VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\r\n each(this.getTargetSeriesIndices(), function (seriesIndex) {\r\n var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\r\n if (seriesModel) {\r\n callback.call(context, seriesModel);\r\n }\r\n }, this);\r\n };\r\n VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\r\n var is = false;\r\n this.eachTargetSeries(function (model) {\r\n model === seriesModel && (is = true);\r\n });\r\n return is;\r\n };\r\n VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\r\n var option = this.option;\r\n var precision = option.precision;\r\n var dataBound = this.dataBound;\r\n var formatter = option.formatter;\r\n var isMinMax;\r\n edgeSymbols = edgeSymbols || ['<', '>'];\r\n if (isArray(value)) {\r\n value = value.slice();\r\n isMinMax = true;\r\n }\r\n var textValue = isCategory\r\n ? value\r\n : (isMinMax\r\n ? [toFixed(value[0]), toFixed(value[1])]\r\n : toFixed(value));\r\n if (isString(formatter)) {\r\n return formatter\r\n .replace('{value}', isMinMax ? textValue[0] : textValue)\r\n .replace('{value2}', isMinMax ? textValue[1] : textValue);\r\n }\r\n else if (isFunction(formatter)) {\r\n return isMinMax\r\n ? formatter(value[0], value[1])\r\n : formatter(value);\r\n }\r\n if (isMinMax) {\r\n if (value[0] === dataBound[0]) {\r\n return edgeSymbols[0] + ' ' + textValue[1];\r\n }\r\n else if (value[1] === dataBound[1]) {\r\n return edgeSymbols[1] + ' ' + textValue[0];\r\n }\r\n else {\r\n return textValue[0] + ' - ' + textValue[1];\r\n }\r\n }\r\n else {\r\n return textValue;\r\n }\r\n function toFixed(val) {\r\n return val === dataBound[0]\r\n ? 'min'\r\n : val === dataBound[1]\r\n ? 'max'\r\n : (+val).toFixed(Math.min(precision, 20));\r\n }\r\n };\r\n VisualMapModel.prototype.resetExtent = function () {\r\n var thisOption = this.option;\r\n var extent = asc$2([thisOption.min, thisOption.max]);\r\n this._dataExtent = extent;\r\n };\r\n VisualMapModel.prototype.getDataDimension = function (list) {\r\n var optDim = this.option.dimension;\r\n var listDimensions = list.dimensions;\r\n if (optDim == null && !listDimensions.length) {\r\n return;\r\n }\r\n if (optDim != null) {\r\n return list.getDimension(optDim);\r\n }\r\n var dimNames = list.dimensions;\r\n for (var i = dimNames.length - 1; i >= 0; i--) {\r\n var dimName = dimNames[i];\r\n var dimInfo = list.getDimensionInfo(dimName);\r\n if (!dimInfo.isCalculationCoord) {\r\n return dimName;\r\n }\r\n }\r\n };\r\n VisualMapModel.prototype.getExtent = function () {\r\n return this._dataExtent.slice();\r\n };\r\n VisualMapModel.prototype.completeVisualOption = function () {\r\n var ecModel = this.ecModel;\r\n var thisOption = this.option;\r\n var base = {\r\n inRange: thisOption.inRange,\r\n outOfRange: thisOption.outOfRange\r\n };\r\n var target = thisOption.target || (thisOption.target = {});\r\n var controller = thisOption.controller || (thisOption.controller = {});\r\n merge(target, base);\r\n merge(controller, base);\r\n var isCategory = this.isCategory();\r\n completeSingle.call(this, target);\r\n completeSingle.call(this, controller);\r\n completeInactive.call(this, target, 'inRange', 'outOfRange');\r\n completeController.call(this, controller);\r\n function completeSingle(base) {\r\n if (isArray$1(thisOption.color)\r\n && !base.inRange) {\r\n base.inRange = { color: thisOption.color.slice().reverse() };\r\n }\r\n base.inRange = base.inRange || { color: ecModel.get('gradientColor') };\r\n }\r\n function completeInactive(base, stateExist, stateAbsent) {\r\n var optExist = base[stateExist];\r\n var optAbsent = base[stateAbsent];\r\n if (optExist && !optAbsent) {\r\n optAbsent = base[stateAbsent] = {};\r\n each$h(optExist, function (visualData, visualType) {\r\n if (!VisualMapping.isValidType(visualType)) {\r\n return;\r\n }\r\n var defa = visualDefault.get(visualType, 'inactive', isCategory);\r\n if (defa != null) {\r\n optAbsent[visualType] = defa;\r\n if (visualType === 'color'\r\n && !optAbsent.hasOwnProperty('opacity')\r\n && !optAbsent.hasOwnProperty('colorAlpha')) {\r\n optAbsent.opacity = [0, 0];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function completeController(controller) {\r\n var symbolExists = (controller.inRange || {}).symbol\r\n || (controller.outOfRange || {}).symbol;\r\n var symbolSizeExists = (controller.inRange || {}).symbolSize\r\n || (controller.outOfRange || {}).symbolSize;\r\n var inactiveColor = this.get('inactiveColor');\r\n each$h(this.stateList, function (state) {\r\n var itemSize = this.itemSize;\r\n var visuals = controller[state];\r\n if (!visuals) {\r\n visuals = controller[state] = {\r\n color: isCategory ? inactiveColor : [inactiveColor]\r\n };\r\n }\r\n if (visuals.symbol == null) {\r\n visuals.symbol = symbolExists\r\n && clone(symbolExists)\r\n || (isCategory ? 'roundRect' : ['roundRect']);\r\n }\r\n if (visuals.symbolSize == null) {\r\n visuals.symbolSize = symbolSizeExists\r\n && clone(symbolSizeExists)\r\n || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\r\n }\r\n visuals.symbol = mapVisual$1(visuals.symbol, function (symbol) {\r\n return (symbol === 'none' || symbol === 'square') ? 'roundRect' : symbol;\r\n });\r\n var symbolSize = visuals.symbolSize;\r\n if (symbolSize != null) {\r\n var max_1 = -Infinity;\r\n eachVisual(symbolSize, function (value) {\r\n value > max_1 && (max_1 = value);\r\n });\r\n visuals.symbolSize = mapVisual$1(symbolSize, function (value) {\r\n return linearMap$1(value, [0, max_1], [0, itemSize[0]], true);\r\n });\r\n }\r\n }, this);\r\n }\r\n };\r\n VisualMapModel.prototype.resetItemSize = function () {\r\n this.itemSize = [\r\n parseFloat(this.get('itemWidth')),\r\n parseFloat(this.get('itemHeight'))\r\n ];\r\n };\r\n VisualMapModel.prototype.isCategory = function () {\r\n return !!this.option.categories;\r\n };\r\n VisualMapModel.prototype.setSelected = function (selected) { };\r\n VisualMapModel.prototype.getSelected = function () {\r\n return null;\r\n };\r\n VisualMapModel.prototype.getValueState = function (value) {\r\n return null;\r\n };\r\n VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\r\n return null;\r\n };\r\n VisualMapModel.type = 'visualMap';\r\n VisualMapModel.dependencies = ['series'];\r\n VisualMapModel.defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 4,\r\n seriesIndex: 'all',\r\n min: 0,\r\n max: 200,\r\n left: 0,\r\n right: null,\r\n top: null,\r\n bottom: 0,\r\n itemWidth: null,\r\n itemHeight: null,\r\n inverse: false,\r\n orient: 'vertical',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n contentColor: '#5793f3',\r\n inactiveColor: '#aaa',\r\n borderWidth: 0,\r\n padding: 5,\r\n textGap: 10,\r\n precision: 0,\r\n textStyle: {\r\n color: '#333'\r\n }\r\n };\r\n return VisualMapModel;\r\n }(ComponentModel));\n\n var DEFAULT_BAR_BOUND = [20, 140];\r\n var ContinuousModel = (function (_super) {\r\n __extends(ContinuousModel, _super);\r\n function ContinuousModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ContinuousModel.type;\r\n return _this;\r\n }\r\n ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n this.resetExtent();\r\n this.resetVisual(function (mappingOption) {\r\n mappingOption.mappingMethod = 'linear';\r\n mappingOption.dataExtent = this.getExtent();\r\n });\r\n this._resetRange();\r\n };\r\n ContinuousModel.prototype.resetItemSize = function () {\r\n _super.prototype.resetItemSize.apply(this, arguments);\r\n var itemSize = this.itemSize;\r\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\r\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\r\n };\r\n ContinuousModel.prototype._resetRange = function () {\r\n var dataExtent = this.getExtent();\r\n var range = this.option.range;\r\n if (!range || range.auto) {\r\n dataExtent.auto = 1;\r\n this.option.range = dataExtent;\r\n }\r\n else if (isArray(range)) {\r\n if (range[0] > range[1]) {\r\n range.reverse();\r\n }\r\n range[0] = Math.max(range[0], dataExtent[0]);\r\n range[1] = Math.min(range[1], dataExtent[1]);\r\n }\r\n };\r\n ContinuousModel.prototype.completeVisualOption = function () {\r\n _super.prototype.completeVisualOption.apply(this, arguments);\r\n each(this.stateList, function (state) {\r\n var symbolSize = this.option.controller[state].symbolSize;\r\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\r\n symbolSize[0] = symbolSize[1] / 3;\r\n }\r\n }, this);\r\n };\r\n ContinuousModel.prototype.setSelected = function (selected) {\r\n this.option.range = selected.slice();\r\n this._resetRange();\r\n };\r\n ContinuousModel.prototype.getSelected = function () {\r\n var dataExtent = this.getExtent();\r\n var dataInterval = asc((this.get('range') || []).slice());\r\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\r\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\r\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\r\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\r\n return dataInterval;\r\n };\r\n ContinuousModel.prototype.getValueState = function (value) {\r\n var range = this.option.range;\r\n var dataExtent = this.getExtent();\r\n return ((range[0] <= dataExtent[0] || range[0] <= value)\r\n && (range[1] >= dataExtent[1] || value <= range[1])) ? 'inRange' : 'outOfRange';\r\n };\r\n ContinuousModel.prototype.findTargetDataIndices = function (range) {\r\n var result = [];\r\n this.eachTargetSeries(function (seriesModel) {\r\n var dataIndices = [];\r\n var data = seriesModel.getData();\r\n data.each(this.getDataDimension(data), function (value, dataIndex) {\r\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\r\n }, this);\r\n result.push({\r\n seriesId: seriesModel.id,\r\n dataIndex: dataIndices\r\n });\r\n }, this);\r\n return result;\r\n };\r\n ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\r\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\r\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\r\n var stops = [];\r\n function setStop(value, valueState) {\r\n stops.push({\r\n value: value,\r\n color: getColorVisual(value, valueState)\r\n });\r\n }\r\n var iIdx = 0;\r\n var oIdx = 0;\r\n var iLen = iVals.length;\r\n var oLen = oVals.length;\r\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\r\n if (oVals[oIdx] < iVals[iIdx]) {\r\n setStop(oVals[oIdx], 'outOfRange');\r\n }\r\n }\r\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\r\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\r\n setStop(iVals[iIdx], 'inRange');\r\n }\r\n for (var first = 1; oIdx < oLen; oIdx++) {\r\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\r\n if (first) {\r\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\r\n first = 0;\r\n }\r\n setStop(oVals[oIdx], 'outOfRange');\r\n }\r\n }\r\n var stopsLen = stops.length;\r\n return {\r\n stops: stops,\r\n outerColors: [\r\n stopsLen ? stops[0].color : 'transparent',\r\n stopsLen ? stops[stopsLen - 1].color : 'transparent'\r\n ]\r\n };\r\n };\r\n ContinuousModel.type = 'visualMap.continuous';\r\n ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\r\n align: 'auto',\r\n calculable: false,\r\n hoverLink: true,\r\n realtime: true,\r\n handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\r\n handleSize: '120%',\r\n handleStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 1\r\n },\r\n indicatorIcon: 'circle',\r\n indicatorSize: '50%',\r\n indicatorStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 2,\r\n shadowBlur: 2,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0,0,0,0.2)'\r\n }\r\n });\r\n return ContinuousModel;\r\n }(VisualMapModel));\r\n function getColorStopValues(visualMapModel, valueState, dataExtent) {\r\n if (dataExtent[0] === dataExtent[1]) {\r\n return dataExtent.slice();\r\n }\r\n var count = 200;\r\n var step = (dataExtent[1] - dataExtent[0]) / count;\r\n var value = dataExtent[0];\r\n var stopValues = [];\r\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\r\n stopValues.push(value);\r\n value += step;\r\n }\r\n stopValues.push(dataExtent[1]);\r\n return stopValues;\r\n }\r\n ComponentModel.registerClass(ContinuousModel);\n\n var VisualMapView = (function (_super) {\r\n __extends(VisualMapView, _super);\r\n function VisualMapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = VisualMapView.type;\r\n _this.autoPositionValues = { left: 1, right: 1, top: 1, bottom: 1 };\r\n return _this;\r\n }\r\n VisualMapView.prototype.init = function (ecModel, api) {\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\r\n this.visualMapModel = visualMapModel;\r\n if (visualMapModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n this.doRender(visualMapModel, ecModel, api, payload);\r\n };\r\n VisualMapView.prototype.renderBackground = function (group) {\r\n var visualMapModel = this.visualMapModel;\r\n var padding = normalizeCssArray$1(visualMapModel.get('padding') || 0);\r\n var rect = group.getBoundingRect();\r\n group.add(new Rect({\r\n z2: -1,\r\n silent: true,\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[3] + padding[1],\r\n height: rect.height + padding[0] + padding[2]\r\n },\r\n style: {\r\n fill: visualMapModel.get('backgroundColor'),\r\n stroke: visualMapModel.get('borderColor'),\r\n lineWidth: visualMapModel.get('borderWidth')\r\n }\r\n }));\r\n };\r\n VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\r\n opts = opts || {};\r\n var forceState = opts.forceState;\r\n var visualMapModel = this.visualMapModel;\r\n var visualObj = {};\r\n if (visualCluster === 'symbol') {\r\n visualObj.symbol = visualMapModel.get('itemSymbol');\r\n }\r\n if (visualCluster === 'color') {\r\n var defaultColor = visualMapModel.get('contentColor');\r\n visualObj.color = defaultColor;\r\n }\r\n function getter(key) {\r\n return visualObj[key];\r\n }\r\n function setter(key, value) {\r\n visualObj[key] = value;\r\n }\r\n var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\r\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\r\n each(visualTypes, function (type) {\r\n var visualMapping = mappings[type];\r\n if (opts.convertOpacityToAlpha && type === 'opacity') {\r\n type = 'colorAlpha';\r\n visualMapping = mappings.__alphaForOpacity;\r\n }\r\n if (VisualMapping.dependsOn(type, visualCluster)) {\r\n visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\r\n }\r\n });\r\n return visualObj[visualCluster];\r\n };\r\n VisualMapView.prototype.positionGroup = function (group) {\r\n var model = this.visualMapModel;\r\n var api = this.api;\r\n positionElement(group, model.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() });\r\n };\r\n VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) { };\r\n VisualMapView.type = 'visualMap';\r\n return VisualMapView;\r\n }(ComponentView));\r\n ComponentView.registerClass(VisualMapView);\n\n var paramsSet = [\r\n ['left', 'right', 'width'],\r\n ['top', 'bottom', 'height']\r\n ];\r\n function getItemAlign(visualMapModel, api, itemSize) {\r\n var modelOption = visualMapModel.option;\r\n var itemAlign = modelOption.align;\r\n if (itemAlign != null && itemAlign !== 'auto') {\r\n return itemAlign;\r\n }\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\r\n var reals = paramsSet[realIndex];\r\n var fakeValue = [0, null, 10];\r\n var layoutInput = {};\r\n for (var i = 0; i < 3; i++) {\r\n layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\r\n layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\r\n }\r\n var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\r\n var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\r\n return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5\r\n < ecSize[rParam[1]] * 0.5 ? 0 : 1];\r\n }\r\n function makeHighDownBatch(batch, visualMapModel) {\r\n each(batch || [], function (batchItem) {\r\n if (batchItem.dataIndex != null) {\r\n batchItem.dataIndexInside = batchItem.dataIndex;\r\n batchItem.dataIndex = null;\r\n }\r\n batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\r\n });\r\n return batch;\r\n }\n\n var linearMap$2 = linearMap;\r\n var each$i = each;\r\n var mathMin$8 = Math.min;\r\n var mathMax$8 = Math.max;\r\n var HOVER_LINK_SIZE = 12;\r\n var HOVER_LINK_OUT = 6;\r\n var ContinuousView = (function (_super) {\r\n __extends(ContinuousView, _super);\r\n function ContinuousView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ContinuousView.type;\r\n _this._shapes = {};\r\n _this._dataInterval = [];\r\n _this._handleEnds = [];\r\n _this._hoverLinkDataIndices = [];\r\n return _this;\r\n }\r\n ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\r\n this._api = api;\r\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n };\r\n ContinuousView.prototype._buildView = function () {\r\n this.group.removeAll();\r\n var visualMapModel = this.visualMapModel;\r\n var thisGroup = this.group;\r\n this._orient = visualMapModel.get('orient');\r\n this._useHandle = visualMapModel.get('calculable');\r\n this._resetInterval();\r\n this._renderBar(thisGroup);\r\n var dataRangeText = visualMapModel.get('text');\r\n this._renderEndsText(thisGroup, dataRangeText, 0);\r\n this._renderEndsText(thisGroup, dataRangeText, 1);\r\n this._updateView(true);\r\n this.renderBackground(thisGroup);\r\n this._updateView();\r\n this._enableHoverLinkToSeries();\r\n this._enableHoverLinkFromSeries();\r\n this.positionGroup(thisGroup);\r\n };\r\n ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\r\n if (!dataRangeText) {\r\n return;\r\n }\r\n var text = dataRangeText[1 - endsIndex];\r\n text = text != null ? text + '' : '';\r\n var visualMapModel = this.visualMapModel;\r\n var textGap = visualMapModel.get('textGap');\r\n var itemSize = visualMapModel.itemSize;\r\n var barGroup = this._shapes.mainGroup;\r\n var position = this._applyTransform([\r\n itemSize[0] / 2,\r\n endsIndex === 0 ? -textGap : itemSize[1] + textGap\r\n ], barGroup);\r\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\r\n var orient = this._orient;\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n this.group.add(new ZRText({\r\n style: {\r\n x: position[0],\r\n y: position[1],\r\n verticalAlign: orient === 'horizontal' ? 'middle' : align,\r\n align: orient === 'horizontal' ? align : 'center',\r\n text: text,\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n }));\r\n };\r\n ContinuousView.prototype._renderBar = function (targetGroup) {\r\n var visualMapModel = this.visualMapModel;\r\n var shapes = this._shapes;\r\n var itemSize = visualMapModel.itemSize;\r\n var orient = this._orient;\r\n var useHandle = this._useHandle;\r\n var itemAlign = getItemAlign(visualMapModel, this.api, itemSize);\r\n var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\r\n var gradientBarGroup = new Group();\r\n mainGroup.add(gradientBarGroup);\r\n gradientBarGroup.add(shapes.outOfRange = createPolygon());\r\n gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor$1(this._orient) : null, bind(this._dragHandle, this, 'all', false), bind(this._dragHandle, this, 'all', true)));\r\n gradientBarGroup.setClipPath(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: itemSize[0],\r\n height: itemSize[1],\r\n r: 3\r\n }\r\n }));\r\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\r\n var textSize = mathMax$8(textRect.width, textRect.height);\r\n if (useHandle) {\r\n shapes.handleThumbs = [];\r\n shapes.handleLabels = [];\r\n shapes.handleLabelPoints = [];\r\n this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\r\n this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\r\n }\r\n this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\r\n targetGroup.add(mainGroup);\r\n };\r\n ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\r\n var onDrift = bind(this._dragHandle, this, handleIndex, false);\r\n var onDragEnd = bind(this._dragHandle, this, handleIndex, true);\r\n var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\r\n var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\r\n var cursor = getCursor$1(this._orient);\r\n handleThumb.attr({\r\n cursor: cursor,\r\n draggable: true,\r\n drift: onDrift,\r\n ondragend: onDragEnd,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n }\r\n });\r\n handleThumb.x = itemSize[0] / 2;\r\n handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\r\n handleThumb.setStyle({\r\n strokeNoScale: true,\r\n strokeFirst: true\r\n });\r\n handleThumb.style.lineWidth *= 2;\r\n handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n setAsHighDownDispatcher(handleThumb, true);\r\n mainGroup.add(handleThumb);\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n var handleLabel = new ZRText({\r\n cursor: cursor,\r\n draggable: true,\r\n drift: onDrift,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n ondragend: onDragEnd,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n });\r\n handleLabel.ensureState('blur').style = {\r\n opacity: 0.1\r\n };\r\n handleLabel.stateTransition = { duration: 200 };\r\n this.group.add(handleLabel);\r\n var handleLabelPoint = [handleSize, 0];\r\n var shapes = this._shapes;\r\n shapes.handleThumbs[handleIndex] = handleThumb;\r\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\r\n shapes.handleLabels[handleIndex] = handleLabel;\r\n };\r\n ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\r\n var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\r\n var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\r\n indicator.attr({\r\n cursor: 'move',\r\n invisible: true,\r\n silent: true,\r\n x: itemSize[0] / 2\r\n });\r\n var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\r\n if (indicator instanceof ZRImage) {\r\n var pathStyle = indicator.style;\r\n indicator.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, indicatorStyle));\r\n }\r\n else {\r\n indicator.useStyle(indicatorStyle);\r\n }\r\n mainGroup.add(indicator);\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n var indicatorLabel = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n });\r\n this.group.add(indicatorLabel);\r\n var indicatorLabelPoint = [\r\n (orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2,\r\n 0\r\n ];\r\n var shapes = this._shapes;\r\n shapes.indicator = indicator;\r\n shapes.indicatorLabel = indicatorLabel;\r\n shapes.indicatorLabelPoint = indicatorLabelPoint;\r\n this._firstShowIndicator = true;\r\n };\r\n ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\r\n if (!this._useHandle) {\r\n return;\r\n }\r\n this._dragging = !isEnd;\r\n if (!isEnd) {\r\n var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\r\n this._updateInterval(handleIndex, vertex[1]);\r\n this._hideIndicator();\r\n this._updateView();\r\n }\r\n if (isEnd === !this.visualMapModel.get('realtime')) {\r\n this.api.dispatchAction({\r\n type: 'selectDataRange',\r\n from: this.uid,\r\n visualMapId: this.visualMapModel.id,\r\n selected: this._dataInterval.slice()\r\n });\r\n }\r\n if (isEnd) {\r\n !this._hovering && this._clearHoverLinkToSeries();\r\n }\r\n else if (useHoverLinkOnHandle(this.visualMapModel)) {\r\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\r\n }\r\n };\r\n ContinuousView.prototype._resetInterval = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\r\n var dataExtent = visualMapModel.getExtent();\r\n var sizeExtent = [0, visualMapModel.itemSize[1]];\r\n this._handleEnds = [\r\n linearMap$2(dataInterval[0], dataExtent, sizeExtent, true),\r\n linearMap$2(dataInterval[1], dataExtent, sizeExtent, true)\r\n ];\r\n };\r\n ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\r\n delta = delta || 0;\r\n var visualMapModel = this.visualMapModel;\r\n var handleEnds = this._handleEnds;\r\n var sizeExtent = [0, visualMapModel.itemSize[1]];\r\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\r\n var dataExtent = visualMapModel.getExtent();\r\n this._dataInterval = [\r\n linearMap$2(handleEnds[0], sizeExtent, dataExtent, true),\r\n linearMap$2(handleEnds[1], sizeExtent, dataExtent, true)\r\n ];\r\n };\r\n ContinuousView.prototype._updateView = function (forSketch) {\r\n var visualMapModel = this.visualMapModel;\r\n var dataExtent = visualMapModel.getExtent();\r\n var shapes = this._shapes;\r\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\r\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\r\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\r\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\r\n shapes.inRange\r\n .setStyle({\r\n fill: visualInRange.barColor\r\n })\r\n .setShape('points', visualInRange.barPoints);\r\n shapes.outOfRange\r\n .setStyle({\r\n fill: visualOutOfRange.barColor\r\n })\r\n .setShape('points', visualOutOfRange.barPoints);\r\n this._updateHandle(inRangeHandleEnds, visualInRange);\r\n };\r\n ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\r\n var opts = {\r\n forceState: forceState,\r\n convertOpacityToAlpha: true\r\n };\r\n var colorStops = this._makeColorGradient(dataInterval, opts);\r\n var symbolSizes = [\r\n this.getControllerVisual(dataInterval[0], 'symbolSize', opts),\r\n this.getControllerVisual(dataInterval[1], 'symbolSize', opts)\r\n ];\r\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\r\n return {\r\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\r\n barPoints: barPoints,\r\n handlesColor: [\r\n colorStops[0].color,\r\n colorStops[colorStops.length - 1].color\r\n ]\r\n };\r\n };\r\n ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\r\n var sampleNumber = 100;\r\n var colorStops = [];\r\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\r\n colorStops.push({\r\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\r\n offset: 0\r\n });\r\n for (var i = 1; i < sampleNumber; i++) {\r\n var currValue = dataInterval[0] + step * i;\r\n if (currValue > dataInterval[1]) {\r\n break;\r\n }\r\n colorStops.push({\r\n color: this.getControllerVisual(currValue, 'color', opts),\r\n offset: i / sampleNumber\r\n });\r\n }\r\n colorStops.push({\r\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\r\n offset: 1\r\n });\r\n return colorStops;\r\n };\r\n ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\r\n var itemSize = this.visualMapModel.itemSize;\r\n return [\r\n [itemSize[0] - symbolSizes[0], handleEnds[0]],\r\n [itemSize[0], handleEnds[0]],\r\n [itemSize[0], handleEnds[1]],\r\n [itemSize[0] - symbolSizes[1], handleEnds[1]]\r\n ];\r\n };\r\n ContinuousView.prototype._createBarGroup = function (itemAlign) {\r\n var orient = this._orient;\r\n var inverse = this.visualMapModel.get('inverse');\r\n return new Group((orient === 'horizontal' && !inverse)\r\n ? { scaleX: itemAlign === 'bottom' ? 1 : -1, rotation: Math.PI / 2 }\r\n : (orient === 'horizontal' && inverse)\r\n ? { scaleX: itemAlign === 'bottom' ? -1 : 1, rotation: -Math.PI / 2 }\r\n : (orient === 'vertical' && !inverse)\r\n ? { scaleX: itemAlign === 'left' ? 1 : -1, scaleY: -1 }\r\n : { scaleX: itemAlign === 'left' ? 1 : -1 });\r\n };\r\n ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\r\n if (!this._useHandle) {\r\n return;\r\n }\r\n var shapes = this._shapes;\r\n var visualMapModel = this.visualMapModel;\r\n var handleThumbs = shapes.handleThumbs;\r\n var handleLabels = shapes.handleLabels;\r\n var itemSize = visualMapModel.itemSize;\r\n var dataExtent = visualMapModel.getExtent();\r\n each$i([0, 1], function (handleIndex) {\r\n var handleThumb = handleThumbs[handleIndex];\r\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\r\n handleThumb.y = handleEnds[handleIndex];\r\n var val = linearMap$2(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\r\n var symbolSize = this.getControllerVisual(val, 'symbolSize');\r\n handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\r\n handleThumb.x = itemSize[0] - symbolSize / 2;\r\n var textPoint = applyTransform$1(shapes.handleLabelPoints[handleIndex], getTransform(handleThumb, this.group));\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\r\n verticalAlign: 'middle',\r\n align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\r\n });\r\n }, this);\r\n };\r\n ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\r\n var visualMapModel = this.visualMapModel;\r\n var dataExtent = visualMapModel.getExtent();\r\n var itemSize = visualMapModel.itemSize;\r\n var sizeExtent = [0, itemSize[1]];\r\n var shapes = this._shapes;\r\n var indicator = shapes.indicator;\r\n if (!indicator) {\r\n return;\r\n }\r\n indicator.attr('invisible', false);\r\n var opts = { convertOpacityToAlpha: true };\r\n var color = this.getControllerVisual(cursorValue, 'color', opts);\r\n var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\r\n var y = linearMap$2(cursorValue, dataExtent, sizeExtent, true);\r\n var x = itemSize[0] - symbolSize / 2;\r\n var oldIndicatorPos = { x: indicator.x, y: indicator.y };\r\n indicator.y = y;\r\n indicator.x = x;\r\n var textPoint = applyTransform$1(shapes.indicatorLabelPoint, getTransform(indicator, this.group));\r\n var indicatorLabel = shapes.indicatorLabel;\r\n indicatorLabel.attr('invisible', false);\r\n var align = this._applyTransform('left', shapes.mainGroup);\r\n var orient = this._orient;\r\n var isHorizontal = orient === 'horizontal';\r\n indicatorLabel.setStyle({\r\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\r\n verticalAlign: isHorizontal ? align : 'middle',\r\n align: isHorizontal ? 'center' : align\r\n });\r\n var indicatorNewProps = {\r\n x: x,\r\n y: y,\r\n style: {\r\n fill: color\r\n }\r\n };\r\n var labelNewProps = {\r\n style: {\r\n x: textPoint[0],\r\n y: textPoint[1]\r\n }\r\n };\r\n if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\r\n var animationCfg = {\r\n duration: 100,\r\n easing: 'cubicInOut',\r\n additive: true\r\n };\r\n indicator.x = oldIndicatorPos.x;\r\n indicator.y = oldIndicatorPos.y;\r\n indicator.animateTo(indicatorNewProps, animationCfg);\r\n indicatorLabel.animateTo(labelNewProps, animationCfg);\r\n }\r\n else {\r\n indicator.attr(indicatorNewProps);\r\n indicatorLabel.attr(labelNewProps);\r\n }\r\n this._firstShowIndicator = false;\r\n var handleLabels = this._shapes.handleLabels;\r\n if (handleLabels) {\r\n for (var i = 0; i < handleLabels.length; i++) {\r\n this._api.enterBlur(handleLabels[i]);\r\n }\r\n }\r\n };\r\n ContinuousView.prototype._enableHoverLinkToSeries = function () {\r\n var self = this;\r\n this._shapes.mainGroup\r\n .on('mousemove', function (e) {\r\n self._hovering = true;\r\n if (!self._dragging) {\r\n var itemSize = self.visualMapModel.itemSize;\r\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\r\n pos[1] = mathMin$8(mathMax$8(0, pos[1]), itemSize[1]);\r\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\r\n }\r\n })\r\n .on('mouseout', function () {\r\n self._hovering = false;\r\n !self._dragging && self._clearHoverLinkToSeries();\r\n });\r\n };\r\n ContinuousView.prototype._enableHoverLinkFromSeries = function () {\r\n var zr = this.api.getZr();\r\n if (this.visualMapModel.option.hoverLink) {\r\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\r\n zr.on('mouseout', this._hideIndicator, this);\r\n }\r\n else {\r\n this._clearHoverLinkFromSeries();\r\n }\r\n };\r\n ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\r\n var visualMapModel = this.visualMapModel;\r\n var itemSize = visualMapModel.itemSize;\r\n if (!visualMapModel.option.hoverLink) {\r\n return;\r\n }\r\n var sizeExtent = [0, itemSize[1]];\r\n var dataExtent = visualMapModel.getExtent();\r\n cursorPos = mathMin$8(mathMax$8(sizeExtent[0], cursorPos), sizeExtent[1]);\r\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\r\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\r\n var cursorValue = linearMap$2(cursorPos, sizeExtent, dataExtent, true);\r\n var valueRange = [\r\n linearMap$2(hoverRange[0], sizeExtent, dataExtent, true),\r\n linearMap$2(hoverRange[1], sizeExtent, dataExtent, true)\r\n ];\r\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\r\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\r\n if (hoverOnBar) {\r\n if (valueRange[0] === -Infinity) {\r\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\r\n }\r\n else if (valueRange[1] === Infinity) {\r\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\r\n }\r\n else {\r\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\r\n }\r\n }\r\n var oldBatch = this._hoverLinkDataIndices;\r\n var newBatch = [];\r\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\r\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\r\n }\r\n var resultBatches = compressBatches(oldBatch, newBatch);\r\n this._dispatchHighDown('downplay', makeHighDownBatch(resultBatches[0], visualMapModel));\r\n this._dispatchHighDown('highlight', makeHighDownBatch(resultBatches[1], visualMapModel));\r\n };\r\n ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\r\n var el = e.target;\r\n var visualMapModel = this.visualMapModel;\r\n if (!el || getECData(el).dataIndex == null) {\r\n return;\r\n }\r\n var ecData = getECData(el);\r\n var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n if (!visualMapModel.isTargetSeries(dataModel)) {\r\n return;\r\n }\r\n var data = dataModel.getData(ecData.dataType);\r\n var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\r\n if (!isNaN(value)) {\r\n this._showIndicator(value, value);\r\n }\r\n };\r\n ContinuousView.prototype._hideIndicator = function () {\r\n var shapes = this._shapes;\r\n shapes.indicator && shapes.indicator.attr('invisible', true);\r\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\r\n var handleLabels = this._shapes.handleLabels;\r\n if (handleLabels) {\r\n for (var i = 0; i < handleLabels.length; i++) {\r\n this._api.leaveBlur(handleLabels[i]);\r\n }\r\n }\r\n };\r\n ContinuousView.prototype._clearHoverLinkToSeries = function () {\r\n this._hideIndicator();\r\n var indices = this._hoverLinkDataIndices;\r\n this._dispatchHighDown('downplay', makeHighDownBatch(indices, this.visualMapModel));\r\n indices.length = 0;\r\n };\r\n ContinuousView.prototype._clearHoverLinkFromSeries = function () {\r\n this._hideIndicator();\r\n var zr = this.api.getZr();\r\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\r\n zr.off('mouseout', this._hideIndicator);\r\n };\r\n ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\r\n var transform = getTransform(element, global ? null : this.group);\r\n return isArray(vertex)\r\n ? applyTransform$1(vertex, transform, inverse)\r\n : transformDirection(vertex, transform, inverse);\r\n };\r\n ContinuousView.prototype._dispatchHighDown = function (type, batch) {\r\n batch && batch.length && this.api.dispatchAction({\r\n type: type,\r\n batch: batch\r\n });\r\n };\r\n ContinuousView.prototype.dispose = function () {\r\n this._clearHoverLinkFromSeries();\r\n this._clearHoverLinkToSeries();\r\n };\r\n ContinuousView.prototype.remove = function () {\r\n this._clearHoverLinkFromSeries();\r\n this._clearHoverLinkToSeries();\r\n };\r\n ContinuousView.type = 'visualMap.continuous';\r\n return ContinuousView;\r\n }(VisualMapView));\r\n function createPolygon(points, cursor, onDrift, onDragEnd) {\r\n return new Polygon({\r\n shape: { points: points },\r\n draggable: !!onDrift,\r\n cursor: cursor,\r\n drift: onDrift,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n ondragend: onDragEnd\r\n });\r\n }\r\n function getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\r\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\r\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\r\n if (hoverLinkDataSize) {\r\n halfHoverLinkSize = linearMap$2(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\r\n }\r\n return halfHoverLinkSize;\r\n }\r\n function useHoverLinkOnHandle(visualMapModel) {\r\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\r\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\r\n }\r\n function getCursor$1(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(ContinuousView);\n\n var actionInfo$2 = {\r\n type: 'selectDataRange',\r\n event: 'dataRangeSelected',\r\n update: 'update'\r\n };\r\n registerAction(actionInfo$2, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'visualMap', query: payload }, function (model) {\r\n model.setSelected(payload.selected);\r\n });\r\n });\n\n registerPreprocessor(preprocessor$3);\n\n var PiecewiseModel = (function (_super) {\r\n __extends(PiecewiseModel, _super);\r\n function PiecewiseModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PiecewiseModel.type;\r\n _this._pieceList = [];\r\n return _this;\r\n }\r\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n this.resetExtent();\r\n var mode = this._mode = this._determineMode();\r\n this._pieceList = [];\r\n resetMethods[this._mode].call(this, this._pieceList);\r\n this._resetSelected(newOption, isInit);\r\n var categories = this.option.categories;\r\n this.resetVisual(function (mappingOption, state) {\r\n if (mode === 'categories') {\r\n mappingOption.mappingMethod = 'category';\r\n mappingOption.categories = clone(categories);\r\n }\r\n else {\r\n mappingOption.dataExtent = this.getExtent();\r\n mappingOption.mappingMethod = 'piecewise';\r\n mappingOption.pieceList = map(this._pieceList, function (piece) {\r\n piece = clone(piece);\r\n if (state !== 'inRange') {\r\n piece.visual = null;\r\n }\r\n return piece;\r\n });\r\n }\r\n });\r\n };\r\n PiecewiseModel.prototype.completeVisualOption = function () {\r\n var option = this.option;\r\n var visualTypesInPieces = {};\r\n var visualTypes = VisualMapping.listVisualTypes();\r\n var isCategory = this.isCategory();\r\n each(option.pieces, function (piece) {\r\n each(visualTypes, function (visualType) {\r\n if (piece.hasOwnProperty(visualType)) {\r\n visualTypesInPieces[visualType] = 1;\r\n }\r\n });\r\n });\r\n each(visualTypesInPieces, function (v, visualType) {\r\n var exists = false;\r\n each(this.stateList, function (state) {\r\n exists = exists || has(option, state, visualType)\r\n || has(option.target, state, visualType);\r\n }, this);\r\n !exists && each(this.stateList, function (state) {\r\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\r\n });\r\n }, this);\r\n function has(obj, state, visualType) {\r\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\r\n }\r\n _super.prototype.completeVisualOption.apply(this, arguments);\r\n };\r\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var pieceList = this._pieceList;\r\n var selected = (isInit ? thisOption : newOption).selected || {};\r\n thisOption.selected = selected;\r\n each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n if (!selected.hasOwnProperty(key)) {\r\n selected[key] = true;\r\n }\r\n }, this);\r\n if (thisOption.selectedMode === 'single') {\r\n var hasSel_1 = false;\r\n each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n if (selected[key]) {\r\n hasSel_1\r\n ? (selected[key] = false)\r\n : (hasSel_1 = true);\r\n }\r\n }, this);\r\n }\r\n };\r\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\r\n return this._mode === 'categories'\r\n ? piece.value + '' : piece.index + '';\r\n };\r\n PiecewiseModel.prototype.getPieceList = function () {\r\n return this._pieceList;\r\n };\r\n PiecewiseModel.prototype._determineMode = function () {\r\n var option = this.option;\r\n return option.pieces && option.pieces.length > 0\r\n ? 'pieces'\r\n : this.option.categories\r\n ? 'categories'\r\n : 'splitNumber';\r\n };\r\n PiecewiseModel.prototype.setSelected = function (selected) {\r\n this.option.selected = clone(selected);\r\n };\r\n PiecewiseModel.prototype.getValueState = function (value) {\r\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\r\n return index != null\r\n ? (this.option.selected[this.getSelectedMapKey(this._pieceList[index])]\r\n ? 'inRange' : 'outOfRange')\r\n : 'outOfRange';\r\n };\r\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\r\n var result = [];\r\n var pieceList = this._pieceList;\r\n this.eachTargetSeries(function (seriesModel) {\r\n var dataIndices = [];\r\n var data = seriesModel.getData();\r\n data.each(this.getDataDimension(data), function (value, dataIndex) {\r\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\r\n pIdx === pieceIndex && dataIndices.push(dataIndex);\r\n }, this);\r\n result.push({ seriesId: seriesModel.id, dataIndex: dataIndices });\r\n }, this);\r\n return result;\r\n };\r\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\r\n var representValue;\r\n if (this.isCategory()) {\r\n representValue = piece.value;\r\n }\r\n else {\r\n if (piece.value != null) {\r\n representValue = piece.value;\r\n }\r\n else {\r\n var pieceInterval = piece.interval || [];\r\n representValue = (pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity)\r\n ? 0\r\n : (pieceInterval[0] + pieceInterval[1]) / 2;\r\n }\r\n }\r\n return representValue;\r\n };\r\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\r\n if (this.isCategory()) {\r\n return;\r\n }\r\n var stops = [];\r\n var outerColors = ['', ''];\r\n var visualMapModel = this;\r\n function setStop(interval, valueState) {\r\n var representValue = visualMapModel.getRepresentValue({\r\n interval: interval\r\n });\r\n if (!valueState) {\r\n valueState = visualMapModel.getValueState(representValue);\r\n }\r\n var color = getColorVisual(representValue, valueState);\r\n if (interval[0] === -Infinity) {\r\n outerColors[0] = color;\r\n }\r\n else if (interval[1] === Infinity) {\r\n outerColors[1] = color;\r\n }\r\n else {\r\n stops.push({ value: interval[0], color: color }, { value: interval[1], color: color });\r\n }\r\n }\r\n var pieceList = this._pieceList.slice();\r\n if (!pieceList.length) {\r\n pieceList.push({ interval: [-Infinity, Infinity] });\r\n }\r\n else {\r\n var edge = pieceList[0].interval[0];\r\n edge !== -Infinity && pieceList.unshift({ interval: [-Infinity, edge] });\r\n edge = pieceList[pieceList.length - 1].interval[1];\r\n edge !== Infinity && pieceList.push({ interval: [edge, Infinity] });\r\n }\r\n var curr = -Infinity;\r\n each(pieceList, function (piece) {\r\n var interval = piece.interval;\r\n if (interval) {\r\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\r\n setStop(interval.slice());\r\n curr = interval[1];\r\n }\r\n }, this);\r\n return { stops: stops, outerColors: outerColors };\r\n };\r\n PiecewiseModel.type = 'visualMap.piecewise';\r\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\r\n selected: null,\r\n minOpen: false,\r\n maxOpen: false,\r\n align: 'auto',\r\n itemWidth: 20,\r\n itemHeight: 14,\r\n itemSymbol: 'roundRect',\r\n pieces: null,\r\n categories: null,\r\n splitNumber: 5,\r\n selectedMode: 'multiple',\r\n itemGap: 10,\r\n hoverLink: true\r\n });\r\n return PiecewiseModel;\r\n }(VisualMapModel));\r\n var resetMethods = {\r\n splitNumber: function (outPieceList) {\r\n var thisOption = this.option;\r\n var precision = Math.min(thisOption.precision, 20);\r\n var dataExtent = this.getExtent();\r\n var splitNumber = thisOption.splitNumber;\r\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\r\n thisOption.splitNumber = splitNumber;\r\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\r\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\r\n precision++;\r\n }\r\n thisOption.precision = precision;\r\n splitStep = +splitStep.toFixed(precision);\r\n if (thisOption.minOpen) {\r\n outPieceList.push({\r\n interval: [-Infinity, dataExtent[0]],\r\n close: [0, 0]\r\n });\r\n }\r\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\r\n var max = index === splitNumber - 1 ? dataExtent[1] : (curr + splitStep);\r\n outPieceList.push({\r\n interval: [curr, max],\r\n close: [1, 1]\r\n });\r\n }\r\n if (thisOption.maxOpen) {\r\n outPieceList.push({\r\n interval: [dataExtent[1], Infinity],\r\n close: [0, 0]\r\n });\r\n }\r\n reformIntervals(outPieceList);\r\n each(outPieceList, function (piece, index) {\r\n piece.index = index;\r\n piece.text = this.formatValueText(piece.interval);\r\n }, this);\r\n },\r\n categories: function (outPieceList) {\r\n var thisOption = this.option;\r\n each(thisOption.categories, function (cate) {\r\n outPieceList.push({\r\n text: this.formatValueText(cate, true),\r\n value: cate\r\n });\r\n }, this);\r\n normalizeReverse(thisOption, outPieceList);\r\n },\r\n pieces: function (outPieceList) {\r\n var thisOption = this.option;\r\n each(thisOption.pieces, function (pieceListItem, index) {\r\n if (!isObject(pieceListItem)) {\r\n pieceListItem = { value: pieceListItem };\r\n }\r\n var item = { text: '', index: index };\r\n if (pieceListItem.label != null) {\r\n item.text = pieceListItem.label;\r\n }\r\n if (pieceListItem.hasOwnProperty('value')) {\r\n var value = item.value = pieceListItem.value;\r\n item.interval = [value, value];\r\n item.close = [1, 1];\r\n }\r\n else {\r\n var interval = item.interval = [];\r\n var close_1 = item.close = [0, 0];\r\n var closeList = [1, 0, 1];\r\n var infinityList = [-Infinity, Infinity];\r\n var useMinMax = [];\r\n for (var lg = 0; lg < 2; lg++) {\r\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\r\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\r\n interval[lg] = pieceListItem[names[i]];\r\n close_1[lg] = closeList[i];\r\n useMinMax[lg] = i === 2;\r\n }\r\n interval[lg] == null && (interval[lg] = infinityList[lg]);\r\n }\r\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\r\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\r\n if (__DEV__) {\r\n if (interval[0] > interval[1]) {\r\n console.warn('Piece ' + index + 'is illegal: ' + interval\r\n + ' lower bound should not greater then uppper bound.');\r\n }\r\n }\r\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\r\n item.value = interval[0];\r\n }\r\n }\r\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\r\n outPieceList.push(item);\r\n }, this);\r\n normalizeReverse(thisOption, outPieceList);\r\n reformIntervals(outPieceList);\r\n each(outPieceList, function (piece) {\r\n var close = piece.close;\r\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\r\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\r\n }, this);\r\n }\r\n };\r\n function normalizeReverse(thisOption, pieceList) {\r\n var inverse = thisOption.inverse;\r\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\r\n pieceList.reverse();\r\n }\r\n }\r\n ComponentModel.registerClass(PiecewiseModel);\n\n var PiecewiseVisualMapView = (function (_super) {\r\n __extends(PiecewiseVisualMapView, _super);\r\n function PiecewiseVisualMapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PiecewiseVisualMapView.type;\r\n return _this;\r\n }\r\n PiecewiseVisualMapView.prototype.doRender = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n var visualMapModel = this.visualMapModel;\r\n var textGap = visualMapModel.get('textGap');\r\n var textStyleModel = visualMapModel.textStyleModel;\r\n var textFont = textStyleModel.getFont();\r\n var textFill = textStyleModel.getTextColor();\r\n var itemAlign = this._getItemAlign();\r\n var itemSize = visualMapModel.itemSize;\r\n var viewData = this._getViewData();\r\n var endsText = viewData.endsText;\r\n var showLabel = retrieve(visualMapModel.get('showLabel', true), !endsText);\r\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\r\n each(viewData.viewPieceList, function (item) {\r\n var piece = item.piece;\r\n var itemGroup = new Group();\r\n itemGroup.onclick = bind(this._onItemClick, this, piece);\r\n this._enableHoverLink(itemGroup, item.indexInModelPieceList);\r\n var representValue = visualMapModel.getRepresentValue(piece);\r\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\r\n if (showLabel) {\r\n var visualState = this.visualMapModel.getValueState(representValue);\r\n itemGroup.add(new ZRText({\r\n style: {\r\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\r\n y: itemSize[1] / 2,\r\n text: piece.text,\r\n verticalAlign: 'middle',\r\n align: itemAlign,\r\n font: textFont,\r\n fill: textFill,\r\n opacity: visualState === 'outOfRange' ? 0.5 : 1\r\n }\r\n }));\r\n }\r\n thisGroup.add(itemGroup);\r\n }, this);\r\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\r\n box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\r\n this.renderBackground(thisGroup);\r\n this.positionGroup(thisGroup);\r\n };\r\n PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\r\n var _this = this;\r\n itemGroup\r\n .on('mouseover', function () { return onHoverLink('highlight'); })\r\n .on('mouseout', function () { return onHoverLink('downplay'); });\r\n var onHoverLink = function (method) {\r\n var visualMapModel = _this.visualMapModel;\r\n visualMapModel.option.hoverLink && _this.api.dispatchAction({\r\n type: method,\r\n batch: makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\r\n });\r\n };\r\n };\r\n PiecewiseVisualMapView.prototype._getItemAlign = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var modelOption = visualMapModel.option;\r\n if (modelOption.orient === 'vertical') {\r\n return getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\r\n }\r\n else {\r\n var align = modelOption.align;\r\n if (!align || align === 'auto') {\r\n align = 'left';\r\n }\r\n return align;\r\n }\r\n };\r\n PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\r\n if (!text) {\r\n return;\r\n }\r\n var itemGroup = new Group();\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n itemGroup.add(new ZRText({\r\n style: {\r\n x: showLabel ? (itemAlign === 'right' ? itemSize[0] : 0) : itemSize[0] / 2,\r\n y: itemSize[1] / 2,\r\n verticalAlign: 'middle',\r\n align: showLabel ? itemAlign : 'center',\r\n text: text,\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n }));\r\n group.add(itemGroup);\r\n };\r\n PiecewiseVisualMapView.prototype._getViewData = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var viewPieceList = map(visualMapModel.getPieceList(), function (piece, index) {\r\n return { piece: piece, indexInModelPieceList: index };\r\n });\r\n var endsText = visualMapModel.get('text');\r\n var orient = visualMapModel.get('orient');\r\n var inverse = visualMapModel.get('inverse');\r\n if (orient === 'horizontal' ? inverse : !inverse) {\r\n viewPieceList.reverse();\r\n }\r\n else if (endsText) {\r\n endsText = endsText.slice().reverse();\r\n }\r\n return { viewPieceList: viewPieceList, endsText: endsText };\r\n };\r\n PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\r\n group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\r\n };\r\n PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\r\n var visualMapModel = this.visualMapModel;\r\n var option = visualMapModel.option;\r\n var selected = clone(option.selected);\r\n var newKey = visualMapModel.getSelectedMapKey(piece);\r\n if (option.selectedMode === 'single') {\r\n selected[newKey] = true;\r\n each(selected, function (o, key) {\r\n selected[key] = key === newKey;\r\n });\r\n }\r\n else {\r\n selected[newKey] = !selected[newKey];\r\n }\r\n this.api.dispatchAction({\r\n type: 'selectDataRange',\r\n from: this.uid,\r\n visualMapId: this.visualMapModel.id,\r\n selected: selected\r\n });\r\n };\r\n PiecewiseVisualMapView.type = 'visualMap.piecewise';\r\n return PiecewiseVisualMapView;\r\n }(VisualMapView));\r\n ComponentView.registerClass(PiecewiseVisualMapView);\n\n registerPreprocessor(preprocessor$3);\n\n function createElement(name) {\r\n return document.createElementNS('http://www.w3.org/2000/svg', name);\r\n }\n\n var CMD$4 = PathProxy.CMD;\r\n var NONE = 'none';\r\n var mathRound = Math.round;\r\n var mathSin$3 = Math.sin;\r\n var mathCos$3 = Math.cos;\r\n var PI$9 = Math.PI;\r\n var PI2$8 = Math.PI * 2;\r\n var degree = 180 / PI$9;\r\n var EPSILON$4 = 1e-4;\r\n function round4(val) {\r\n return mathRound(val * 1e4) / 1e4;\r\n }\r\n function isAroundZero$1(val) {\r\n return val < EPSILON$4 && val > -EPSILON$4;\r\n }\r\n function pathHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== NONE;\r\n }\r\n function pathHasStroke(style) {\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== NONE;\r\n }\r\n function reduceNumberString(n, precision) {\r\n return n > 1 ? +n.toFixed(precision) : +n.toPrecision(precision);\r\n }\r\n function setTransform(svgEl, m) {\r\n if (m) {\r\n attr(svgEl, 'transform', 'matrix('\r\n + reduceNumberString(m[0], 3) + ','\r\n + reduceNumberString(m[1], 3) + ','\r\n + reduceNumberString(m[2], 3) + ','\r\n + reduceNumberString(m[3], 3) + ','\r\n + reduceNumberString(m[4], 4) + ','\r\n + reduceNumberString(m[5], 4)\r\n + ')');\r\n }\r\n }\r\n function attr(el, key, val) {\r\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\r\n el.setAttribute(key, val);\r\n }\r\n }\r\n function attrXLink(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\r\n }\r\n function bindStyle(svgEl, style, el) {\r\n var opacity = style.opacity == null ? 1 : style.opacity;\r\n if (pathHasFill(style)) {\r\n var fill = style.fill;\r\n fill = fill === 'transparent' ? NONE : fill;\r\n attr(svgEl, 'fill', fill);\r\n attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\r\n }\r\n else {\r\n attr(svgEl, 'fill', NONE);\r\n }\r\n if (pathHasStroke(style)) {\r\n var stroke = style.stroke;\r\n stroke = stroke === 'transparent' ? NONE : stroke;\r\n attr(svgEl, 'stroke', stroke);\r\n var strokeWidth = style.lineWidth;\r\n var strokeScale_1 = style.strokeNoScale\r\n ? el.getLineScale()\r\n : 1;\r\n attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\r\n attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\r\n attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\r\n var lineDash = style.lineDash;\r\n if (lineDash) {\r\n var lineDashOffset = style.lineDashOffset;\r\n if (strokeScale_1 && strokeScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / strokeScale_1;\r\n });\r\n if (lineDashOffset) {\r\n lineDashOffset /= strokeScale_1;\r\n lineDashOffset = mathRound(lineDashOffset);\r\n }\r\n }\r\n attr(svgEl, 'stroke-dasharray', lineDash.join(','));\r\n attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke-dasharray', '');\r\n }\r\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\r\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\r\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke', NONE);\r\n }\r\n }\r\n function pathDataToString(path) {\r\n if (!path) {\r\n return '';\r\n }\r\n var str = [];\r\n var data = path.data;\r\n var dataLength = path.len();\r\n var x;\r\n var y;\r\n for (var i = 0; i < dataLength;) {\r\n var cmd = data[i++];\r\n var cmdStr = '';\r\n var nData = 0;\r\n switch (cmd) {\r\n case CMD$4.M:\r\n cmdStr = 'M';\r\n nData = 2;\r\n break;\r\n case CMD$4.L:\r\n cmdStr = 'L';\r\n nData = 2;\r\n break;\r\n case CMD$4.Q:\r\n cmdStr = 'Q';\r\n nData = 4;\r\n break;\r\n case CMD$4.C:\r\n cmdStr = 'C';\r\n nData = 6;\r\n break;\r\n case CMD$4.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n var psi = data[i++];\r\n var clockwise = data[i++];\r\n var dThetaPositive = Math.abs(dTheta);\r\n var isCircle = isAroundZero$1(dThetaPositive - PI2$8)\r\n || (clockwise ? dTheta >= PI2$8 : -dTheta >= PI2$8);\r\n var unifiedTheta = dTheta > 0 ? dTheta % PI2$8 : (dTheta % PI2$8 + PI2$8);\r\n var large = false;\r\n if (isCircle) {\r\n large = true;\r\n }\r\n else if (isAroundZero$1(dThetaPositive)) {\r\n large = false;\r\n }\r\n else {\r\n large = (unifiedTheta >= PI$9) === !!clockwise;\r\n }\r\n var x0 = round4(cx + rx * mathCos$3(theta));\r\n var y0 = round4(cy + ry * mathSin$3(theta));\r\n if (isCircle) {\r\n if (clockwise) {\r\n dTheta = PI2$8 - 1e-4;\r\n }\r\n else {\r\n dTheta = -PI2$8 + 1e-4;\r\n }\r\n large = true;\r\n if (i === 9) {\r\n str.push('M', x0, y0);\r\n }\r\n }\r\n x = round4(cx + rx * mathCos$3(theta + dTheta));\r\n y = round4(cy + ry * mathSin$3(theta + dTheta));\r\n if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\r\n return '';\r\n }\r\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\r\n break;\r\n case CMD$4.Z:\r\n cmdStr = 'Z';\r\n break;\r\n case CMD$4.R:\r\n x = round4(data[i++]);\r\n y = round4(data[i++]);\r\n var w = round4(data[i++]);\r\n var h = round4(data[i++]);\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n return '';\r\n }\r\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\r\n break;\r\n }\r\n cmdStr && str.push(cmdStr);\r\n for (var j = 0; j < nData; j++) {\r\n var val = round4(data[i++]);\r\n if (isNaN(val)) {\r\n return '';\r\n }\r\n str.push(val);\r\n }\r\n }\r\n return str.join(' ');\r\n }\r\n function wrapSVGBuildPath(el) {\r\n if (!el.__svgBuildPath) {\r\n var oldBuildPath_1 = el.buildPath;\r\n el.__svgBuildPath = el.buildPath = function (path, shape, inBundle) {\r\n oldBuildPath_1.call(this, el.path, shape, inBundle);\r\n el.__svgPathStr = pathDataToString(el.path);\r\n };\r\n if (!el.shapeChanged()) {\r\n el.__svgPathStr = pathDataToString(el.path);\r\n }\r\n }\r\n }\r\n var svgPath = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('path');\r\n el.__svgEl = svgEl;\r\n }\r\n if (!el.path) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path;\r\n wrapSVGBuildPath(el);\r\n if (el.shapeChanged()) {\r\n path.beginPath();\r\n el.buildPath(path, el.shape);\r\n el.pathUpdated();\r\n }\r\n attr(svgEl, 'd', el.__svgPathStr);\r\n bindStyle(svgEl, style, el);\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var svgImage = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var image = style.image;\r\n if (image instanceof HTMLImageElement) {\r\n var src = image.src;\r\n image = src;\r\n }\r\n if (!image) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var dw = style.width;\r\n var dh = style.height;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('image');\r\n el.__svgEl = svgEl;\r\n }\r\n if (image !== el.__imageSrc) {\r\n attrXLink(svgEl, 'href', image);\r\n el.__imageSrc = image;\r\n }\r\n attr(svgEl, 'width', dw + '');\r\n attr(svgEl, 'height', dh + '');\r\n attr(svgEl, 'x', x + '');\r\n attr(svgEl, 'y', y + '');\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var TEXT_ALIGN_TO_ANCHOR = {\r\n left: 'start',\r\n right: 'end',\r\n center: 'middle',\r\n middle: 'middle'\r\n };\r\n function adjustTextY$1(y, lineHeight, textBaseline) {\r\n if (textBaseline === 'top') {\r\n y += lineHeight / 2;\r\n }\r\n else if (textBaseline === 'bottom') {\r\n y -= lineHeight / 2;\r\n }\r\n return y;\r\n }\r\n var svgText = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (!text) {\r\n return;\r\n }\r\n var textSvgEl = el.__svgEl;\r\n if (!textSvgEl) {\r\n textSvgEl = createElement('text');\r\n el.__svgEl = textSvgEl;\r\n }\r\n var font = style.font || DEFAULT_FONT;\r\n var textSvgElStyle = textSvgEl.style;\r\n textSvgElStyle.font = font;\r\n textSvgEl.textContent = text;\r\n bindStyle(textSvgEl, style, el);\r\n setTransform(textSvgEl, el.transform);\r\n var x = style.x || 0;\r\n var y = adjustTextY$1(style.y || 0, getLineHeight(font), style.textBaseline);\r\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\r\n || style.textAlign;\r\n attr(textSvgEl, 'dominant-baseline', 'middle');\r\n attr(textSvgEl, 'text-anchor', textAlign);\r\n attr(textSvgEl, 'x', x + '');\r\n attr(textSvgEl, 'y', y + '');\r\n }\r\n };\n\n function diff(oldArr, newArr, equals) {\r\n if (!equals) {\r\n equals = function (a, b) {\r\n return a === b;\r\n };\r\n }\r\n oldArr = oldArr.slice();\r\n newArr = newArr.slice();\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n var indices = [];\r\n for (var i = 0; i < newArr.length; i++) {\r\n indices.push(i);\r\n }\r\n return [{\r\n indices: indices,\r\n count: newArr.length,\r\n added: false,\r\n removed: false\r\n }];\r\n }\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath;\r\n var addPath = bestPath[diagonalPath - 1];\r\n var removePath = bestPath[diagonalPath + 1];\r\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n var canAdd = addPath && addPath.newPos + 1 < newLen;\r\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\r\n basePath = clonePath(removePath);\r\n pushComponent(basePath.components, false, true);\r\n }\r\n else {\r\n basePath = addPath;\r\n basePath.newPos++;\r\n pushComponent(basePath.components, true, false);\r\n }\r\n oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\r\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n return buildValues(basePath.components);\r\n }\r\n else {\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n editLength++;\r\n }\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n function extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var newPos = basePath.newPos;\r\n var oldPos = newPos - diagonalPath;\r\n var commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n if (commonCount) {\r\n basePath.components.push({\r\n count: commonCount,\r\n added: false,\r\n removed: false,\r\n indices: []\r\n });\r\n }\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n }\r\n function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n components[components.length - 1] = {\r\n count: last.count + 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n };\r\n }\r\n else {\r\n components.push({\r\n count: 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n });\r\n }\r\n }\r\n function buildValues(components) {\r\n var componentPos = 0;\r\n var componentLen = components.length;\r\n var newPos = 0;\r\n var oldPos = 0;\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n var indices = [];\r\n for (var i = newPos; i < newPos + component.count; i++) {\r\n indices.push(i);\r\n }\r\n component.indices = indices;\r\n newPos += component.count;\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n }\r\n else {\r\n for (var i = oldPos; i < oldPos + component.count; i++) {\r\n component.indices.push(i);\r\n }\r\n oldPos += component.count;\r\n }\r\n }\r\n return components;\r\n }\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n function arrayDiff (oldArr, newArr, equal) {\r\n return diff(oldArr, newArr, equal);\r\n }\n\n var MARK_UNUSED = '0';\r\n var MARK_USED = '1';\r\n var Definable = (function () {\r\n function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\r\n this.nextId = 0;\r\n this._domName = '_dom';\r\n this.createElement = createElement;\r\n this._zrId = zrId;\r\n this._svgRoot = svgRoot;\r\n this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\r\n this._markLabel = markLabel;\r\n if (domName) {\r\n this._domName = domName;\r\n }\r\n }\r\n Definable.prototype.getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgRoot;\r\n var defs = this._svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n Definable.prototype.doUpdate = function (target, onUpdate) {\r\n if (!target) {\r\n return;\r\n }\r\n var defs = this.getDefs(false);\r\n if (target[this._domName] && defs.contains(target[this._domName])) {\r\n if (typeof onUpdate === 'function') {\r\n onUpdate(target);\r\n }\r\n }\r\n else {\r\n var dom = this.add(target);\r\n if (dom) {\r\n target[this._domName] = dom;\r\n }\r\n }\r\n };\r\n Definable.prototype.add = function (target) {\r\n return null;\r\n };\r\n Definable.prototype.addDom = function (dom) {\r\n var defs = this.getDefs(true);\r\n defs.appendChild(dom);\r\n };\r\n Definable.prototype.removeDom = function (target) {\r\n var defs = this.getDefs(false);\r\n if (defs && target[this._domName]) {\r\n defs.removeChild(target[this._domName]);\r\n target[this._domName] = null;\r\n }\r\n };\r\n Definable.prototype.getDoms = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return [];\r\n }\r\n var doms = [];\r\n each(this._tagNames, function (tagName) {\r\n var tags = defs.getElementsByTagName(tagName);\r\n doms = doms.concat([].slice.call(tags));\r\n });\r\n return doms;\r\n };\r\n Definable.prototype.markAllUnused = function () {\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n dom[that._markLabel] = MARK_UNUSED;\r\n });\r\n };\r\n Definable.prototype.markDomUsed = function (dom) {\r\n if (dom) {\r\n dom[this._markLabel] = MARK_USED;\r\n }\r\n };\r\n Definable.prototype.removeUnused = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n if (dom[that._markLabel] !== MARK_USED) {\r\n defs.removeChild(dom);\r\n }\r\n });\r\n };\r\n Definable.prototype.getSvgProxy = function (displayable) {\r\n if (displayable instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (displayable instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (displayable instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n };\r\n Definable.prototype.getSvgElement = function (displayable) {\r\n return displayable.__svgEl;\r\n };\r\n return Definable;\r\n }());\n\n function isLinearGradient(value) {\r\n return value.type === 'linear';\r\n }\r\n function isRadialGradient(value) {\r\n return value.type === 'radial';\r\n }\r\n var GradientManager = (function (_super) {\r\n __extends(GradientManager, _super);\r\n function GradientManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\r\n }\r\n GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var value = displayable.style[fillOrStroke];\r\n if (value\r\n && (value.type === 'linear'\r\n || value.type === 'radial')) {\r\n var gradient = value;\r\n var defs = that_1.getDefs(true);\r\n var dom = void 0;\r\n if (gradient.__dom) {\r\n dom = gradient.__dom;\r\n if (!defs.contains(gradient.__dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(gradient);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n GradientManager.prototype.add = function (gradient) {\r\n var dom;\r\n if (isLinearGradient(gradient)) {\r\n dom = this.createElement('linearGradient');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom = this.createElement('radialGradient');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return null;\r\n }\r\n gradient.id = gradient.id || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-gradient-' + gradient.id);\r\n this.updateDom(gradient, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n GradientManager.prototype.update = function (gradient) {\r\n var that = this;\r\n this.doUpdate(gradient, function () {\r\n var type = gradient.type;\r\n var tagName = gradient.__dom.tagName;\r\n if (type === 'linear' && tagName === 'linearGradient'\r\n || type === 'radial' && tagName === 'radialGradient') {\r\n that.updateDom(gradient, gradient.__dom);\r\n }\r\n else {\r\n that.removeDom(gradient);\r\n that.add(gradient);\r\n }\r\n });\r\n };\r\n GradientManager.prototype.updateDom = function (gradient, dom) {\r\n if (isLinearGradient(gradient)) {\r\n dom.setAttribute('x1', gradient.x + '');\r\n dom.setAttribute('y1', gradient.y + '');\r\n dom.setAttribute('x2', gradient.x2 + '');\r\n dom.setAttribute('y2', gradient.y2 + '');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom.setAttribute('cx', gradient.x + '');\r\n dom.setAttribute('cy', gradient.y + '');\r\n dom.setAttribute('r', gradient.r + '');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return;\r\n }\r\n if (gradient.global) {\r\n dom.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n }\r\n else {\r\n dom.setAttribute('gradientUnits', 'objectBoundingBox');\r\n }\r\n dom.innerHTML = '';\r\n var colors = gradient.colorStops;\r\n for (var i = 0, len = colors.length; i < len; ++i) {\r\n var stop_1 = this.createElement('stop');\r\n stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\r\n var color$1 = colors[i].color;\r\n if (color$1.indexOf('rgba') > -1) {\r\n var opacity = parse(color$1)[3];\r\n var hex = toHex(color$1);\r\n stop_1.setAttribute('stop-color', '#' + hex);\r\n stop_1.setAttribute('stop-opacity', opacity + '');\r\n }\r\n else {\r\n stop_1.setAttribute('stop-color', colors[i].color);\r\n }\r\n dom.appendChild(stop_1);\r\n }\r\n gradient.__dom = dom;\r\n };\r\n GradientManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n var gradient = displayable.style.fill;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n gradient = displayable.style.stroke;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n }\r\n };\r\n return GradientManager;\r\n }(Definable));\n\n var ClippathManager = (function (_super) {\r\n __extends(ClippathManager, _super);\r\n function ClippathManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\r\n }\r\n ClippathManager.prototype.update = function (displayable) {\r\n var svgEl = this.getSvgElement(displayable);\r\n if (svgEl) {\r\n this.updateDom(svgEl, displayable.__clipPaths, false);\r\n }\r\n this.markUsed(displayable);\r\n };\r\n ClippathManager.prototype.updateDom = function (parentEl, clipPaths, isText) {\r\n if (clipPaths && clipPaths.length > 0) {\r\n var defs = this.getDefs(true);\r\n var clipPath = clipPaths[0];\r\n var clipPathEl = void 0;\r\n var id = void 0;\r\n var domKey = isText ? '_textDom' : '_dom';\r\n if (clipPath[domKey]) {\r\n id = clipPath[domKey].getAttribute('id');\r\n clipPathEl = clipPath[domKey];\r\n if (!defs.contains(clipPathEl)) {\r\n defs.appendChild(clipPathEl);\r\n }\r\n }\r\n else {\r\n id = 'zr' + this._zrId + '-clip-' + this.nextId;\r\n ++this.nextId;\r\n clipPathEl = this.createElement('clipPath');\r\n clipPathEl.setAttribute('id', id);\r\n defs.appendChild(clipPathEl);\r\n clipPath[domKey] = clipPathEl;\r\n }\r\n var svgProxy = this.getSvgProxy(clipPath);\r\n if (clipPath.transform\r\n && clipPath.parent.invTransform\r\n && !isText) {\r\n var transform = Array.prototype.slice.call(clipPath.transform);\r\n mul$1(clipPath.transform, clipPath.parent.invTransform, clipPath.transform);\r\n svgProxy.brush(clipPath);\r\n clipPath.transform = transform;\r\n }\r\n else {\r\n svgProxy.brush(clipPath);\r\n }\r\n var pathEl = this.getSvgElement(clipPath);\r\n clipPathEl.innerHTML = '';\r\n clipPathEl.appendChild(pathEl.cloneNode());\r\n parentEl.setAttribute('clip-path', 'url(#' + id + ')');\r\n if (clipPaths.length > 1) {\r\n this.updateDom(clipPathEl, clipPaths.slice(1), isText);\r\n }\r\n }\r\n else {\r\n if (parentEl) {\r\n parentEl.setAttribute('clip-path', 'none');\r\n }\r\n }\r\n };\r\n ClippathManager.prototype.markUsed = function (displayable) {\r\n var _this = this;\r\n if (displayable.__clipPaths) {\r\n each(displayable.__clipPaths, function (clipPath) {\r\n if (clipPath._dom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._dom);\r\n }\r\n if (clipPath._textDom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._textDom);\r\n }\r\n });\r\n }\r\n };\r\n return ClippathManager;\r\n }(Definable));\n\n var ShadowManager = (function (_super) {\r\n __extends(ShadowManager, _super);\r\n function ShadowManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\r\n }\r\n ShadowManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && hasShadow(displayable.style)) {\r\n var dom = void 0;\r\n if (displayable._shadowDom) {\r\n dom = displayable._shadowDom;\r\n var defs = this.getDefs(true);\r\n if (!defs.contains(displayable._shadowDom)) {\r\n this.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = this.add(displayable);\r\n }\r\n this.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.style.filter = 'url(#' + id + ')';\r\n }\r\n };\r\n ShadowManager.prototype.add = function (displayable) {\r\n var dom = this.createElement('filter');\r\n displayable._shadowDomId = displayable._shadowDomId || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-shadow-' + displayable._shadowDomId);\r\n this.updateDom(displayable, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n ShadowManager.prototype.update = function (svgElement, displayable) {\r\n var style = displayable.style;\r\n if (hasShadow(style)) {\r\n var that_1 = this;\r\n _super.prototype.doUpdate.call(this, displayable, function () {\r\n that_1.updateDom(displayable, displayable._shadowDom);\r\n });\r\n }\r\n else {\r\n this.remove(svgElement, displayable);\r\n }\r\n };\r\n ShadowManager.prototype.remove = function (svgElement, displayable) {\r\n if (displayable._shadowDomId != null) {\r\n this.removeDom(svgElement);\r\n svgElement.style.filter = '';\r\n }\r\n };\r\n ShadowManager.prototype.updateDom = function (displayable, dom) {\r\n var domChildArr = dom.getElementsByTagName('feDropShadow');\r\n var domChild = domChildArr.length\r\n ? domChildArr[0]\r\n : this.createElement('feDropShadow');\r\n var style = displayable.style;\r\n var scaleX = displayable.scaleX || 1;\r\n var scaleY = displayable.scaleY || 1;\r\n var offsetX;\r\n var offsetY;\r\n var blur;\r\n var color;\r\n if (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY) {\r\n offsetX = style.shadowOffsetX || 0;\r\n offsetY = style.shadowOffsetY || 0;\r\n blur = style.shadowBlur;\r\n color = style.shadowColor;\r\n }\r\n else if (style.textShadowBlur) {\r\n offsetX = style.textShadowOffsetX || 0;\r\n offsetY = style.textShadowOffsetY || 0;\r\n blur = style.textShadowBlur;\r\n color = style.textShadowColor;\r\n }\r\n else {\r\n this.removeDom(dom);\r\n return;\r\n }\r\n domChild.setAttribute('dx', offsetX / scaleX + '');\r\n domChild.setAttribute('dy', offsetY / scaleY + '');\r\n domChild.setAttribute('flood-color', color);\r\n var stdDx = blur / 2 / scaleX;\r\n var stdDy = blur / 2 / scaleY;\r\n var stdDeviation = stdDx + ' ' + stdDy;\r\n domChild.setAttribute('stdDeviation', stdDeviation);\r\n dom.setAttribute('x', '-100%');\r\n dom.setAttribute('y', '-100%');\r\n dom.setAttribute('width', Math.ceil(blur / 2 * 200) + '%');\r\n dom.setAttribute('height', Math.ceil(blur / 2 * 200) + '%');\r\n dom.appendChild(domChild);\r\n displayable._shadowDom = dom;\r\n };\r\n ShadowManager.prototype.markUsed = function (displayable) {\r\n if (displayable._shadowDom) {\r\n _super.prototype.markDomUsed.call(this, displayable._shadowDom);\r\n }\r\n };\r\n return ShadowManager;\r\n }(Definable));\r\n function hasShadow(style) {\r\n return style\r\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\r\n }\n\n function parseInt10$1(val) {\r\n return parseInt(val, 10);\r\n }\r\n function getSvgProxy(el) {\r\n if (el instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (el instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (el instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n }\r\n function checkParentAvailable(parent, child) {\r\n return child && parent && child.parentNode !== parent;\r\n }\r\n function insertAfter(parent, child, prevSibling) {\r\n if (checkParentAvailable(parent, child) && prevSibling) {\r\n var nextSibling = prevSibling.nextSibling;\r\n nextSibling ? parent.insertBefore(child, nextSibling)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function prepend(parent, child) {\r\n if (checkParentAvailable(parent, child)) {\r\n var firstChild = parent.firstChild;\r\n firstChild ? parent.insertBefore(child, firstChild)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function remove(parent, child) {\r\n if (child && parent && child.parentNode === parent) {\r\n parent.removeChild(child);\r\n }\r\n }\r\n function getSvgElement(displayable) {\r\n return displayable.__svgEl;\r\n }\r\n var SVGPainter = (function () {\r\n function SVGPainter(root, storage, opts, zrId) {\r\n this.type = 'svg';\r\n this.refreshHover = createMethodNotSupport('refreshHover');\r\n this.pathToImage = createMethodNotSupport('pathToImage');\r\n this.configLayer = createMethodNotSupport('configLayer');\r\n this.root = root;\r\n this.storage = storage;\r\n this._opts = opts = extend({}, opts || {});\r\n var svgDom = createElement('svg');\r\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svgDom.setAttribute('version', '1.1');\r\n svgDom.setAttribute('baseProfile', 'full');\r\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\r\n var bgRoot = createElement('g');\r\n svgDom.appendChild(bgRoot);\r\n var svgRoot = createElement('g');\r\n svgDom.appendChild(svgRoot);\r\n this._gradientManager = new GradientManager(zrId, svgRoot);\r\n this._clipPathManager = new ClippathManager(zrId, svgRoot);\r\n this._shadowManager = new ShadowManager(zrId, svgRoot);\r\n var viewport = document.createElement('div');\r\n viewport.style.cssText = 'overflow:hidden;position:relative';\r\n this._svgDom = svgDom;\r\n this._svgRoot = svgRoot;\r\n this._backgroundRoot = bgRoot;\r\n this._viewport = viewport;\r\n root.appendChild(viewport);\r\n viewport.appendChild(svgDom);\r\n this.resize(opts.width, opts.height);\r\n this._visibleList = [];\r\n }\r\n SVGPainter.prototype.getType = function () {\r\n return 'svg';\r\n };\r\n SVGPainter.prototype.getViewportRoot = function () {\r\n return this._viewport;\r\n };\r\n SVGPainter.prototype.getSvgDom = function () {\r\n return this._svgDom;\r\n };\r\n SVGPainter.prototype.getSvgRoot = function () {\r\n return this._svgRoot;\r\n };\r\n SVGPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n SVGPainter.prototype.refresh = function () {\r\n var list = this.storage.getDisplayList(true);\r\n this._paintList(list);\r\n };\r\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this._backgroundRoot && this._backgroundNode) {\r\n this._backgroundRoot.removeChild(this._backgroundNode);\r\n }\r\n var bgNode = createElement('rect');\r\n bgNode.setAttribute('width', this.getWidth());\r\n bgNode.setAttribute('height', this.getHeight());\r\n bgNode.setAttribute('x', 0);\r\n bgNode.setAttribute('y', 0);\r\n bgNode.setAttribute('id', 0);\r\n bgNode.style.fill = backgroundColor;\r\n this._backgroundRoot.appendChild(bgNode);\r\n this._backgroundNode = bgNode;\r\n };\r\n SVGPainter.prototype._paintList = function (list) {\r\n this._gradientManager.markAllUnused();\r\n this._clipPathManager.markAllUnused();\r\n this._shadowManager.markAllUnused();\r\n var svgRoot = this._svgRoot;\r\n var visibleList = this._visibleList;\r\n var listLen = list.length;\r\n var newVisibleList = [];\r\n for (var i = 0; i < listLen; i++) {\r\n var displayable = list[i];\r\n var svgProxy = getSvgProxy(displayable);\r\n var svgElement = getSvgElement(displayable);\r\n if (!displayable.invisible) {\r\n if (displayable.__dirty || !svgElement) {\r\n svgProxy && svgProxy.brush(displayable);\r\n this._clipPathManager.update(displayable);\r\n if (displayable.style) {\r\n this._gradientManager\r\n .update(displayable.style.fill);\r\n this._gradientManager\r\n .update(displayable.style.stroke);\r\n this._shadowManager\r\n .update(svgElement, displayable);\r\n }\r\n displayable.__dirty = 0;\r\n }\r\n if (getSvgElement(displayable)) {\r\n newVisibleList.push(displayable);\r\n }\r\n }\r\n }\r\n var diff = arrayDiff(visibleList, newVisibleList);\r\n var prevSvgElement;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = visibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n remove(svgRoot, svgElement);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.added) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n prevSvgElement\r\n ? insertAfter(svgRoot, svgElement, prevSvgElement)\r\n : prepend(svgRoot, svgElement);\r\n prevSvgElement = svgElement || prevSvgElement;\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n }\r\n }\r\n else if (!item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n this._gradientManager.markUsed(displayable);\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager.markUsed(displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n prevSvgElement = svgElement\r\n || prevSvgElement;\r\n }\r\n }\r\n }\r\n this._gradientManager.removeUnused();\r\n this._clipPathManager.removeUnused();\r\n this._shadowManager.removeUnused();\r\n this._visibleList = newVisibleList;\r\n };\r\n SVGPainter.prototype._getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgDom;\r\n var defs = svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n SVGPainter.prototype.resize = function (width, height) {\r\n var viewport = this._viewport;\r\n viewport.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n viewport.style.display = '';\r\n if (this._width !== width || this._height !== height) {\r\n this._width = width;\r\n this._height = height;\r\n var viewportStyle = viewport.style;\r\n viewportStyle.width = width + 'px';\r\n viewportStyle.height = height + 'px';\r\n var svgRoot = this._svgDom;\r\n svgRoot.setAttribute('width', width + '');\r\n svgRoot.setAttribute('height', height + '');\r\n }\r\n if (this._backgroundNode) {\r\n this._backgroundNode.setAttribute('width', width);\r\n this._backgroundNode.setAttribute('height', height);\r\n }\r\n };\r\n SVGPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n SVGPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n SVGPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10$1(stl[wh]) || parseInt10$1(root.style[wh]))\r\n - (parseInt10$1(stl[plt]) || 0)\r\n - (parseInt10$1(stl[prb]) || 0)) | 0;\r\n };\r\n SVGPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this._svgRoot\r\n = this._backgroundRoot\r\n = this._svgDom\r\n = this._backgroundNode\r\n = this._viewport\r\n = this.storage\r\n = null;\r\n };\r\n SVGPainter.prototype.clear = function () {\r\n if (this._viewport) {\r\n this.root.removeChild(this._viewport);\r\n }\r\n };\r\n SVGPainter.prototype.toDataURL = function () {\r\n this.refresh();\r\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/>\\n\\r<'));\r\n return 'data:image/svg+xml;charset=UTF-8,' + html;\r\n };\r\n return SVGPainter;\r\n }());\r\n function createMethodNotSupport(method) {\r\n return function () {\r\n logError('In SVG mode painter not support method \"' + method + '\"');\r\n };\r\n }\n\n registerPainter('svg', SVGPainter);\n\n exports.Axis = Axis;\n exports.List = List;\n exports.Model = Model;\n exports.PRIORITY = PRIORITY;\n exports.color = color;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose$1;\n exports.env = env;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.format = format$1;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.graphic = graphic$1;\n exports.helper = helper;\n exports.init = init$1;\n exports.matrix = matrix;\n exports.number = number;\n exports.parseGeoJSON = parseGeoJson;\n exports.parseGeoJson = parseGeoJson$1;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.throttle = throttle;\n exports.time = time;\n exports.util = ecUtil;\n exports.vector = vector;\n exports.version = version$1;\n exports.zrender = zrender;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file +{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__spreadArrays","s","i","il","arguments","length","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","apply","clone","source","result","typeStr","call","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","mergeAll","targetAndSources","extend","assign","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","find","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","concatArray","newArray","offset","createObject","proto","properties","StyleCtor","hasOwn","own","noop","zrUtil","freeze","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","lengthSquare","mul","div","dot","scale","normalize","distance","dist","distanceSquare","distSquare","negate","lerp","t","applyTransform","m","min","max","vector","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","_calcOut","transformLocalCoord","elFrom","elTarget","inX","inY","transformCoordWithViewport","el","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut$1","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","isMiddleOrRightButtonOnMouseUpDown","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","start","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","sort","remaining","ts","minRun","force","invalidZErrorLogged","logInvalidZError","warn","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","traverse","update","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","beforeUpdate","__dirty","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","updateTransform","childrenRef","children","child","markRedraw","disp","__clipPaths","isNaN","textGuide","getTextGuideLine","textEl","getTextContent","addRoot","delRoot","idx","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","cos","PI","sinusoidalOut","sin","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","m1","m2","lerpNumber","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","iv","substr","op","ep","fname","params","split","alpha","pop","hsla2rgba","hsla","rgba","rgba2hsla","R","G","B","vMin","vMax","L","H","S","deltaR","deltaG","deltaB","lift","color","level","colorArr","stringify","toHex","fastLerp","normalizedValue","colors","leftIndex","floor","rightIndex","ceil","leftColor","rightColor","dv","fastMapToColor","lerp$1","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","lum","backgroundLum","random","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","needsAnimate","getAdditiveTrack","_additiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_doneList","_onframeList","_clip","_target","_loop","_additiveAnimators","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","_getAdditiveTrack","lastFinalKf","during","callback","isPaused","_doneCallback","doneList","trackName","additiveAnimators","getTrack","forceAnimate","clip","stillHasAdditiveAnimator","animation","addClip","forwardToLast","removeClip","done","getClip","stopTracks","tracksKeys","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","addAnimator","animator","removeAnimator","Date","getTime","nextClip","finished","_startLoop","animate","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","scope","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","_globalHandlerScope","isPointerCapturing","globalHandlerScope","create$1","identity","copy$1","mul$1","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","ct","scale$1","vx","vy","invert","clone$2","matrix","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","setLocalTransform","atan2","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","Point","other","equal","scalar","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","screen","deviceXDPI","logicalXDPI","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","updateInnerText","forceUpdate","_textContent","textConfig","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","previousTextContent","removeTextContent","cfg","setTextGuideLine","guideLine","removeTextGuideLine","refreshHover","refresh","dirty","inHover","textContent","updateDuringAnimation","wakeUp","stopAnimation","leftAnimators","animateTo","animationProps","animateFrom","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","count","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","existsAnimatorsOnSameTarget","revertedSource","reversedTarget","sourceClone","STYLE_MAGIC_KEY","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","rectContain","coord","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","_getAnimationStyleProps","mergedStyle","dispProto","invisible","culling","incremental","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","Q","Z","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","PathProxy","notSaveData","_xi","_yi","_x0","_y0","_saveData","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathData","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","Path","shape","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","buildPath","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","isZeroArea","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","SVGPath","isPathProxy","createPathOptions","pathProxy","innerOpts","createFromString","extendFromString","defaultOpts","mergePath","pathEls","pathList","pathEl","pathBundle","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpRect","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","ZRImage","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","DILIMITER_REG","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","nodeParsers","SVGParser","_defs","_root","_isDefine","_isText","xml","viewBox","getAttribute","parseAttributes","_parseNode","viewBoxRect","viewBoxTransform","viewBoxArr","makeViewBoxTransform","ignoreViewBox","elRoot","ignoreRootClip","xmlNode","parentGroup","defineParsers","def","_parseText","_textX","_textY","inheritStyle","textStyle","fontSize","fontFamily","fontStyle","fontWeight","internalField","circle","line","ellipse","pointsStr","pointsArr","parsePoints","polygon","polyline","img","gradient","_parseGradientColorStops","offsetStr","stopColor","__inheritedStyle","pointsString","attributesMap","defs","onlyInlineStyle","zrStyle","parseTransformAttribute","parseStyleAttribute","svgAttrName","attrValue","getPaint","urlRegex","urlMatch","url","transformRegex","transformOps_1","valueArr","styleRegex","styleList","styleRegResult","exec","parseSVG","CompoundPath","_updatePathDirty","paths","dirtyPath","IncrementalDisplayble","notClear","_displayables","_temporaryDisplayables","_cursor","getCursor","clearDisplaybles","clearTemporalDisplayables","addDisplayable","notPersistent","addDisplayables","displayables","getDisplayables","getTemporalDisplayables","eachPendingDisplayable","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","createOrUpdateImage","cbPayload","__zrImageSrc","pendingWrap","isImageReady","pending","Image","onload","onerror","imageOnLoad","__cachedImgObj","STYLE_REG","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","preparedOpts","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","contentWidth","ellipsisWidth","textLine","subLength","estimateLength","charCode","charCodeAt","parsePlainText","overflow","padding","truncate","calculatedLineHeight","lineHeight","truncateLineOverflow","lineOverflow","lines","wrapText","contentHeight","lineCount","outerHeight","outerWidth","truncateMinChar","maxWidth","RichTextToken","RichTextLine","tokens","RichTextContentBlock","parseRichText","contentBlock","topWidth","topHeight","wrapInfo","accumWidth","breakAll","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","outer","token","tokenStyle","styleName","rich","textPadding","paddingH","tokenHeight","styleTokenWidth","tokenWidthNotSpecified","percentWidth","textBackgroundColor","bgImg","remainTruncWidth","block","isEmptyStr","newLine","strLines","linesWidths","tokenPadding","tokenPaddingH","outerWidth_1","parsePercent$1","isLineHolder","tokensLen","isLatin","ch","code","breakCharMap","isWordBreakChar","isBreakAll","lastAccumWidth","currentWord","currentWordWidth","chWidth","inWord","DEFAULT_RICH_TEXT_COLOR","DEFAULT_STROKE_LINE_WIDTH","DEFAULT_TEXT_ANIMATION_PROPS","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","lineXLeft","lineXRight","_placeToken","parentBgColorDrawn","textWidth","textHeight","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","shadowStyle","makeFont","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","clockwise","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$2","IsogonShape","Isogon","dStep","deg","RingShape","r0","Ring","sin$1","cos$1","radian","RoseShape","Rose","SectorShape","Sector","PI$3","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","dim","proj","proj_1","useVML","painterCtors","instances","delInstance","totalLum","ZRender","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","handerProxy","getViewportRoot","_flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","flush","triggerRendered","refreshHoverImmediately","addHover","removeHover","clearHover","clearAnimation","pathToImage","eventHandler","disposeAll","getInstance","registerPainter","zrender","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","asc","getPrecision","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","quantile","ascArr","reformIntervals","littleThan","curr","currClose","close_1","close","lg","numericToNumber","valFloat","isNumeric","number","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","validateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","item","idNum","obj1","obj2","key1","key2","idOrName","isValidIdOrName","isNameSpecified","componentModel","makeInternalComponentId","idSuffix","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","compressBatches","batchA","batchB","mapA","mapB","makeMap","mapToArray","sourceBatch","otherMap","seriesId","dataIndices","dataIndex","otherDataIndices","lenj","isData","queryDataIndex","payload","dataIndexInside","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","defaultMainType","queryOptionMap","parsedKey","queryType","includeMainTypes","queryOption","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","MULTIPLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getTooltipRenderMode","renderModeOption","groupData","getKey","buckets","TYPE_DELIMITER","IS_CONTAINER","IS_EXTENDED_CLASS","parseClassType","componentType","main","typeArr","checkClassType","isExtendedClass","clz","enableClassExtend","rootClz","mandatoryMethods","$constructor","method","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","color$1","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","defaultValue","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","ecIns","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","styleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getterType","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","arg","JSON","toISOString","err","throwError","EMPTY_OBJ","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","normal","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","targetElEmphasisState","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","inheritColor","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","richTextStyle","setTokenTextStyle","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","fillColor","strokeColor","baseline","disableBox","getFont","gTextStyleModel","PATH_COLOR","tmpRichText","TextStyleMixin","getTextColor","isEmphasis","getTextRect","LINE_STYLE_KEY_MAP","getLineStyle","LineStyleMixin","getLineDash","lineType","dotSize","dashSize","ITEM_STYLE_KEY_MAP","getItemStyle","ItemStyleMixin","getBorderLineDash","Model","rest","mergeOption","_doGet","parsePath","hasPath","pathFinal","resolveParentPath","isEmpty","restoreData","isAnimationEnabled","pathArr","base","getUID","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","componentTypeMain","enableTopologicalTravel","entity","dependencyGetter","topologicalTravel","targetNameList","fullNameList","makeDepndencyGraph","graph","stack","noEntryList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","originalDeps","successor","removeEdgeAndAdd","removeEdge","succComponentType","entryCount","thisItem","createDependencyGraphItem","availableDeps","getAvailableDependencies","dependentName","predecessor","thatItem","dep","inheritDefaultOption","superOption","subOption","langEN","month","monthAbbr","dayOfWeek","dayOfWeekAbbr","legend","selector","toolbox","brush","title","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","q","dateGetterName","hoursGetterName","minutesGetterName","secondsGetterName","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","mathMax$3","mathMin$3","_customShapeMap","innerLabel","extendShape","extendPathFromString","extendPath","registerShape","ShapeClass","getShapeClass","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","boundingRect","aspect","mergePath$1","pathRect","subPixelOptimizeLine$1","param","subPixelOptimizeRect$1","subPixelOptimize$1","animateOrSetProps","animationType","animatableModel","isFrom","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","fadeOutDisplayable","removeElementWithFadeOut","doRemove","isElementRemoved","animateOrSetLabel","labelModel","defaultTextGetter","valueAnimationEnabled","precisionOption","precision_1","interpolateValues_1","rawValues_1","getRawValue","isRawValueNumber_1","info","getDimensionInfo","host_1","nextValue","interpolated","startValues","labelText","updateLabel","initLabel","getTransform","ancestor","mat","applyTransform$1","invert$1","transformDirection","direction","hBase","vBase","vertex","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","clipPointsByRect","clipRectByRect","targetRect","createIcon","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","graphic","Text","IncrementalDisplayable","addCommas","parts","toCamelCase","upperCaseFirst","group1","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","concatTooltipHtml","html","dontEncodeHtml","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","isTimeAxis","axisType","axisValue","axisIndex","$vars","alias","formatTplSimple","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","capitalFirst","windowOpen","link","blank","open","opener","href","format$1","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getAvailableSize","positionInfo","containerRect","containerHeight","getLayoutRect","verticalMargin","horizontalMargin","positionElement","hv","boundingMode","sizeCalculable","hvIdx","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","ctor","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","globalDefault","gradientColor","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","useUTC","inner$1","getNearestColorPalette","requestColorNum","paletteNum","ColorPaletteMixin","clearColorPalette","colorIdx","colorNameMap","getColorFromPalette","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","Source","sourceFormat","seriesLayoutBy","startIndex","dimensionsDefine","dimensionsDetectCount","encodeDefine","metaRawOption","seriesDataToSource","BE_ORDINAL","Must","Might","Not","innerGlobalModel","detectSourceFormat","resetSourceDefaulter","datasetMap","createSource","sourceData","thisMetaRawOption","dimInfo","determineSourceDimensions","sourceHeader","dimensions","makeEncodeDefine","inheritSourceMetaRawOption","thisNew","cloneSourceShallow","normalizeDimensionsOption","dataArrayRows","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","nameMap","displayName","exist","maxLoop","firstIndex","dimensions_1","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","dimName","dimType","dimDefItem","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","registerInternalOptionCreator","creator","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeReplaceMergeInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","seriesIndices","mergeTheme","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","api","coordinateSystems","creater","getCoordinateSystems","register","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","timelineOpt","timeline","media","singleMedia","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","toObj","compatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","toolboxOpt","feature","featureOpt","tooltip","set$1","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","backwardCompat","seriesType","clipOverflow","clockWise","label","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","order","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","valueParserMap","getRawValueParser","ORDER_COMPARISON_OP_MAP","lval","rval","lte","gt","gte","FilterOrderComparator","errMsg","_opFn","_rvalFloat","evaluate","SortOrderComparator","incomparable","isDesc","_resultLT","_incomparable","lvalTypeof","rvalTypeof","lvalFloat","rvalFloat","lvalNotNumeric","rvalNotNumeric","lvalIsStr","rvalIsStr","FilterEqualityComparator","isEq","_rval","_isEQ","_rvalTypeof","eqResult","createFilterComparator","ExternalSource","getDimensionInfoAll","getRawHeaderItem","retrieveItemValue","rawItem","convertDataValue","rawVal","createExternalSource","sourceHeaderCount","extSource","dimsByName","dimDef","dimDefExt","rawValueGetter","externalTransformMap","registerExternalTransform","externalTransform","typeParsed","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","transOption","isFinal","applySingleDataTransform","upSourceList","transType","resultList","print","printStrArr","datasetIndex","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSource","upSourceMgr","_createSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","upSourceList_1","upMgr","doThrow","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","inner$2","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","getRawData","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","isRichText","formatArrayValue","vertially","dimItem","tooltipDims","setEachItem","otherDims","markName","dimHead","dimHeadStr","valStr","formatSingleValue","mapDimensionsAll","tooltipDimLen","isValueArr","visualDrawType","formattedValue","colorEl","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","tmpArr","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","CHANGABLE_METHODS","wrapMethod","onDataSelfChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$3","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","ORIGIN_METHOD","RATE","THROTTLE_TYPE","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","createOrUpdate","fnAttr","rate","throttleType","originFn","lastThrottleType","lastRate","inner$4","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","colorCallback","setVisual","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","ariaModel","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","getConfig","seriesLabels_1","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","RegExp","userConfig","PI$4","loadingDefault","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","overallProgress","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","splitLine","splitArea","minorSplitLine","crossStyle","subtextStyle","iconStyle","brushStyle","handleStyle","moveHandleStyle","fillerColor","dataBackground","selectedDataBackground","controlStyle","dayLabel","monthLabel","yearLabel","timeAxis","logAxis","valueAxis","categoryAxis","symbol","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","symbolSize","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","setItemVisualFromData","PI2$5","CMD$3","DEFAULT_SEARCH_SPACE","getCandidateAnchor","outPt","outDir","projectPointToArc","projectPointToLine","limitToEnds","dx1","dy1","lineLen","projectedLen","projectPointToRect","tmpPt","nearestPointOnRect","pt","nearestPointOnPath","minDist","pt0","pt1","pt2","dir2","updateLabelLinePoints","labelLineModel","labelLine","labelGuideConfig","textGuideLineConfig","searchSpace","candidates","anchorPoint","anchor","targetTransform","targetInversedTransform","candidate","limitTurnAngle","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","tan","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","newAngle","setLabelLineState","isNormal","styleObj","buildLabelLinePath","moveLen","midPoint0","midPoint2","midPoint1","setLabelLineStyle","labelIgnoreNormal","stateShow","isLabelIgnored","getLabelLineStatesModels","labelLineName","prepareLayoutList","defaultAttr","localRect","isAxisAligned","minMargin","globalRect","obb","priority","layoutOption","computedLayoutOption","axisAligned","shiftLayout","xyDim","sizeDim","minBound","maxBound","balanceShift","lastPos","adjusted","totalShifts","shiftList","first","last","minGap","maxGap","updateMinMaxGap","squeezeGaps","takeBoundsGap","squeezeWhenBailout","gapThisBound","gapOtherBound","moveDir","moveFromMaxGap","remained","maxSqeezePercent","gaps","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","labelAttr","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","__image","createPattern","repeat","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","setTransform","viewRect","isDisplayableCulled","isClipPathChanged","prevClipPaths","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","isLast","viewWidth","viewHeight","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","i_1","len_1","returnFalse","createDom","newDom","newDomStyle","Layer","motionBlur","lastFrameAlpha","virtual","__used","__drawIndex","__startIndex","__endIndex","domStyle","onselectstart","webkitUserSelect","userSelect","webkitTapHighlightColor","domBack","ctxBack","getElementCount","initContext","createBackBuffer","clearAll","clearColor","haveMotionBLur","clearRect","clearColorGradientOrPattern","__canvasGradient","__painter","fillRect","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","parseInt10","isLayerValid","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","_opts","_singleCanvas","rootStyle","innerHTML","zlevelList","layers","_width","_getSize","_height","_domRoot","rootCanvas","mainLayer","getType","isSingleCanvas","getViewportRootOffset","viewportRoot","paintAll","_redrawId","_paintList","_paintHoverList","_hoverlayer","getLayer","getHoverLayer","redrawId","_updateLayerStatus","_doPaintList","needsRefreshHover","_compositeManually","self_1","eachBuiltinLayer","layerList","zi","useTimer","now","startTime","firstEl","dTime","draw","insertLayer","layersMap","prevLayer","prevDom","insertBefore","eachLayer","getLayers","updatePrevLayer","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","removeChild","display","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","ctx_1","renderToCanvas","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","canvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","assert$1","each$3","isFunction$1","isObject$2","version$1","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_BRUSH","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","__ECHARTS__DEFAULT__RENDERER__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","getZr","notMerge","lazyUpdate","setTheme","getDevicePixelRatio","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","top_1","right_1","bottom_1","canvasList_1","dpr_1","instances$1","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","statusChanged","newObj","pendingActions","getDispatcher","dispatcher","dirtyList","updateZ","updateStates","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","oldStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","echartsProto","one","wrapped","args2","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","connect","disConnect","disconnect","dispose$1","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","_add","_update","_remove","execute","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","keyArr","keyGetterName","existence","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","otherDim","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","DataDimensionInfo","isObject$3","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getRawValueFromStore","getIndicesCtor","prepareChunks","getRawIndexWithoutIndices","getRawIndexWithIndices","normalizeDimensions","validateDimensions","cloneListForMapAndSample","cloneDimStore","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","chunkSize","dimLen","rawExtent","originalChunkCount","emptyDataItem","sourceIdx","chunkIndex","chunkOffset","dimRawExtent","dimensionInfoMap","idList","nameRepeatCount","nameDimIdx","_nameDimIdx","itemId","_idDimIdx","dimStorage","nameDim","nameDimChunk","getIndices","newIndices","thisCount","buffer","chunkStore","dimStore","_getFast","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","dimExtent","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","mapArray","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","dimension","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","name_2","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","excludeDimensions","allDimensions","originalStorage","originalDimStore","newDimStore","cloneChunk","originalChunk","childECData","thisECData","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","getExtent","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","OrdinalMeta","_needCollect","needCollect","_deduplication","deduplication","createByAxisModel","dedplication","getOrdinal","category","_getOrCreateMap","roundNumber","intervalScaleNiceTicks","splitNumber","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","dataNum","expandSize","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","getLayoutOnAxis","baseAxis","axisKey","bandWidth","getBandWidth","stackId","widthAndOffsets","doCalBarWidthAndOffset","offsetCenter","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cartesian","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","axisExtent","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","size","valueDim","baseDim","stacked","isValueAxisH","isHorizontal","valueAxisStart","getValueAxisStart","baseValue","baseCoord","dataToPoint","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","toGlobalCoord","dataToCoord","bisect","TimeScale","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","tickValue","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","getNeedCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","getCategories","boundaryGap","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","AxisModelCommonMixin","getCoordSysModel","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","createList","dataStack$1","createScale","mixinAxisModelCommonMethods","helper","EPSILON$3","isAroundEqual$1","contain$2","Region","geometries","cp","exterior","loopGeo","interiors","transformTo","newRegion","decode","json","UTF8Encoding","jsonCompressed","encodeScale","UTF8Scale","geometry","coordinates","decodePolygon","encodeOffsets","coordinate","c2","prevX","prevY","parseGeoJson","nameProperty","featureObj","region","inner$5","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","makeCategoryLabelsActually","labels","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","formattedLabel","rawLabel","cache","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","containData","fixExtentWithBands","coordToData","pointToData","getTicksCoords","getTickModel","ticksCoords","tickVal","alignWithLabel","fixOnBandTicksCoords","getMinorTicksCoords","minorTickModel","minorTicksCoords","getViewLabels","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","parseGeoJson$1","ecUtil","GRAPHIC_KEYS","graphic$1","RELATIONAL_EXPRESSION_OP_ALIAS_MAP","RegExpEvaluator","rVal","condValue","_condVal","lVal","ConstConditionInternal","AndConditionInternal","OrConditionInternal","NotConditionInternal","RelationalConditionInternal","needParse","valueParser","getValue","tarValRaw","valueGetterParam","tarValParsed","subCondList","parseOption","exprOption","getters","isObjectNotArray","and","parseAndOrOption","or","not","parseNotOption","parseRelationalOption","subOptionArr","prepareGetValue","exprKeys","parserName","keyRaw","valueGetterAttrMap","condValueRaw","condValueParsed","evaluator","ConditionalExpressionParsed","_cond","parseConditionalExpression","filterTransform","dimLoose","dimIdx","resultData","sampleLog","sortTransform","orderExprList","orderDefList","orderExpr","errMsg_1","errMsg_2","comparator","headerPlaceholder","item0","item1","orderDef","LineSeriesModel","legendHoverLink","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","getDefaultLabel","interpolatedValues","labelDims","vals","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","setSymbolScale","emphasisState","fadeOut","keepLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","newIdx","symbolEl","oldIdx","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","valueAxisDim","baseDataOffset","stackResultDim","dataDimsForPoint","getStackedOnPoint","dataCoordInfo","stackedData","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","idxAdd","idxMinus","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","scaleAndAdd$1","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawNonMono","drawMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","ECPolylineShape","ECPolyline","ECPolygonShape","ECPolygon","stackedOnPoints","bbox","stackedOnBBox","stackedOnSmooth","createGridClipPath","hasAnimation","getArea","createPolarClipPath","sectorArea","createClipPath","isPointsSame","points1","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","createLineClipPath","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolyline","_newPolygon","_stackedOnPoints","_points","_updateAnimation","lineJoin","shouldBolderOnEmphasis","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","layoutPoints","isLargeRender","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","axisTick","axisLabel","showMinLabel","showMaxLabel","primary","logBase","axisDefault","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","CartesianAxisModel","extraOption","categorySortInfo","PI$5","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labelRotation","rawCategoryData","itemLabelModel","rawCategoryItem","collect","axesInfo","seriesInvolved","coordSysAxesInfo","coordSysMap","collectAxesInfo","collectSeriesInfo","globalTooltipModel","globalAxisPointerModel","linksOption","linkGroups","axisPointerEnabled","coordSysKey","makeKey","axesInfoInCoordSys","coordSysModel","baseTooltipModel","getAxes","saveTooltipAxisInfo","getTooltipAxes","triggerAxis","cross","tooltipAxes","baseAxes","otherAxes","fromTooltip","triggerTooltip","axisPointerModel","axisPointerShow","isHandleTrigger","makeAxisPointerModel","snap","involveSeries","axisInfo","useHandle","linkGroup","groupIndex","getLinkGroupIndex","mapper","tooltipAxisPointerModel","volatileOption","field","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","fixValue","getAxisInfo","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$6","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","condVal","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","addAxis","cartesian2DDimensions","Cartesian2D","axisX","axisY","toLocalCoord","clampData","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","borderType","realtimeSort","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","isCoordinateSystemType","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$4","mathMin$4","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","removeOnRenderedListener","_updateDrawMode","coordinateSystemType","isReorder","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","isHorizontalOrRadial","animationModel","axis2DModel","_initSort","_onRendered","orderMap","_updateSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","__dataIndex","animateProperty","isRadial","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","hasLabelRotate","minShowLabelRadian","setNotShow","labelLineLen","labelLineLen2","midAngle","isLabelInside","notShowLabel","PiePiece","firstCreate","_updateLabel","labelTextEmphasisState","labelHoverModel","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$6","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels","ScatterSeriesModel","BOOST_SIZE_THRESHOLD","LargeSymbolPathShape","LargeSymbolPath","symbolProxy","symbolProxyShape","canBoost","softClipShape","findDataIndex","LargeSymbolDraw","_incremental","_setCommon","endIndex","byteOffset","_clearIncremental","isIncremental","extrudeShadow","ecData_1","ScatterView","_updateSymbolDraw","_getClipShape","clipArea","IndicatorAxis","radiusExtent","Radar","radarModel","_indicatorAxes","getIndicatorModels","indicatorModel","indicatorAxis","getIndicatorAxes","indicatorIndex","coordToPoint","minRadianDiff","closestAxis","closestAxisIdx","viewSize","indicatorAxes","radarSeries","increaseInterval","fixedMin","fixedMax","nicedSplitNumber","pixel","radarList","valueAxisDefault","defaultsShow","RadarModel","showName","nameFormatter","indicatorModels","indicatorOpt","iNameTextStyle","innerIndicatorOpt","indName","_indicatorModels","indicator","axisBuilderAttrs$1","RadarView","_buildAxes","_buildSplitLineAndArea","axisBuilders","showSplitLine","showSplitArea","splitLineColors","splitLineColorsArr","splitAreaColorsArr","splitLines","splitAreas","getColorIndex","areaOrLine","areaOrLineColorList","ticksRadius","realSplitNumber_1","axesTicksPoints","prevPoints","RadarSeriesModel","getTooltipPosition","data_1","radarIndex","normalizeSymbolSize","RadarView$1","createSymbol$1","updateSymbols","oldPoints","symbolGroup","__dimIdx","getInitialPoints","itemGroup","polygonIgnore","stateIgnore","itemHoverStyle","pathEmphasisState","radarLayout","isValidPoint","getValueMissingPoint","firstPoint","backwardCompat$1","polarOptArr","polarNotRadar_1","polarOpt","polarIndex","geoCoord","points$1","fixNanhai","coordsOffsetMap","fixTextCoord","coordFix","geoCoordMap","fixGeoCoord","points$2","fixDiaoyuIsland","inner$7","geoJSONLoader","load","mapRecord","parsed","regionName","specialArea","getBoundingRect$1","regionRect","inner$8","geoSVGLoader","originRoot","buildGraphic","makeGraphic","hostKey","rootMap","originRootHostKey","removeGraphic","svgWidth","svgHeight","loaders","geoSourceManager","regionsMap","nameCoordMap","mapRecords","singleSource","results","mapNotExistsError","MapSeries","needsDrawMap","seriesGroup","getRegion","dataNameMap","toAppendNames","getMapType","getHostGeoModel","geoIndex","getRegionModel","seriesNames","otherIndex","originalData","setZoom","setCenter","aspectScale","showLegendSymbol","boundingCoords","scaleLimit","areaColor","ATTR","take","resourceKey","userKey","getStore","release","uKey","isTaken","RoamController","mousedownHandler","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","controlType","_opt","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","_dragging","isPinching","_pinching","setPointerChecker","pointerChecker","isAvailableBehavior","oldX","oldY","newX","newY","shouldZoom","shouldMove","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","scrollDelta","controller","behaviorToCheck","contollerEvent","settings","updateViewOnPan","controllerHost","updateViewOnZoom","zoomDelta","zoomX","zoomY","zoomLimit","newZoom","zoomMin","zoomMax","zoomScale","IRRELEVANT_EXCLUDES","onIrrelevantElement","targetCoordSysModel","getFixedItemStyle","MapDraw","_controller","_controllerHost","_regionsGroup","mapOrGeoModel","fromView","isGeo","mapSeries","_updateBackground","regionsGroup","transformInfo","getTransformInfo","isFirstDraw","targetScaleX","targetScaleY","roamTransform","isVisualEncodedByVisualMap","regionGroup","compoundPath","regionModel","itemStyleModel","emphasisItemStyleModel","blurItemStyleModel","selectItemStyleModel","rawScaleX","rawScaleY","rawX","rawY","transformPoint","interior","points_1","showLabel","isDataNaN","centerPt","regionModel_1","groupRegions","__regions","_updateController","_updateMapSelectHandler","_mapName","getZoom","makeActionBase","_mouseDownFlag","getViewRectAfterRoam","mapDraw","MapView","mapModel","_mapDraw","_renderSymbols","originalDataIndex","fullData","mainSeries","fullIndex_1","updateCenterAndZoom","previousZoom","getCenter","fixX","fixY","v2ApplyTransform","View","_roamTransformable","_rawTransformable","setViewRect","_viewRect","rawTransform","_updateTransform","centerCoord","_center","_updateCenterAndZoom","_zoom","getDefaultCenter","rawRect","getRoamTransform","rawTransformMatrix","defaultCenter","roamTransformable","rawTransformable","_rawTransform","noRoam","getCoordSys","Geo","invertLongitute","_nameCoordMap","_regionsMap","_invertLongitute","containCoord","getRegionByCoord","addGeoCoord","getGeoCoord","getCoordSys$1","geoModel","resizeGeo","leftTop","rightBottom","useCenterAndSize","boxLayoutOption","setGeoCoords","GeoCreator","geoList","mapModelGroupBySeries","nameMapList","singleMapSeries","getFilledRegions","originRegionArr","regionsArr","geoCreator","mapSymbolLayout","processedMapType","mapSymbolOffsets","subMapSeries","dataStatistics","datas","statisticType","mapKey","mapDataStatistic","seriesGroups","hostGeoModel","seriesList","inner$9","linkList","datasAttr","linkAll","transferInjection","cloneShallowInjection","changeInjection","isMainData","linkSingle","struct","structAttr","TreeNode","hostTree","depth","viewChildren","isExpand","isRemoved","eachNode","suppressVisitSub","updateDepthAndHeight","getNodeById","contains","getAncestors","includeSelf","getAncestorsIndices","currNode","getDescendantIndices","childNode","levelModel","getLevelModel","levelModels","isAncestorOf","isDescendantOf","Tree","levelOptions","_nodes","levelDefine","getNodeByDataIndex","clearLayouts","createTree","dataRoot","treeOptions","beforeLink","listData","dimMax","buildHierarchy","dataNode","addChild","TreeSeriesModel","leavesModel","nodeData","treeDepth","expandAndCollapse","expandTreeDepth","initialTreeDepth","collapsed","getOrient","realRoot","edgeShape","edgeForkPosition","roam","nodeScaleRatio","curveness","init$2","inRoot","hierNode","defaultAncestor","prelim","modifier","change","thread","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","apportion","secondWalk","nodeX","defaultSeparation","radialCoordinate","getViewRect$1","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","nodeInLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","nextRight","nextLeft","moveSubtree","nextAncestor","wl","wr","node1","node2","TreeEdgeShape","parentPoint","childPoints","TreePath","childLen","firstChildPos","lastChildPos","forkDim","forkPosition","tmpPoint","TreeView","_mainGroup","layoutInfo","_updateViewCoordSys","symbolNeedsDraw$1","updateNode","removeNode","_nodeScaleRatio","_updateNodeAndLinkScale","oldMin","_min","oldMax","_max","viewCoordSys","nodeScale","_getNodeGlobalScale","groupZoom","roamZoom","virtualRoot","sourceSymbolEl","sourceLayout","sourceOldLayout","__radialOldRawX","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","rootLayout","length_1","isLeft","normalLabelModel","labelRotateRadian","focusDataIndices","drawEdge","__edge","parentEl","curvature","getEdgeShape","childLayout","sourceEdge","layoutOpt","radialCoor1","radialCoor2","radialCoor3","radialCoor4","eachAfter","eachBefore","treeLayout","commonLayout","separation$1","tx_1","kx_1","ky_1","coorX_1","coorY_1","finalCoor","orient_1","treeVisual","retrieveTargetInfo","validPayloadTypes","targetNode","targetNodeId","getPathToRoot","aboveViewRoot","viewRoot","viewPath","wrapTreePathInfo","treePathInfo","nodeDataIndex","TreemapSeriesModel","completeTreeValue","setDefault","resetViewRoot","setLayoutInfo","mapIdToIndex","idIndexMap","_idIndexMap","_idIndexMapCount","getViewRoot","_viewRoot","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","nodeClick","emptyItemWidth","upperLabel","colorAlpha","colorSaturation","gapWidth","borderColorSaturation","visualDimension","visualMin","visualMax","colorMappingBy","visibleMin","childrenVisibleMin","childValue","thisValue","globalColorList","hasColorDefine","modelColor","level0","TEXT_PADDING","ITEM_GAP","ARRAY_LENGTH","Breadcrumb","containerGroup","onSelect","thisGroup","normalStyleModel","layoutParam","totalWidth","renderList","_prepare","_renderContent","itemWidth","lastX","availableSize","itemNode","makeItemPoints","onclick","packEventData","itemHeight","selfType","createWrap","elExistsMap","doneCallback","Group$1","Rect$1","DRAG_THRESHOLD","PATH_LABEL_NOAMAL","PATH_UPPERLABEL_NORMAL","Z_BASE","Z_BG","Z_CONTENT","getStateItemStyle","getItemStyleNormal","inner$a","TreemapView","_state","createStorage","_oldTree","thisStorage","reRoot","rootNodeGroup","nodeGroup","_giveContainerGroup","renderResult","_doRender","_doAnimation","renderFinally","_resetController","_renderBreadcrumb","_containerGroup","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","doRenderNode","thisNode","oldNode","renderNode","dualTravel","willDeleteEls","clearStorage","thisViewChildren","oldViewChildren","sameTree","processNode","storageName","delEls","willDelete","els","animationWrap","innerStore","nodeWidth","nodeHeight","targetX","targetY","oldShape","fadein","_onPan","_onZoom","_clearController","rootRect","mouseX","mouseY","findTarget","isLeafRoot","_rootToNode","_zoomToNode","linkTarget","_breadcrumb","background","thisLayout","nodeModel","isInView","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","upperHeight","isParent","itemStyleNormalModel","itemStyleEmphasisModel","itemStyleBlurModel","itemStyleSelectModel","giveGraphic","isAboveViewRoot","bg","renderBackground","upperLabelHeight","renderContent","useUpperLabel","processInvisible","visualBorderColor","selectStyle","upperLabelWidth","prepareText","upperLabelRect","iconChar","isShow","addDrillDownIcon","textEmphasisState","lasts","prepareAnimationWhenHasOld","calculateZ","prepareAnimationWhenNoOld","lastCfg","parentOldX","parentOldY","parentOldBg","zInLevel","zb","noop$1","actionTypes","i$1","handleRootToNode","originViewRoot","each$4","isObject$4","CATEGORY_DEFAULT_VISUAL_INDEX","VisualMapping","mappingMethod","_normalizeData","normalizers","visualHandler","applyVisual","getColorMapper","_normalizedToVisual","normalizeVisualRange","preprocessForPiecewise","preprocessForSpecifiedCategory","mapValueToVisual","normalized","getNormalizer","listVisualTypes","isValidType","eachVisual","mapVisual","isPrimary","newVisual","newVal","retrieveVisuals","hasVisual","prepareVisualTypes","visualTypes","types_1","type1","type2","dependsOn","visualType1","visualType2","findPieceIndex","pieceList","findClosestWhenOutside","possibleI","pieceValue","updatePossible","piece","newAbs","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","parsedVisual","piecewise","getSpecifiedVisual","fixed","doMapFixed","colorHue","makePartialColorVisualHandler","colorLightness","createNormalizedToNumericVisual","getter","setter","symbolCfg","doMapToArray","hasSpecialVisual","originIndex","categoryMap","cate","visualArr_1","setVisualToOption","visualArr","doNotNeedPair","applyValue","colorChannel","sourceExtent","pieceIndex","ITEM_STYLE_NORMAL","inner$b","treemapVisual","seriesItemStyleModel","levelItemStyles","travelTree","designatedVisual","viewRootAncestors","nodeLayout","nodeItemStyleModel","levelItemStyle","visuals","buildVisuals","thisNodeColor","calculateColor","calculateBorderColor","mapping_1","buildVisualMapping","childVisual","visualName","getValueVisualDefine","rangeVisual","getRangeVisual","mapping","drColorMappingBy","childVisuals","mappingType","mathMax$5","mathMin$5","retrieveValue","each$5","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","treemapLayout","seriesOption","viewAbovePath","rootSize","estimateRootSize","sort_1","viewRootLayout_1","area","squarify","treeRoot","calculateRootPosition","prunning","hideChildren","halfGapWidth","getUpperLabelHeight","layoutOffset","layoutOffsetUpper","totalArea","initChildren","rowFixedLength","best","score","worst","orderBy","overLeafDepth","sort$1","statistic","filterByThreshold","orderedChildren","deletePoint","ratio","areaMax","areaMin","squareArea","idx0WhenH","idx1WhenH","xy","rowOtherLength","rowLen","wh1","remain","modWH","wh0","defaultSize","viewArea","currNodeValue","defaultPosition","targetCenter","clipRect","nodeInViewAbovePath","childClipRect","generateNodeKey","Graph","directed","_nodesMap","_edgesMap","_directed","isDirected","addNode","nodesMap","GraphNode","hostGraph","getNodeByIndex","addEdge","n1","n2","edgesMap","GraphEdge","outEdges","inEdges","getEdgeByIndex","getEdge","eachEdge","breadthFirstTraverse","startNode","edgeType","__visited","queue","currentNode","otherNode","degree","inDegree","outDegree","getAdjacentDataIndices","adjacentEdge","createGraphDataProxyMixin","hostName","dataName","getGraphicEl","createGraphFromNodeEdge","linkNameList","validEdges","linkCount","coordSysCtor","GraphSeriesModel","getCategoriesData","_categoriesData","_updateCategoriesData","categoriesModels","_categoriesModels","categoryIdx","categoryModel","oldGetModel","newGetModel","newPathArr","getGraph","getEdgeData","sourceName","htmlStr","categoriesData","circular","rotateLabel","initLayout","repulsion","gravity","friction","edgeLength","layoutAnimation","edgeSymbol","edgeSymbolSize","edgeLabel","straightLineProto","bezierCurveProto","StraightLineShape","CurveShape","isStraightLine","ECLinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","lineData","symbolSizeArr","createLine","setLinePoints","Line$1","_createLine","_updateCommonStl","getLinePath","blurLineStyle","selectLineStyle","lineState","lineStateStyle","stateStyle","labelNormalModel","__align","__verticalAlign","__position","__labelDistance","linePath","symbolFrom","symbolTo","invScale","fromPos","toPos","tangent","distanceX","distanceY","halfPercent","LineDraw","LineCtor","_LineCtor","lineDraw","oldLineData","_lineData","makeSeriesScope$1","_doUpdate","isEffectObject","lineNeedsDraw","newLineData","isPointNaN","pts","getNodeGlobalScale","v3","v2DistSquare","mathAbs$1","intersectCurveCircle","curvePoints","radiusSquare","nextDiff","adjustEdge","tmp0","quadraticSubdivide$1","pts2","fromSymbol","toSymbol","__original","originalPoints","isViewCoordSys","GraphView","_lineDraw","_firstRender","groupNewProp","_layoutTimeout","forceLayout","_startForceLayoutIteration","warmUp","_layouting","setFixed","setUnfixed","circularRotateLabel","categoryFilter","graphSeries","categoryNames","categoryVisual","paletteScope","categoryNameIdxMap","symbolVisualList","symbolVisual","categoryStyle","visualList","normalize$2","edgeVisual","nodeStyle","simpleLayout","simpleLayoutEdge","simpleLayout$1","PI$6","_symbolRadiansHalf","circularLayout","basedOn","_layoutNodesBasedOn","x12","y12","unitAngle","radianHalf","sumRadian","symbolRadianHalf","halfRemainRadian","circularLayout$1","scaleAndAdd$2","inNodes","pp","initialFriction","beforeStepCallback","afterStepCallback","beforeStep","afterStep","v12","nLen","ignoreForceLayout","repFact","rep","forceLayout$1","preservedPoints_1","preservedPoints","graph_1","nodeData_1","forceModel","nodeDataExtent_1","edgeDataExtent_1","repulsionArr_1","edgeLengthArr_1","nodes_1","edgeModel","forceInstance","getViewRect$2","createView","coordSysType","positions","bbWidth","bbHeight","GaugeSeriesModel","PointerShape","PointerPath","parsePosition","formatLabel","PI2$7","GaugeView","colorList","posInfo","_renderMain","axisLineModel","angleRangeSpan","prevEndAngle","axisLineWidth","showAxis","getColor","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","autoColor","tickLine","valueExtent","angleExtent","pointerModel","titleModel","detailModel","FunnelSeriesModel","minSize","funnelAlign","opacityAccessPath","FunnelPiece","FunnelView","funnelPiece","getViewRect$3","getSortedIndices","isAscending","labelLayout$1","funnelLayout","sizeExtent","getLinePoints","offY","parallelPreprocessor","createParallelIfNeeded","mergeAxisOptionFromParallel","hasParallelSeries","parallelAxis","axisOption","parallelIndex","parallelOption","ParallelAxis","sliderMove","handleEnds","handleIndex","minSpan","maxSpan","restrict","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","each$6","mathMin$6","mathMax$6","mathFloor$1","mathCeil$1","round$2","PI$7","Parallel","_axesLayout","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","layoutLength","_layoutAxes","layoutExtent","axisCount","axisExpandWidth","restrict$1","axisExpandCount","axisExpandable","axisExpandWindow","winSize","axisExpandCenter","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","layoutAxisWithExpand","layoutAxisWithoutExpand","positionTable","horizontal","vertical","rotationTable","axisCoordToPoint","eachActiveState","dataDimensions","axisModels","hasActiveSet","hasAxisBrushed","activeState","getActiveState","axisLayout","getAxisLayout","getSlidedAxisExpandWindow","behavior","pointCoord","triggerArea","useJump","winSize2","create$2","ParallelAxisModel","activeIntervals","getAreaSelectStyle","setActiveIntervals","intervals","defaultOption$1","areaSelectStyle","realtime","ParallelModel","_initDimensions","setAxisExpand","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","actionInfo$1","parallelAxisModel","BRUSH_PANEL_GLOBAL","mathMin$7","mathMax$7","mathPow$2","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","sw","nw","se","DEFAULT_BRUSH_OPT","transformable","brushMode","removeOnClick","baseUID","BrushController","_covers","_handlers","_uid","pointerHandlers","enableBrush","brushOption","_mounted","_brushType","_doDisableBrush","brushType","_doEnableBrush","_enableGlobalPan","_brushOption","setPanels","panelOpts","panels_1","_panels","panelId","enableGlobalPan","_transform","updateCovers","coverConfigList","coverConfig","tmpIdPrefix","oldCovers","newCovers","creatingCover","_creatingCover","oldGetKey","addOrUpdate","cover","__brushOption","newBrushInternal","endCreating","createCover","updateCoverAfterCreation","unmount","clearCovers","coverRenderers","coverRenderer","getCoverRenderer","updateCoverShape","updateCommon","getPanelByPoint","localCursorPoint","panels","panel","pn","isTargetByCursor","getPanelByCover","covers","originalLength","trigger$1","areas","isEnd","shouldShowCover","getTrackEnds","createBaseRectCover","rectRangeConverter","edgeNameSequences","makeStyle","driftRect","ondragend","nameSequence","updateBaseRect","localRange","handleSize","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection1","getGlobalDirection2","pointsToRect","clipByPanel","formatRectRange","getTransform$1","localDirName","inverseMap","localDirNameSeq","dirNameSequence","rectRange","toRectRange","localDelta","toLocalDelta","dirName","ind","fromRectRange","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","_creatingPanel","thisBrushOption","eventParams","determineBrushType","coverBrushOption","getCreatingRange","defaultBrushType","handleDragEnd","getLineRenderer","returnInput","localTrack","ends","xyIndex","otherExtent","getLinearBrushOtherExtent","makeRectPanelClipPath","normalizeRect","localPoints","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","elementList","ParallelAxisView","_brushController","_onBrush","fromAxisAreaSelect","areaWidth","builderOpt","_refreshBrushController","extentLen","getCoverInfoList","eventParam","coverInfoList","coverInfo","parallelAxisId","CLICK_THRESHOLD","ParallelView","handlers","_throttledDispatchExpand","_dispatchExpand","checkTrigger","_mouseDownPoint","mouseDownPoint","triggerOn","ParallelSeriesModel","makeDefaultEncode","getRawIndicesByActiveState","theActiveState","inactiveOpacity","activeOpacity","dataDimIndex","convertDimNameToNumber","DEFAULT_SMOOTH","ParallelView$1","_dataGroup","dataGroup","makeSeriesScope$2","newDataIndex","addEl","updateElCommon","oldDataIndex","createLinePoints","createGridClipShape","isEmptyValue","opacityAccessPath$1","parallelVisual","opacityMap","active","inactive","itemOpacity","SankeySeriesModel","nodeDepth","setNodePosition","localPosition","localX","localY","rawDataOpt","nodeValue","nodeGap","layoutIterations","nodeAlign","SankeyPathShape","SankeyPath","SankeyView","_focusAdjacencyDisabled","sankeyView","curve","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","sourceColor","targetColor","dragX","dragY","createGridClipShape$1","sankeyLayout","getViewRect$4","computeNodeValues","filteredNodes","iterations","layoutSankey","computeNodeBreadths","computeNodeDepths","computeEdgeDepths","getEdgeValue","nodeRawValue","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","maxNodeDepth","isItemDepth","edgeIdx","indexEdge","nodeIndex","maxDepth","adjustNodeWithNodeAlign","kx","scaleNodeBreadths","isNodeDepth","nextSourceNode","remainNodes","skNodeHeight","moveSinksRight","nodesByBreadth","prepareNodesByBreadth","initializeNodeDepth","resolveCollisions","relaxRightToLeft","relaxLeftToRight","keyAttr","groupResult","minKy","ky","nodeDy","edgeDy","nodeDyAttr","weightedTarget","centerTarget","center$1","nodeY","weightedSource","centerSource","sankeyVisual","minValue_1","maxValue_1","mapValueToColor","customColor","WhiskerBoxCommonMixin","xAxisType","yAxisType","addOrdinal","coordDims","baseAxisDimIndex","_baseAxisDim","baseAxisType","newOptionData_1","newItem","defaultValueDimensions","BoxplotSeriesModel","boxWidth","BoxplotView","constDim","createNormalBox","updateNormalBoxData","BoxPathShape","BoxPath","transInit","initBaseline","boxplotVisual","each$7","boxplotLayout","groupSeriesByAxis","groupItem","calculateBase","layoutSingleSeries","boxOffsetList","boxWidthList","axisList","boundList","maxDataCount_1","boxWidthBound","availableWidth","boxGap","halfWidth","cDimIdx","vDimIdx","cDim","vDims","axisDimVal","median","getPoint","end1","end2","end4","end5","addBodyEnd","layEndLine","point1","point2","endCenter","to","prepareBoxplotData","boxData","outliers","boundIQR","useExtreme","ascList","Q1","Q2","Q3","bound","low","high","itemNameFormatter","outlier","boxplotTransform","CandlestickSeriesModel","getShadowDim","brushRect","SKIP_PROPS","CandlestickView","_incrementalRenderNormal","isSimpleBox","isNormalBoxClipped","createNormalBox$1","setBoxCommon","createLarge$1","NormalBoxPathShape","NormalBoxPath","__simpleBox","transInit$1","LargeBoxPathShape","LargeBoxPath","__sign","elP","elN","setLargeStyle$1","preprocessor","seriesItem","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","candlestickVisual","getBorderColor","LargeArr$1","candlestickLayout","candleWidth","calculateCandleWidth","openDim","closeDim","lowestDim","highestDim","largeProgress","normalProgress","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","ocHighPoint","lowestPoint","highestPoint","subPixelOptimizePoint","getSign","makeBrushRect","pmin","pmax","EffectScatterSeriesModel","effectType","showEffectOn","rippleEffect","period","EFFECT_RIPPLE_NUMBER","normalizeSymbolSize$1","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","EffectSymbol","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","EffectScatterView","effectSymbolDraw","_updateGroupTransform","Uint32Arr","Float64Arr","compatEc2","coords","fromName","toName","LinesSeriesModel","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","_getCoordsFromItemModel","getLineCoordsCount","getLineCoords","startOffset","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","CoordSys","effect","constantSpeed","trailLength","EffectLine","_updateEffectSymbol","effectModel","_symbolScale","_updateEffectAnimation","delayExpr","_updateAnimationPoints","_getLineLength","_period","delayNum","__t","_updateSymbolPosition","__p1","__cp1","__p2","quadraticDerivativeAt$1","__lastT","Polyline$1","_createPolyline","hoverLineStyle","lineEmphasisState","EffectPolyline","accLenArr","_length","_offsets","offsets","LargeLinesPathShape","LargeLinesPath","LargeLineDraw","lineEl","linesLayout","isPolyline","isLarge","lineCoords","totalCoordsCount","LinesView","_updateLineDraw","_lastZlevel","_showEffect","notInIndividual_1","otherSeriesModel","hasEffect","_hasEffet","_isPolyline","normalize$3","linesVisual","HeatmapSeriesModel","blurSize","pointSize","maxOpacity","minOpacity","GRADIENT_LEVELS","HeatmapLayer","_gradientPixels","inRange","outOfRange","colorFunc","isInRange","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","getIsInPiecewiseRange","dataSpan","getIsInContinuousRange","isGeoCoordSys","HeatmapView","visualMapOfThisSeries","eachTargetSeries","targetSeries","_incrementalDisplayable","_renderOnCartesianAndCalendar","_renderOnGeo","dataDimX","dataDimY","dataToRect","contentShape","visualMapModel","inRangeVisuals","targetVisuals","outOfRangeVisuals","hmLayer","_hmLayer","lng","lat","getPieceList","PictorialBarSeriesModel","symbolPosition","symbolMargin","symbolRepeat","symbolRepeatDirection","symbolClip","symbolBoundingData","symbolPatternSize","BAR_BORDER_WIDTH_QUERY$1","LAYOUT_ATTRS","posDesc","pathForLineWidth","PictorialBarView","coordSysRect","ecSize","coordSysExtent","categoryDim","symbolMeta","getSymbolMeta","createBar","updateCommon$1","pictorialShapeStr","getShapeStr","__pictorialShapeStr","updateBar","__pictorialSymbolMeta","removeBar","prepareBarLength","prepareSymbolSize","boundingLength","pxSign","prepareLineWidth","symbolScale","prepareLayoutInfo","valueLineWidth","repeatCutLength","outputSymbolMeta","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","categorySize","parsedSymbolSize","unitLength","pathLen","absBoundingLength","hasEndGap","symbolMarginNumeric","uLenWithMargin","endFix","repeatSpecified","repeatTimes","toIntTimes","mDiff","sizeFix","pathPosition","bundlePosition","barRectShape","createPath","createOrUpdateRepeatSymbols","bundle","__pictorialBundle","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","updateAttr","makeTarget","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","pathes","immediateAttrs","animationAttrs","barPositionOutside","times","roundedTimes","SingleAxis","Single","_axis","_adjustAxis","_updateAxisTransform","extentSum","getCoordSys$2","singleModel","create$3","singles","layout$2","positionMap","directionMap","axisBuilderAttrs$2","selfBuilderAttrs$1","SingleAxisView","axisElementBuilders$1","SingleAxisModel","findPointFromSeries","isStacked","inner$c","axisTrigger","currTrigger","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputPayload","showValueMap","dataByCoordSys","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","noSnap","outputFinder","payloadInfo","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","getAxisTooltipData","nestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","dataByAxis","valueLabelOpt","seriesDataIndices","outputAxesInfo","valItem","tooltipOption","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","inner$d","each$8","initGlobalListeners","initialized","useHandler","doEnter","onLeave","dis","makeDispatchAction","dispatchTooltipFinally","pendings","showLen","showTip","hideLen","hideTip","actuallyPayload","unregister","AxisPointerView","inner$e","clone$3","bind$1","BaseAxisPointer","_axisModel","_axisPointerModel","_lastValue","_lastStatus","_group","handle","_handle","elOption","makeElOption","graphicKey","_lastGraphicKey","moveAnimation","_moveAnimation","determineAnimation","createPointerEl","createLabelEl","doUpdateProps","updateProps$1","updatePointerEl","updateLabelEl","updateMandatoryProps","_renderHandle","isCategoryAxis","useSnap","pointerOption","pointerEl","labelEl","updateLabelShowHide","updateHandleTransform","handleModel","onmousemove","onmousedown","_onHandleDragMove","_onHandleDragEnd","_moveHandleToValue","getHandleTransProps","getHandleTransform","trans","_payloadInfo","lastProp","_doDispatchAxisPointer","cursorPoint","doClear","buildLabel","xDimIndex","propsEqual","lastProps","equals_1","buildElStyle","axisPointerType","buildLabelElOption","labelPos","getValueLabel","paddings","confineInContainer","bgColor","params_1","axisDimension","seriesData","idxItem","getTransformedPosition","buildCartesianSingleLabelElOption","textLayout","makeLineShape","makeRectShape","makeSectorShape","CartesianAxisPointer","pixelValue","elStyle","pointerShapeBuilder","currPosition","cursorOtherValue","tooltipOptions","getAxisDimIndex","shadow","AxisPointerModel","icon","XY","WH","SingleAxisPointer","getPointDimIndex","pointerShapeBuilder$1","DATA_NAME_INDEX","ThemeRiverSeriesModel","fixData","rawDataLength","layData","dataList","layerNum","largestLayer","timeValue","keyIndex","filterData","getLayerSeries","lenCount","indexArr","timeDim","layerSeries","index1","index2","nearestIdx","pointNum","theValue","htmlName","htmlValue","singleAxisIndex","ThemeRiverView","layersSeries","keyGetter","dataDiffer","_layersSeries","newLayersGroups","process","oldLayersGroups","points0","layerGroup","createGridClipShape$2","themeRiverLayout","themeRiverLayout$1","layerPoints","singleLayer","computeBaseline","baseLine","baseY0","layerIndex","sums","temp","SunburstSeriesModel","completeTreeValue$1","treeOption","renderLabelForZeroData","DEFAULT_SECTOR_Z","DEFAULT_TEXT_Z","SunburstPiece","_ecModel","labelStateModel","labelMinAngle","getLabelAttr","sectorState","labelColor","labelPadding","rotateType","stateAttr","ROOT_TO_NODE_ACTION","HIGHLIGHT_ACTION","handleHighlight","UNHIGHLIGHT_ACTION","SunburstView","newRoot","newChildren","oldChildren","_oldChildren","renderRollUp","newNode","virtualPiece","targetFound","RADIAN$2","sunburstLayout","rootDepth","initChildren$1","renderRollupNode","rPerLevel","rStart","rEnd","siblingAngle_1","sortOrder","sort$2","isAsc_1","sunburstVisual","pickColor","treeHeight","dataToCoordSize","dataSize","halfSize","prepareCartesian2d","dataToCoordSize$1","prepareGeo","dataToCoordSize$2","prepareSingleAxis","dataToCoordSize$3","preparePolar","radiusAxis","getRadiusAxis","angleAxis","getAngleAxis","dataToRadius","dataToAngle","prepareCalendar","rangeInfo","getRangeInfo","cellWidth","getCellWidth","cellHeight","getCellHeight","weeks","dayCount","allDay","deprecatedLogs","isEC4CompatibleStyle","elType","hasOwnTextContentOption","hasOwnTextConfig","legacy","convertFromEC4CompatibleStyle","hostStyle","srcStyle","textContentStyle","hasOwnPos","textDistance","convertEC4CompatibleRichItem","richItem","textStrokeWidth","textLineHeight","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","convertToEC4StyleForCustomSerise","itemStl","txStl","txCfg","hostFill","convertToEC4RichItem","textFillNotSet","warnDeprecated","deprecated","insteadApproach","inner$f","TRANSFORM_PROPS","transformPropNamesStr","STYLE_VISUAL_TYPE","VISUAL_PROPS","EMPHASIS","NORMAL","BLUR","SELECT","STATES","PATH_ITEM_STYLE","PATH_LABEL","GROUP_DIFF_PREFIX","attachedTxInfoTmp","LEGACY_TRANSFORM_PROPS","prepareCustoms","CustomSeriesModel","currentZLevel","currentZ","CustomSeriesView","customSeries","renderItem","makeRenderItem","createOrUpdateItem","doRemoveEl","setIncrementalAndHoverLayer","elementName","createEl","graphicType","getPathData","customPathData","customImagePath","customGraphicType","updateElNormal","styleOpt","attachedTxInfo","isTextContent","transFromProps","allProps","elDisplayable","prepareShapeOrExtraUpdate","prepareTransformUpdate","txCfgOpt","textOptionStyle","prepareStyleUpdate","userDuring","cfgDuringCall","duringCall","mainAttr","attrOpt","elPropsInAttr","transFromPropsInAttr","enterFrom","enterFromKeys","transitionKeys","elVal","checkTansitionRefer","allPropsInAttr","keysInAttr","leaveTo","leaveToProps","getOrCreateLeaveToPropsFromEl","leaveToPropsInAttr","leaveToKeys","checkTransformPropRefer","setLagecyProp","setTransProp","transFromStyleProps","leaveToStyleProps","optVal","isArrLike","usedIn","innerEl","tmpDuringScope","customDuringAPI","assertNotReserved","isShapeDirty","getShape","isStyleDirty","setExtra","getExtra","newstUserDuring","scopeUserDuring","updateElOnState","elStateOpt","isRoot","existingEmphasisState","updateZ$1","optZ2","updateZForEachState","retrieveStateOption","targetProps","legacyName","fromEl","legacyArr","xyName","userAPI","styleEmphasis","barLayout","currentSeriesIndices","userParams","dataInsideLength","wrapEncodeDef","currDataIndexInside","currItemModel","currItemStyleModels","currLabelModels","seriesItemStyleModels","seriesLabelModels","getItemStyleModel","userProps","preFetchFromExtra","applyUserPropsAfter","style_1","doCreateOrUpdateEl","toBeReplacedIdx","doesElNeedRecreate","conOpt","isLegacy","doCreateOrUpdateAttachedTx","doCreateOrUpdateClipPath","otherStateOpt","otherStyleOpt","retrieveStyleOptionOnState","mergeChildren","elInner","elOptionType","elOptionShape","elOptionStyle","hasOwnPathData","clipPathOpt","processTxInfo","txConOptNormal","txConOptEmphasis","txConOptBlur","txConOptSelect","txConStlOptNormal","txConOptOtherState","stateOpt","txConOpt","convertResult","txConOptNormal_1","stateOptionNormal","stateOption","newLen","$mergeChildren","byName","diffChildrenByName","diffGroupChildren","processAddUpdate","processRemove","childOption","getSeriesStackId$1","getAxisKey$1","barLayoutPolar","calRadialBar","clampLayout","radiusSpan","angleSpan","PolarModel","foundAxisModel","PolarAxisModel","AngleAxisModel","RadiusAxisModel","angleAxisExtraOption","radiusAxisExtraOption","RadiusAxis","radiusToData","inner$g","AngleAxis","angleToData","Polar","_radiusAxis","_angleAxis","pointToCoord","maxAngle","getCoordSys$3","resizePolar","parsedRadius","updatePolarScale","isAngleAxisModel","setAxis","polarCreator","polarList","elementList$1","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","lastItem","AngleAxisView","ticksAngles","minorTickAngles","angelAxisElementsBuilders","rId","r0Id","tickAngleItem","tickAngles","commonLabelModel","labelTextAlign","labelTextVerticalAlign","prevAngle","axisBuilderAttrs$3","selfBuilderAttrs$2","RadiusAxisView","newAxisGroup","axisAngle","layoutAxis","axisElementBuilders$2","prevRadius","PolarAxisPointer","coordValue","pointerShapeBuilder$2","getLabelPosition","GeoView","_handleRegionClick","updateSelectStatus","geoId","GeoModel","_optionModelMap","optionModelMap","regionOpt","unSelect","toggleSelected","makeAction","PROXIMATE_ONE_DAY","Calendar","calendarModel","_rangeInfo","_sw","_sh","_orient","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","mStr","dStr","getDay","formatedDate","getNextNDay","setDate","_lineWidth","_getRangeInfo","_initRangeOption","whNames","cellSize","getCellSize","layoutParams","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","tl","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","getCoordSys$4","normalizedRange","rangeStr","firstDay","setMonth","parsedRange","reversed","startDateNum","endDateNum","dateNum","fweek","lweek","nthDay","calendarList","calendarSeries","CalendarModel","mergeAndNormalizeLayoutParams","raw","cellSizeArr","MONTH_TEXT","EN","CN","WEEK_TEXT","CalendarView","rangeData","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","sh","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","addPoints","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","parsedDate","tmpD","_formatterLabel","_yearTextPositionControl","aligns","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","vAlign","termPoints","firstDayPoints","yyyy","yy","MM","monthText","_weekTextPositionControl","isStart","firstDayOfWeek","weekText","_nonShapeGraphicElements","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","existList","flattenedList","_flatten","elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","_elMap","_lastGraphicModel","graphicModel","_updateElements","_relocate","rootGroup","existEl","targetElParent","elOptionCleaned","getCleanedElOption","createEl$1","removeEl","__ecGraphicWidthOption","__ecGraphicHeightOption","setEventData","elOptions","apiWidth","apiHeight","isParentRoot","__ecGraphicWidth","__ecGraphicHeight","containerInfo","bounding","__ecGraphicId","existElParent","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","newType","existItem","ToolboxFeature","registerFeature","getFeature","ToolboxModel","featureName","Feature","itemSize","itemGap","showTitle","layout$3","boxLayoutParams","viewportSize","makeBackground","ToolboxView","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","featureModel","newTitle","isUserFeatureName","unusable","createIconPaths","setIconStatus","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconsMap","titlesMap","tooltipModel","__title","hoverStyle","defaultTextPosition","titleText","emphasisTextConfig","emphasisTextState","emphasisTextStyle","needPutOnTop","topOffset","SaveAsImage","MouseEvent","$a","download","evt","bubbles","cancelable","dispatchEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","blob","Blob","tab","write","INNER_STACK_KEYWORD","radioTypes","MagicType","availableIcons","seriesOptGenreator","generateNewSeriesTypes","newSeriesOpt","radio","seriesOptions","tiledLang","titleLang","isStack","currentType","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","assembleSeriesWithCategoryAxis","groups","tables","headers","columns","assembleOtherSeries","getContentFromModel","trim$1","isTSVFormat","firstLine","itemSplitRegex","parseTSVContents","tsv","tsvLines","header","parseListContents","hasName","parseContents","blockMetaList","blocks","blockMeta","DataView","viewMain","textarea","optionToContent","contentToOption","htmlOrDom","readOnly","buttonContainer","buttonStyle","closeButton","refreshButton","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","tryMergeDataOption","newSeriesOptList","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","BrushTargetManager","_targetInfoList","foundCpts","parseFinder$1","targetInfoBuilders","builder","include","setOutputRanges","matchOutputRanges","coordRange","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","setInputRanges","rangeOffset","getScales","makePanelOpts","getDefaultBrushType","getPanelRect","controlSeries","targetInfoList","areaPanelId","targetInfoMatchers","formatMinMax","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","panelRectBuilders","xAxisDeclared","yAxisDeclared","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","getSize","sizeOrigin","each$9","inner$h","newSnapshot","storedSnapshots","getStoreSnapshots","dataZoomId","snapshot","dataZoomModel","percentRange","getPercentRange","clear$1","snapshots","DATA_ZOOM_AXIS_DIMENSIONS","SERIES_COORDS","isCoordSupported","coordType","getAxisMainType","findEffectedDataZooms","axisRecords","effectedModels","effectedModelMap","addToEffected","foundNewLink","processSingle","isLinked","markAxisControlled","isLink","eachTargetAxis","axisIdxArr","collectReferCoordSysModelInfo","coordSysInfoWrap","infoList","infoMap","coordSysUid","DataZoomAxisInfo","indexList","indexMap","axisCmptIdx","DataZoomModel","_autoThrottle","_noTarget","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","_doInit","_setDefaultThrottle","_updateRangeUse","_resetTarget","optionOrient","targetAxisIndexMap","_targetAxisInfoMap","hasAxisSpecified","_fillSpecifiedTargetAxis","_makeAutoOrientByTargetAxis","_fillAutoTargetAxisByOrient","refering","needAuto","setParallelAxis","gridModel_1","axModel","globalOption","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","noTarget","getFirstTargetAxisModel","firstAxisModel","getAxisProxy","getAxisModel","__dzAxisProxy","setRawRange","setCalculatedRange","axisProxy","findRepresentativeAxisProxy","getDataPercentWindow","getValueRange","getDataValueWindow","firstProxy","axisDimList","hostedBy","getRangePropMode","filterMode","DataZoomView","SelectDataZoomModel","SelectDataZoomView","each$a","asc$1","AxisProxy","_dimName","_axisIndex","_dataZoomModel","_valueWindow","_percentWindow","getTargetSeriesModels","axisMainType","getMinMaxSpan","_minMaxSpan","calculateDataWindow","_dataExtent","percentExtent","percentWindow","valueWindow","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","suffix","calculateDataExtent","_updateMinMaxSpan","dataWindow","_setAxisModel","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","minMaxSpan","percentSpan","valueSpan","eachAxisModel","proxyList","valueRange","endValue","each$b","DATA_ZOOM_ID_BASE","DataZoomFeature","brushController","updateZoomBtnStatus","updateBackBtnStatus","handlers$1","brushTargetManager","makeAxisFinder","setBatch","_dispatchZoomAction","findDataZoom","minValueSpan","maxValueSpan","found","dzModel","has","nextActive","isZoomActive","dataZoomSelectActive","dzFeatureModel","xAxisId","yAxisId","zoomActive","dzOptions","finderResult","buildInternalOptions","axisIndexPropName","$fromToolbox","RestoreOption","TooltipModel","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","transitionDuration","enterable","each$c","toCamelCase$1","vendors","gCssText","mirrowPos","getFinalColor","finalNearPointColor","assembleArrow","arrowPosition","arrowPos","centerPos","styleCss","assembleTransition","transitionCurve","transitionText","vendorPrefix","assembleFont","assembleCssText","isFirstShow","boxShadow","borderName","camelCase","makeStyleCoord","appendToBody","zrPainter","zrViewportRoot","body","viewportRootOffset","TooltipHTMLContent","_show","_styleCoord","_enterable","_firstShow","_appendToBody","_container","onmouseenter","_hideTimeout","_inContent","onmouseleave","hideLater","_hideDelay","currentStyle","nearPointColor","styleCoord","offsetHeight","pointerEvents","setContent","setEnterable","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","TooltipRichContent","markerRich","startId","endId","bind$2","each$d","parsePercent$3","proxyRect","TooltipView","_renderMode","tooltipContent","_newLine","_tooltipContent","_tooltipModel","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","makeDispatchAction$1","_ticket","_manuallyAxisShowTip","pointInfo","manuallyHideTip","tooltipCascadedModel","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleDefaultHTML","singleParamsList","singleTooltipModel","itemCoordSys","seriesDefaultHTML","valueLabel","axisValueLabel","seriesTooltip","newMarkers","singleDefaultHTMLStr","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","tooltipTrigger","tooltipOrder","defaultHtml","asyncTicket","subTooltipModel","nearPoint","_getNearestPoint","cbTicket","tooltipDataParams","contentSize","boxLayoutPosition","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","indexAxis","lastIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","DEFAULT_TOOLBOX_BTNS","preprocessor$1","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolboxFeature","toolboxBrush","brushTypes","removeDuplicate","flag","each$e","hasKeys","createVisualMappings","stateList","supplementVisualOption","visualMappings","mappings","createMappings","visualData","mappingOption","__hidden","__alphaForOpacity","Creater","replaceVisualOption","getValueState","visualTypesMap","eachItem","valueOrIndex","rawDataItem","valueState","incrementalApplyVisual","makeBrushCommonSelectorForSeries","getLineSelectors","inLineRange","layoutRange","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","layoutCovers","brushModel","brushSelected","throttleDelay","setBrushOption","brushIndex","thisBrushSelected","brushId","brushName","brushLink","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","boundingRectBuilders","selectableArea","linkOthers","brushed","rangeInfoList","stepAParallel","stepAOthers","brushModelNotControll","checkInRange","seriesBrushSelected","doDispatch","getBoundingRectFromMinMax","rg","DEFAULT_OUT_OF_BRUSH_COLOR","BrushModel","inBrush","outOfBrush","setAreas","generateBrushOption","BrushView","$from","modelId","ICON_TYPES","BrushFeature","isBrushed","_brushMode","command","TitleModel","subtext","subtarget","TitleView","subtextStyleModel","subText","subTextEl","sublink","groupRect","alignStyle","preprocessor$2","compatibleEC2","ec2Types","transferItem","controlPosition","itemStyleEmphasis","labelNormal","excludeLabelAttr","currentIndex","setCurrentIndex","isIndexMax","setPlayState","playState","TimelineModel","_initData","autoPlay","getPlayState","dataArr","_names","processedDataArr","rewind","playInterval","SliderTimelineModel","checkpointStyle","showPlayBtn","showPrevBtn","showNextBtn","playIcon","stopIcon","nextIcon","prevIcon","prevBtnSize","nextBtnSize","TimelineView","TimelineAxis","PI$8","labelDataIndexStore","SliderTimelineView","layoutInfo_1","mainGroup_1","_createGroup","labelGroup","axis_1","_createAxis","_renderAxisLabel","_position","_doPlayStop","_updateTicksStatus","_clearTimer","labelPosOpt","getViewRect$5","parsedLabelPos","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","playPosition","prevBtnPosition","nextBtnPosition","labelAlign","labelBaseline","mainGroup","_labelGroup","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","targetGroup","boundIdx","createScaleByModel$1","newGroup","_renderAxisLine","progressLine","_progressLine","_currentPointer","_renderAxisTick","_tickSymbols","hoverStyleModel","progressStyleModel","symbolOpt","_changeTimeline","giveSymbol","_tickLabels","hoverLabelModel","progressLabelModel","_renderControl","makeBtn","_handlePlayClick","willRotate","iconSize","btn","makeControlIcon","_renderCurrentPointer","me","onCreate","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","toCoord","_toAxisCoord","targetDataIndex","_findNearestTick","_timer","axisCoord","nextIndex","tickSymbols","tickLabels","objPath","noAnimation","fillLabel","inner$i","MarkerModel","createdBySelf","hostSeries","__hostSeries","markerOpt","markerModel","createMarkerModelFromSeries","getMarkerModelFromSeries","MarkPointModel","masterMarkerModel","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","markerType","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","numCalculate","coordArrValue","markerTypeCalculator","dataTransform","getAxisInfo$1","coordInfo","baseDataDim","valueDataDim","valueIndex","dataDimToCoordDim","dataFilter$1","sum_1","count_1","inner$j","MarkerView","markerGroupMap","markKeep","drawGroup","seriesModelList","updateMarkerLayout","xPx","yPx","MarkPointView","markPointModel","mpModel","symbolDrawMap","createList$1","coordDimsInfos","dataOpt","MarkLineModel","inner$k","markLineTransform","mlModel","itemArray","mlType","mlFrom","mlTo","normalizedItem","isInifinity","ifMarkLineHasOnlyDim","fromCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","MarkLineView","markLineModel","mlData_1","fromData_1","toData_1","lineDrawMap","createList$2","fromData","toData","updateDataVisualAndLayout","fromSymbolSize","toSymbolSize","optData","dimValueGetter$1","MarkAreaModel","inner$l","markAreaTransform","maModel","ltCoord","rbCoord","isInifinity$1","ifMarkAreaHasOnlyDim","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","MarkAreaView","markAreaModel","areaData_1","areaGroupMap","polygonGroup","areaData","createList$3","getDefaultSelectorOptions","LegendModel","_updateSelector","_updateData","legendData","hasSelected","potentialData","availableNames","isPotential","_availableNames","allSelect","inverseSelect","inactiveColor","inactiveBorderColor","selectorLabel","selectorPosition","selectorItemGap","selectorButtonGap","legendSelectActionHandler","isToggleSelect","legendModel","isItemSelected","curry$1","each$f","Group$2","LegendView","newlineDisabled","_contentGroup","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","isFirstRender","resetInner","itemAlign","renderInner","mainRect","layoutInner","_backgroundEl","contentGroup","legendDrawnMap","selectMode","legendSymbolType","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","_createSelector","selectorGroup","createSelectorButton","selectorItem","emphasisLabelModel","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","legendIndex","__legendDataIndex","contentRect","contentPos","selectorRect","selectorPos","orientIdx","hw","yx","isUseHoverLayer","legendFilter","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","mergeAndNormalizeLayoutParams$1","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","Group$3","WH$1","XY$1","ScrollableLegendView","_currentIndex","_controllerGroup","__rectSize","controllerGroup","pageIconSizeArr","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","processMaxSize","_layoutContentAndController","controllerRect","showController","_showController","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","legendId","canJump","pageText","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","itemRect","itemInfo","winStart","defaultIndex","legendDataIdx","SliderZoomModel","handleIcon","moveHandleSize","moveHandleIcon","showDetail","showDataShadow","zoomLock","brushSelect","Rect$2","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","SliderZoomView","_onBrushEnd","_buildView","_updateView","_brushing","_resetLocation","_resetInterval","barGroup","sliderGroup","_renderDataShadow","_positionGroup","showMoveHandle","coordRect","_findCoordRect","_location","_size","targetAxisModel","otherAxisInverse","_dataShadowInfo","_getViewExtent","clickPanel","_onClickPanel","_onBrushStart","_prepareDataShadowInfo","dataShadowSegs","otherDataExtent","otherOffset","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","lastIsEmpty","otherCoord","createDataShadowGroup","isSelectedArea","thisAxis","getOtherDim","thisDim","handles","handleLabels","filler","_onDragMove","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","_handleHeight","_handleWidth","handleColor","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","moveZoneExpandSize","moveZone","ondragstart","_range","viewExtent","_handleEnds","_updateInterval","viewExtend","lastRange","nonRealtime","displaybles","handleInterval","handleHeight","segIntervals","segGroup","_updateDataInfo","labelTexts","dataInterval","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelPrecision","valueStr","showOrHide","changed","localPoint","_brushStart","_brushStartTime","brushShape","brushEndTime","_updateBrushRect","brushStart","endPoint","coordSysInfoList","InsideZoomModel","disabled","inner$m","apiInner","coordSysRecordMap","coordSysRecord","dataZoomInfoMap","dzReferCoordSysWrap","dzCoordSysInfo","createCoordSysRecord","dzReferCoordSysInfo","getRange","firstDzInfo","firstDzKey","disposeCoordSysRecord","controllerParams","mergeControllerParams","containsPoint","setViewInfoToCoordSysRecord","dzInfo","disposeCoordSysRecordIfNeeded","coordSysKeyArr","dzUid","dispatchAction$1","typePriority","dataZoomInfo","oneType","InsideZoomView","pan","getRangeHandlers","scrollMove","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","makeMover","getPercentDelta","percentDelta","oldPoint","newPoint","each$g","preprocessor$3","has$1","pieces","splitList","calculable","VISUAL_PRIORITY","isTargetSeries","getDataDimension","getVisualMeta","getColorVisual","concreteDim","resultVisual","visualDefault","defaultOption$2","mapVisual$1","isArray$1","each$h","asc$2","linearMap$1","VisualMapModel","replacableOptionKeys","dataBound","controllerVisuals","resetItemSize","completeVisualOption","resetVisual","getTargetSeriesIndices","optionSeriesIndex","is","formatValueText","edgeSymbols","isMinMax","textValue","resetExtent","optDim","listDimensions","completeSingle","completeInactive","completeController","stateExist","stateAbsent","optExist","optAbsent","defa","symbolExists","symbolSizeExists","max_1","setSelected","getSelected","contentColor","textGap","DEFAULT_BAR_BOUND","ContinuousModel","_resetRange","auto","findTargetDataIndices","oVals","getColorStopValues","iVals","setStop","iIdx","oIdx","iLen","oLen","stopsLen","hoverLink","indicatorIcon","indicatorSize","indicatorStyle","stopValues","VisualMapView","autoPositionValues","doRender","getControllerVisual","targetValue","visualCluster","forceState","visualObj","defaultColor","visualMapping","convertOpacityToAlpha","positionGroup","paramsSet","getItemAlign","modelOption","realIndex","reals","fakeValue","layoutInput","rParam","makeHighDownBatch","linearMap$2","each$i","mathMin$8","mathMax$8","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_hoverLinkDataIndices","_useHandle","_renderBar","dataRangeText","_renderEndsText","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","shapes","_createBarGroup","gradientBarGroup","createPolygon","getCursor$1","_dragHandle","textSize","handleThumbs","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","handleLabel","handleLabelPoint","indicatorLabel","indicatorLabelPoint","_firstShowIndicator","_hideIndicator","visualMapId","_hovering","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","_makeColorGradient","symbolSizes","_createBarPoints","handlesColor","sampleNumber","currValue","_showIndicator","cursorValue","rangeSymbol","halfHoverLinkSize","oldIndicatorPos","indicatorNewProps","labelNewProps","_hoverLinkFromSeriesMouseOver","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","getHalfHoverLinkSize","hoverRange","oldBatch","newBatch","resultBatches","_dispatchHighDown","hoverLinkDataSize","hoverLinkOnHandle","actionInfo$2","PiecewiseModel","_pieceList","_mode","_determineMode","resetMethods","_resetSelected","visualTypesInPieces","exists","getSelectedMapKey","hasSel_1","pIdx","getRepresentValue","representValue","pieceInterval","minOpen","maxOpen","itemSymbol","outPieceList","splitStep","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","PiecewiseVisualMapView","_getItemAlign","viewData","_getViewData","endsText","viewPieceList","_onItemClick","_enableHoverLink","indexInModelPieceList","_createItemSymbol","visualState","onHoverLink","shapeParam","newKey","createElementNS","CMD$4","NONE","mathRound","mathSin$3","mathCos$3","PI$9","PI2$8","EPSILON$4","round4","isAroundZero$1","pathHasFill","pathHasStroke","reduceNumberString","toPrecision","svgEl","attrXLink","setAttributeNS","bindStyle","strokeWidth","strokeScale_1","pathDataToString","dataLength","nData","dThetaPositive","isCircle","unifiedTheta","wrapSVGBuildPath","__svgBuildPath","oldBuildPath_1","__svgPathStr","svgPath","__svgEl","svgImage","HTMLImageElement","__imageSrc","TEXT_ALIGN_TO_ANCHOR","adjustTextY$1","svgText","textSvgEl","textSvgElStyle","equals","oldLen","editLength","maxEditLength","bestPath","newPos","oldPos","extractCommon","added","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","clonePath","pushComponent","buildValues","commonCount","componentPos","componentLen","arrayDiff","MARK_UNUSED","MARK_USED","Definable","zrId","svgRoot","tagNames","markLabel","domName","nextId","_domName","_zrId","_svgRoot","_tagNames","_markLabel","getDefs","isForceCreating","getElementsByTagName","defs_1","doUpdate","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","that","markDomUsed","removeUnused","getSvgProxy","getSvgElement","isLinearGradient","isRadialGradient","GradientManager","addWithoutUpdate","svgElement","that_1","__dom","markUsed","updateDom","stop_1","hex","ClippathManager","isText","clipPathEl","domKey","svgProxy","cloneNode","_textDom","ShadowManager","_shadowDom","_shadowDomId","domChildArr","domChild","stdDx","stdDy","stdDeviation","parseInt10$1","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","createMethodNotSupport","svgDom","bgRoot","_gradientManager","_clipPathManager","_shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","_backgroundNode","bgNode","visibleList","listLen","newVisibleList","prevSvgElement","_getDefs","viewportStyle","encodeURIComponent","outerHTML","parseGeoJSON","util"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function mergeAll(targetAndSources, overwrite) {\r\n var result = targetAndSources[0];\r\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\r\n result = merge(result, targetAndSources[i], overwrite);\r\n }\r\n return result;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function find(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n return arr[i];\r\n }\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function concatArray(a, b) {\r\n var newArray = new a.constructor(a.length + b.length);\r\n for (var i = 0; i < a.length; i++) {\r\n newArray[i] = a[i];\r\n }\r\n var offset = a.length;\r\n for (var i = 0; i < b.length; i++) {\r\n newArray[i + offset] = b[i];\r\n }\r\n return newArray;\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n var zrUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $override: $override,\n guid: guid,\n logError: logError,\n clone: clone,\n merge: merge,\n mergeAll: mergeAll,\n extend: extend,\n defaults: defaults,\n createCanvas: createCanvas,\n indexOf: indexOf,\n inherits: inherits,\n mixin: mixin,\n isArrayLike: isArrayLike,\n each: each,\n map: map,\n reduce: reduce,\n filter: filter,\n find: find,\n keys: keys,\n bind: bind,\n curry: curry,\n isArray: isArray,\n isFunction: isFunction,\n isString: isString,\n isStringSafe: isStringSafe,\n isNumber: isNumber,\n isObject: isObject,\n isBuiltInObject: isBuiltInObject,\n isTypedArray: isTypedArray,\n isDom: isDom,\n isGradientObject: isGradientObject,\n isPatternObject: isPatternObject,\n isRegExp: isRegExp,\n eqNaN: eqNaN,\n retrieve: retrieve,\n retrieve2: retrieve2,\n retrieve3: retrieve3,\n slice: slice,\n normalizeCssArray: normalizeCssArray,\n assert: assert,\n trim: trim,\n setAsPrimitive: setAsPrimitive,\n isPrimitive: isPrimitive,\n HashMap: HashMap,\n createHashMap: createHashMap,\n concatArray: concatArray,\n createObject: createObject,\n hasOwn: hasOwn,\n noop: noop\n });\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function set(out, a, b) {\r\n out[0] = a;\r\n out[1] = b;\r\n return out;\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n var length = len;\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n var lengthSquare = lenSquare;\r\n function mul(out, v1, v2) {\r\n out[0] = v1[0] * v2[0];\r\n out[1] = v1[1] * v2[1];\r\n return out;\r\n }\r\n function div(out, v1, v2) {\r\n out[0] = v1[0] / v2[0];\r\n out[1] = v1[1] / v2[1];\r\n return out;\r\n }\r\n function dot(v1, v2) {\r\n return v1[0] * v2[0] + v1[1] * v2[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function negate(out, v) {\r\n out[0] = -v[0];\r\n out[1] = -v[1];\r\n return out;\r\n }\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var vector = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create,\n copy: copy,\n clone: clone$1,\n set: set,\n add: add,\n scaleAndAdd: scaleAndAdd,\n sub: sub,\n len: len,\n length: length,\n lenSquare: lenSquare,\n lengthSquare: lengthSquare,\n mul: mul,\n div: div,\n dot: dot,\n scale: scale,\n normalize: normalize,\n distance: distance,\n dist: dist,\n distanceSquare: distanceSquare,\n distSquare: distSquare,\n negate: negate,\n lerp: lerp,\n applyTransform: applyTransform,\n min: min,\n max: max\n });\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len;) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n var _calcOut = [];\r\n function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\r\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\r\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\r\n }\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut$1 = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut$1, el, ex, ey)) {\r\n out.zrX = _calcOut$1[0];\r\n out.zrY = _calcOut$1[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\r\n function isMiddleOrRightButtonOnMouseUpDown(e) {\r\n return e.which === 2 || e.which === 3;\r\n }\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n while (el) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n if (el.__dirty) {\r\n el.update();\r\n }\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.markRedraw();\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n requestAnimationFrame = (typeof window !== 'undefined'\r\n && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame) || function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssAngle(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 360 ? 360 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function lerpNumber(a, b, p) {\r\n return a + (b - a) * p;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n if (str.charAt(0) === '#') {\r\n if (str.length === 4) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (str.length === 7) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === str.length) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function rgba2hsla(rgba) {\r\n if (!rgba) {\r\n return;\r\n }\r\n var R = rgba[0] / 255;\r\n var G = rgba[1] / 255;\r\n var B = rgba[2] / 255;\r\n var vMin = Math.min(R, G, B);\r\n var vMax = Math.max(R, G, B);\r\n var delta = vMax - vMin;\r\n var L = (vMax + vMin) / 2;\r\n var H;\r\n var S;\r\n if (delta === 0) {\r\n H = 0;\r\n S = 0;\r\n }\r\n else {\r\n if (L < 0.5) {\r\n S = delta / (vMax + vMin);\r\n }\r\n else {\r\n S = delta / (2 - vMax - vMin);\r\n }\r\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\r\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\r\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\r\n if (R === vMax) {\r\n H = deltaB - deltaG;\r\n }\r\n else if (G === vMax) {\r\n H = (1 / 3) + deltaR - deltaB;\r\n }\r\n else if (B === vMax) {\r\n H = (2 / 3) + deltaG - deltaR;\r\n }\r\n if (H < 0) {\r\n H += 1;\r\n }\r\n if (H > 1) {\r\n H -= 1;\r\n }\r\n }\r\n var hsla = [H * 360, S, L];\r\n if (rgba[3] != null) {\r\n hsla.push(rgba[3]);\r\n }\r\n return hsla;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function toHex(color) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\r\n }\r\n }\r\n function fastLerp(normalizedValue, colors, out) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n out = out || [];\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = colors[leftIndex];\r\n var rightColor = colors[rightIndex];\r\n var dv = value - leftIndex;\r\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\r\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\r\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\r\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\r\n return out;\r\n }\r\n var fastMapToColor = fastLerp;\r\n function lerp$1(normalizedValue, colors, fullOutput) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = parse(colors[leftIndex]);\r\n var rightColor = parse(colors[rightIndex]);\r\n var dv = value - leftIndex;\r\n var color = stringify([\r\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\r\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\r\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\r\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\r\n ], 'rgba');\r\n return fullOutput\r\n ? {\r\n color: color,\r\n leftIndex: leftIndex,\r\n rightIndex: rightIndex,\r\n value: value\r\n }\r\n : color;\r\n }\r\n var mapToColor = lerp$1;\r\n function modifyHSL(color, h, s, l) {\r\n var colorArr = parse(color);\r\n if (color) {\r\n colorArr = rgba2hsla(colorArr);\r\n h != null && (colorArr[0] = clampCssAngle(h));\r\n s != null && (colorArr[1] = parseCssFloat(s));\r\n l != null && (colorArr[2] = parseCssFloat(l));\r\n return stringify(hsla2rgba(colorArr), 'rgba');\r\n }\r\n }\r\n function modifyAlpha(color, alpha) {\r\n var colorArr = parse(color);\r\n if (colorArr && alpha != null) {\r\n colorArr[3] = clampCssFloat(alpha);\r\n return stringify(colorArr, 'rgba');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\r\n function random() {\r\n var r = Math.round(Math.random() * 255);\r\n var g = Math.round(Math.random() * 255);\r\n var b = Math.round(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\n\n var color = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse,\n lift: lift,\n toHex: toHex,\n fastLerp: fastLerp,\n fastMapToColor: fastMapToColor,\n lerp: lerp$1,\n mapToColor: mapToColor,\n modifyHSL: modifyHSL,\n modifyAlpha: modifyAlpha,\n stringify: stringify,\n lum: lum,\n random: random\n });\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.interpolable\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, this._additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + this._additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._doneList = [];\r\n this._onframeList = [];\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimators = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.during = function (callback) {\r\n this._onframeList.push(callback);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._tracks = null;\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n };\r\n Animator.prototype._getAdditiveTrack = function (trackName) {\r\n var additiveTrack;\r\n var additiveAnimators = this._additiveAnimators;\r\n if (additiveAnimators) {\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n var track = additiveAnimators[i].getTrack(trackName);\r\n if (track) {\r\n additiveTrack = track;\r\n }\r\n }\r\n }\r\n return additiveTrack;\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n var additiveAnimators = self._additiveAnimators;\r\n if (additiveAnimators) {\r\n var stillHasAdditiveAnimator = false;\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n if (additiveAnimators[i]._clip) {\r\n stillHasAdditiveAnimator = true;\r\n break;\r\n }\r\n }\r\n if (!stillHasAdditiveAnimator) {\r\n self._additiveAnimators = null;\r\n }\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n for (var i = 0; i < self._onframeList.length; i++) {\r\n self._onframeList[i](self._target, percent);\r\n }\r\n },\r\n ondestroy: function () {\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].setFinished();\r\n }\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n var animation = this.animation;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n if (animation) {\r\n animation.removeClip(clip);\r\n }\r\n this._clip = null;\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted && this.animation) {\r\n this.animation.removeClip(this._clip);\r\n this._clip = null;\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function () {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n if (this.stage.update) {\r\n this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n this.start();\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this._localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this._globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this._globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul$1(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\r\n function clone$2(a) {\r\n var b = create$1();\r\n copy$1(b, a);\r\n return b;\r\n }\n\n var matrix = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create$1,\n identity: identity,\n copy: copy$1,\n mul: mul$1,\n translate: translate,\n rotate: rotate,\n scale: scale$1,\n invert: invert,\n clone: clone$2\n });\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul$1(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul$1(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul$1(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio\r\n || (window.screen.deviceXDPI / window.screen.logicalXDPI)\r\n || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n this.updateInnerText();\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + 255 * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function () {\r\n this.useState(PRESERVED_NORMAL_STATE, false);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n zr && zr.wakeUp();\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var count = animators.length;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n }\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n if (animators.length > 0 && typeof cfg.during === 'function') {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i]\r\n .done(done)\r\n .start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0 || cfg.force) {\r\n var existsAnimators = animatable.animators;\r\n var existsAnimatorsOnSameTarget = [];\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n existsAnimatorsOnSameTarget.push(existsAnimators[i]);\r\n }\r\n }\r\n if (!additive && existsAnimatorsOnSameTarget.length) {\r\n for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\r\n var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this._getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n var delta = endAngle - startAngle;\r\n endAngle = startAngle + delta;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = 1 - data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, !!anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n if (i === 1) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var scaleX = (rx > ry) ? 1 : rx / ry;\r\n var scaleY = (rx > ry) ? ry / rx : 1;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse) {\r\n ctx.translate(cx, cy);\r\n ctx.rotate(psi);\r\n ctx.scale(scaleX, scaleY);\r\n ctx.arc(0, 0, r, startAngle, endAngle, anticlockwise);\r\n ctx.scale(1 / scaleX, 1 / scaleY);\r\n ctx.rotate(-psi);\r\n ctx.translate(-cx, -cy);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta % PI2$4 < 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (anticlockwise) {\r\n var tmp_1 = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp_1);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(data, lineWidth, isStroke, x, y) {\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i > 1) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathData, x, y) {\r\n return containPath(pathData, 0, false, x, y);\r\n }\r\n function containStroke$4(pathData, lineWidth, x, y) {\r\n return containPath(pathData, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.6) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke()) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n w = Math.max(w, this.strokeContainThreshold || 4);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathData = this.path.data;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathData, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathData, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath (path, m) {\r\n var data = path.data;\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < data.length;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\r\n function extendFromString(str, defaultOpts) {\r\n var innerOpts = createPathOptions(str, defaultOpts);\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.applyTransform = innerOpts.applyTransform;\r\n _this.buildPath = innerOpts.buildPath;\r\n return _this;\r\n }\r\n return Sub;\r\n }(SVGPath));\r\n return Sub;\r\n }\r\n function mergePath(pathEls, opts) {\r\n var pathList = [];\r\n var len = pathEls.length;\r\n for (var i = 0; i < len; i++) {\r\n var pathEl = pathEls[i];\r\n if (!pathEl.path) {\r\n pathEl.createPathProxy();\r\n }\r\n if (pathEl.shapeChanged()) {\r\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\r\n }\r\n pathList.push(pathEl.path);\r\n }\r\n var pathBundle = new Path(opts);\r\n pathBundle.createPathProxy();\r\n pathBundle.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.appendPath(pathList);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n };\r\n return pathBundle;\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline (points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier (points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top'\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n var DILIMITER_REG = /[\\s,]+/;\r\n function parseXML(svg) {\r\n if (isString(svg)) {\r\n var parser = new DOMParser();\r\n svg = parser.parseFromString(svg, 'text/xml');\r\n }\r\n var svgNode = svg;\r\n if (svgNode.nodeType === 9) {\r\n svgNode = svgNode.firstChild;\r\n }\r\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\r\n svgNode = svgNode.nextSibling;\r\n }\r\n return svgNode;\r\n }\r\n var nodeParsers;\r\n var SVGParser = (function () {\r\n function SVGParser() {\r\n this._defs = {};\r\n this._root = null;\r\n this._isDefine = false;\r\n this._isText = false;\r\n }\r\n SVGParser.prototype.parse = function (xml, opt) {\r\n opt = opt || {};\r\n var svg = parseXML(xml);\r\n if (!svg) {\r\n throw new Error('Illegal svg');\r\n }\r\n var root = new Group();\r\n this._root = root;\r\n var viewBox = svg.getAttribute('viewBox') || '';\r\n var width = parseFloat((svg.getAttribute('width') || opt.width));\r\n var height = parseFloat((svg.getAttribute('height') || opt.height));\r\n isNaN(width) && (width = null);\r\n isNaN(height) && (height = null);\r\n parseAttributes(svg, root, null, true);\r\n var child = svg.firstChild;\r\n while (child) {\r\n this._parseNode(child, root);\r\n child = child.nextSibling;\r\n }\r\n var viewBoxRect;\r\n var viewBoxTransform;\r\n if (viewBox) {\r\n var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\r\n if (viewBoxArr.length >= 4) {\r\n viewBoxRect = {\r\n x: parseFloat((viewBoxArr[0] || 0)),\r\n y: parseFloat((viewBoxArr[1] || 0)),\r\n width: parseFloat(viewBoxArr[2]),\r\n height: parseFloat(viewBoxArr[3])\r\n };\r\n }\r\n }\r\n if (viewBoxRect && width != null && height != null) {\r\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\r\n if (!opt.ignoreViewBox) {\r\n var elRoot = root;\r\n root = new Group();\r\n root.add(elRoot);\r\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\r\n elRoot.x = viewBoxTransform.x;\r\n elRoot.y = viewBoxTransform.y;\r\n }\r\n }\r\n if (!opt.ignoreRootClip && width != null && height != null) {\r\n root.setClipPath(new Rect({\r\n shape: { x: 0, y: 0, width: width, height: height }\r\n }));\r\n }\r\n return {\r\n root: root,\r\n width: width,\r\n height: height,\r\n viewBoxRect: viewBoxRect,\r\n viewBoxTransform: viewBoxTransform\r\n };\r\n };\r\n SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\r\n var nodeName = xmlNode.nodeName.toLowerCase();\r\n if (nodeName === 'defs') {\r\n this._isDefine = true;\r\n }\r\n else if (nodeName === 'text') {\r\n this._isText = true;\r\n }\r\n var el;\r\n if (this._isDefine) {\r\n var parser = defineParsers[nodeName];\r\n if (parser) {\r\n var def = parser.call(this, xmlNode);\r\n var id = xmlNode.getAttribute('id');\r\n if (id) {\r\n this._defs[id] = def;\r\n }\r\n }\r\n }\r\n else {\r\n var parser = nodeParsers[nodeName];\r\n if (parser) {\r\n el = parser.call(this, xmlNode, parentGroup);\r\n parentGroup.add(el);\r\n }\r\n }\r\n if (el) {\r\n var child = xmlNode.firstChild;\r\n while (child) {\r\n if (child.nodeType === 1) {\r\n this._parseNode(child, el);\r\n }\r\n if (child.nodeType === 3 && this._isText) {\r\n this._parseText(child, el);\r\n }\r\n child = child.nextSibling;\r\n }\r\n }\r\n if (nodeName === 'defs') {\r\n this._isDefine = false;\r\n }\r\n else if (nodeName === 'text') {\r\n this._isText = false;\r\n }\r\n };\r\n SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\r\n if (xmlNode.nodeType === 1) {\r\n var dx = xmlNode.getAttribute('dx') || 0;\r\n var dy = xmlNode.getAttribute('dy') || 0;\r\n this._textX += parseFloat(dx);\r\n this._textY += parseFloat(dy);\r\n }\r\n var text = new TSpan({\r\n style: {\r\n text: xmlNode.textContent\r\n },\r\n x: this._textX || 0,\r\n y: this._textY || 0\r\n });\r\n inheritStyle(parentGroup, text);\r\n parseAttributes(xmlNode, text, this._defs);\r\n var textStyle = text.style;\r\n var fontSize = textStyle.fontSize;\r\n if (fontSize && fontSize < 9) {\r\n textStyle.fontSize = 9;\r\n text.scaleX *= fontSize / 9;\r\n text.scaleY *= fontSize / 9;\r\n }\r\n var font = (textStyle.fontSize || textStyle.fontFamily) && [\r\n textStyle.fontStyle,\r\n textStyle.fontWeight,\r\n (textStyle.fontSize || 12) + 'px',\r\n textStyle.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n textStyle.font = font;\r\n var rect = text.getBoundingRect();\r\n this._textX += rect.width;\r\n parentGroup.add(text);\r\n return text;\r\n };\r\n SVGParser.internalField = (function () {\r\n nodeParsers = {\r\n 'g': function (xmlNode, parentGroup) {\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n return g;\r\n },\r\n 'rect': function (xmlNode, parentGroup) {\r\n var rect = new Rect();\r\n inheritStyle(parentGroup, rect);\r\n parseAttributes(xmlNode, rect, this._defs);\r\n rect.setShape({\r\n x: parseFloat(xmlNode.getAttribute('x') || '0'),\r\n y: parseFloat(xmlNode.getAttribute('y') || '0'),\r\n width: parseFloat(xmlNode.getAttribute('width') || '0'),\r\n height: parseFloat(xmlNode.getAttribute('height') || '0')\r\n });\r\n return rect;\r\n },\r\n 'circle': function (xmlNode, parentGroup) {\r\n var circle = new Circle();\r\n inheritStyle(parentGroup, circle);\r\n parseAttributes(xmlNode, circle, this._defs);\r\n circle.setShape({\r\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\r\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\r\n r: parseFloat(xmlNode.getAttribute('r') || '0')\r\n });\r\n return circle;\r\n },\r\n 'line': function (xmlNode, parentGroup) {\r\n var line = new Line();\r\n inheritStyle(parentGroup, line);\r\n parseAttributes(xmlNode, line, this._defs);\r\n line.setShape({\r\n x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\r\n y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\r\n x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\r\n y2: parseFloat(xmlNode.getAttribute('y2') || '0')\r\n });\r\n return line;\r\n },\r\n 'ellipse': function (xmlNode, parentGroup) {\r\n var ellipse = new Ellipse();\r\n inheritStyle(parentGroup, ellipse);\r\n parseAttributes(xmlNode, ellipse, this._defs);\r\n ellipse.setShape({\r\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\r\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\r\n rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\r\n ry: parseFloat(xmlNode.getAttribute('ry') || '0')\r\n });\r\n return ellipse;\r\n },\r\n 'polygon': function (xmlNode, parentGroup) {\r\n var pointsStr = xmlNode.getAttribute('points');\r\n var pointsArr;\r\n if (pointsStr) {\r\n pointsArr = parsePoints(pointsStr);\r\n }\r\n var polygon = new Polygon({\r\n shape: {\r\n points: pointsArr || []\r\n }\r\n });\r\n inheritStyle(parentGroup, polygon);\r\n parseAttributes(xmlNode, polygon, this._defs);\r\n return polygon;\r\n },\r\n 'polyline': function (xmlNode, parentGroup) {\r\n var path = new Path();\r\n inheritStyle(parentGroup, path);\r\n parseAttributes(xmlNode, path, this._defs);\r\n var pointsStr = xmlNode.getAttribute('points');\r\n var pointsArr;\r\n if (pointsStr) {\r\n pointsArr = parsePoints(pointsStr);\r\n }\r\n var polyline = new Polyline({\r\n shape: {\r\n points: pointsArr || []\r\n }\r\n });\r\n return polyline;\r\n },\r\n 'image': function (xmlNode, parentGroup) {\r\n var img = new ZRImage();\r\n inheritStyle(parentGroup, img);\r\n parseAttributes(xmlNode, img, this._defs);\r\n img.setStyle({\r\n image: xmlNode.getAttribute('xlink:href'),\r\n x: +xmlNode.getAttribute('x'),\r\n y: +xmlNode.getAttribute('y'),\r\n width: +xmlNode.getAttribute('width'),\r\n height: +xmlNode.getAttribute('height')\r\n });\r\n return img;\r\n },\r\n 'text': function (xmlNode, parentGroup) {\r\n var x = xmlNode.getAttribute('x') || '0';\r\n var y = xmlNode.getAttribute('y') || '0';\r\n var dx = xmlNode.getAttribute('dx') || '0';\r\n var dy = xmlNode.getAttribute('dy') || '0';\r\n this._textX = parseFloat(x) + parseFloat(dx);\r\n this._textY = parseFloat(y) + parseFloat(dy);\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n return g;\r\n },\r\n 'tspan': function (xmlNode, parentGroup) {\r\n var x = xmlNode.getAttribute('x');\r\n var y = xmlNode.getAttribute('y');\r\n if (x != null) {\r\n this._textX = parseFloat(x);\r\n }\r\n if (y != null) {\r\n this._textY = parseFloat(y);\r\n }\r\n var dx = xmlNode.getAttribute('dx') || 0;\r\n var dy = xmlNode.getAttribute('dy') || 0;\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n this._textX += dx;\r\n this._textY += dy;\r\n return g;\r\n },\r\n 'path': function (xmlNode, parentGroup) {\r\n var d = xmlNode.getAttribute('d') || '';\r\n var path = createFromString(d);\r\n inheritStyle(parentGroup, path);\r\n parseAttributes(xmlNode, path, this._defs);\r\n return path;\r\n }\r\n };\r\n })();\r\n return SVGParser;\r\n }());\r\n var defineParsers = {\r\n 'lineargradient': function (xmlNode) {\r\n var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\r\n var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\r\n var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\r\n var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\r\n var gradient = new LinearGradient(x1, y1, x2, y2);\r\n _parseGradientColorStops(xmlNode, gradient);\r\n return gradient;\r\n }\r\n };\r\n function _parseGradientColorStops(xmlNode, gradient) {\r\n var stop = xmlNode.firstChild;\r\n while (stop) {\r\n if (stop.nodeType === 1) {\r\n var offsetStr = stop.getAttribute('offset');\r\n var offset = void 0;\r\n if (offsetStr.indexOf('%') > 0) {\r\n offset = parseInt(offsetStr, 10) / 100;\r\n }\r\n else if (offsetStr) {\r\n offset = parseFloat(offsetStr);\r\n }\r\n else {\r\n offset = 0;\r\n }\r\n var stopColor = stop.getAttribute('stop-color') || '#000000';\r\n gradient.colorStops.push({\r\n offset: offset,\r\n color: stopColor\r\n });\r\n }\r\n stop = stop.nextSibling;\r\n }\r\n }\r\n function inheritStyle(parent, child) {\r\n if (parent && parent.__inheritedStyle) {\r\n if (!child.__inheritedStyle) {\r\n child.__inheritedStyle = {};\r\n }\r\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\r\n }\r\n }\r\n function parsePoints(pointsString) {\r\n var list = trim(pointsString).split(DILIMITER_REG);\r\n var points = [];\r\n for (var i = 0; i < list.length; i += 2) {\r\n var x = parseFloat(list[i]);\r\n var y = parseFloat(list[i + 1]);\r\n points.push([x, y]);\r\n }\r\n return points;\r\n }\r\n var attributesMap = {\r\n 'fill': 'fill',\r\n 'stroke': 'stroke',\r\n 'stroke-width': 'lineWidth',\r\n 'opacity': 'opacity',\r\n 'fill-opacity': 'fillOpacity',\r\n 'stroke-opacity': 'strokeOpacity',\r\n 'stroke-dasharray': 'lineDash',\r\n 'stroke-dashoffset': 'lineDashOffset',\r\n 'stroke-linecap': 'lineCap',\r\n 'stroke-linejoin': 'lineJoin',\r\n 'stroke-miterlimit': 'miterLimit',\r\n 'font-family': 'fontFamily',\r\n 'font-size': 'fontSize',\r\n 'font-style': 'fontStyle',\r\n 'font-weight': 'fontWeight',\r\n 'text-align': 'textAlign',\r\n 'alignment-baseline': 'textBaseline'\r\n };\r\n function parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\r\n var disp = el;\r\n var zrStyle = disp.__inheritedStyle || {};\r\n if (xmlNode.nodeType === 1) {\r\n parseTransformAttribute(xmlNode, el);\r\n extend(zrStyle, parseStyleAttribute(xmlNode));\r\n if (!onlyInlineStyle) {\r\n for (var svgAttrName in attributesMap) {\r\n if (attributesMap.hasOwnProperty(svgAttrName)) {\r\n var attrValue = xmlNode.getAttribute(svgAttrName);\r\n if (attrValue != null) {\r\n zrStyle[attributesMap[svgAttrName]] = attrValue;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n disp.style = disp.style || {};\r\n zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\r\n zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\r\n each([\r\n 'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\r\n ], function (propName) {\r\n zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\r\n });\r\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\r\n zrStyle.textBaseline = 'alphabetic';\r\n }\r\n if (zrStyle.textBaseline === 'alphabetic') {\r\n zrStyle.textBaseline = 'bottom';\r\n }\r\n if (zrStyle.textAlign === 'start') {\r\n zrStyle.textAlign = 'left';\r\n }\r\n if (zrStyle.textAlign === 'end') {\r\n zrStyle.textAlign = 'right';\r\n }\r\n each(['lineDashOffset', 'lineCap', 'lineJoin',\r\n 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\r\n ], function (propName) {\r\n zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\r\n });\r\n if (zrStyle.lineDash) {\r\n disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\r\n return parseFloat(str);\r\n });\r\n }\r\n disp.__inheritedStyle = zrStyle;\r\n }\r\n var urlRegex = /url\\(\\s*#(.*?)\\)/;\r\n function getPaint(str, defs) {\r\n var urlMatch = defs && str && str.match(urlRegex);\r\n if (urlMatch) {\r\n var url = trim(urlMatch[1]);\r\n var def = defs[url];\r\n return def;\r\n }\r\n return str;\r\n }\r\n var transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\r\n function parseTransformAttribute(xmlNode, node) {\r\n var transform = xmlNode.getAttribute('transform');\r\n if (transform) {\r\n transform = transform.replace(/,/g, ' ');\r\n var transformOps_1 = [];\r\n var m = null;\r\n transform.replace(transformRegex, function (str, type, value) {\r\n transformOps_1.push(type, value);\r\n return '';\r\n });\r\n for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\r\n var value = transformOps_1[i];\r\n var type = transformOps_1[i - 1];\r\n var valueArr = void 0;\r\n m = m || create$1();\r\n switch (type) {\r\n case 'translate':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\r\n break;\r\n case 'scale':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n scale$1(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\r\n break;\r\n case 'rotate':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n rotate(m, m, parseFloat(valueArr[0]));\r\n break;\r\n case 'skew':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n console.warn('Skew transform is not supported yet');\r\n break;\r\n case 'matrix':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n m[0] = parseFloat(valueArr[0]);\r\n m[1] = parseFloat(valueArr[1]);\r\n m[2] = parseFloat(valueArr[2]);\r\n m[3] = parseFloat(valueArr[3]);\r\n m[4] = parseFloat(valueArr[4]);\r\n m[5] = parseFloat(valueArr[5]);\r\n break;\r\n }\r\n }\r\n node.setLocalTransform(m);\r\n }\r\n }\r\n var styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\r\n function parseStyleAttribute(xmlNode) {\r\n var style = xmlNode.getAttribute('style');\r\n var result = {};\r\n if (!style) {\r\n return result;\r\n }\r\n var styleList = {};\r\n styleRegex.lastIndex = 0;\r\n var styleRegResult;\r\n while ((styleRegResult = styleRegex.exec(style)) != null) {\r\n styleList[styleRegResult[1]] = styleRegResult[2];\r\n }\r\n for (var svgAttrName in attributesMap) {\r\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\r\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\r\n }\r\n }\r\n return result;\r\n }\r\n function makeViewBoxTransform(viewBoxRect, width, height) {\r\n var scaleX = width / viewBoxRect.width;\r\n var scaleY = height / viewBoxRect.height;\r\n var scale = Math.min(scaleX, scaleY);\r\n return {\r\n scale: scale,\r\n x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\r\n y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\r\n };\r\n }\r\n function parseSVG(xml, opt) {\r\n var parser = new SVGParser();\r\n return parser.parse(xml, opt);\r\n }\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: cb, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.opacity = retrieve2(style.opacity, 1);\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var shadowStyle = (rectEl || imgEl).style;\r\n shadowStyle.shadowBlur = style.shadowBlur || 0;\r\n shadowStyle.shadowColor = style.shadowColor || 'transparent';\r\n shadowStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n shadowStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$2 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$2 / n;\r\n var deg = -PI$2 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var SectorShape = (function () {\r\n function SectorShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SectorShape;\r\n }());\r\n var Sector = (function (_super) {\r\n __extends(Sector, _super);\r\n function Sector(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Sector.prototype.getDefaultShape = function () {\r\n return new SectorShape();\r\n };\r\n Sector.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r0 + x, unitY * r0 + y);\r\n ctx.lineTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n }\r\n ctx.closePath();\r\n };\r\n Sector.prototype.isZeroArea = function () {\r\n return this.shape.startAngle === this.shape.endAngle\r\n || this.shape.r === this.shape.r0;\r\n };\r\n return Sector;\r\n }(Path));\r\n Sector.prototype.type = 'sector';\n\n var PI$3 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$3 / n) / cos$2(PI$3 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n var instances = {};\r\n function delInstance(id) {\r\n delete instances[id];\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n var _this = this;\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: function () { return _this._flush(true); }\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this.refresh();\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this.refresh();\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update();\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n this._flush(false);\r\n };\r\n ZRender.prototype._flush = function (fromInside) {\r\n var triggerRendered;\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(fromInside);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered');\r\n }\r\n else {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > 10) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover) {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n instances[zr.id] = zr;\r\n return zr;\r\n }\r\n function dispose(zr) {\r\n zr.dispose();\r\n }\r\n function disposeAll() {\r\n for (var key in instances) {\r\n if (instances.hasOwnProperty(key)) {\r\n instances[key].dispose();\r\n }\r\n }\r\n instances = {};\r\n }\r\n function getInstance(id) {\r\n return instances[id];\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\r\n var version = '5.0.0-alpha.2';\n\n var zrender = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init,\n dispose: dispose,\n disposeAll: disposeAll,\n getInstance: getInstance,\n registerPainter: registerPainter,\n version: version\n });\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function asc(arr) {\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n return arr;\r\n }\r\n function getPrecision(val) {\r\n val = +val;\r\n if (isNaN(val)) {\r\n return 0;\r\n }\r\n var e = 1;\r\n var count = 0;\r\n while (Math.round(val * e) / e !== val) {\r\n e *= 10;\r\n count++;\r\n }\r\n return count;\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n var MAX_SAFE_INTEGER = 9007199254740991;\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function quantile(ascArr, p) {\r\n var H = (ascArr.length - 1) * p + 1;\r\n var h = Math.floor(H);\r\n var v = +ascArr[h - 1];\r\n var e = H - h;\r\n return e ? v + e * (ascArr[h] - v) : v;\r\n }\r\n function reformIntervals(list) {\r\n list.sort(function (a, b) {\r\n return littleThan(a, b, 0) ? -1 : 1;\r\n });\r\n var curr = -Infinity;\r\n var currClose = 1;\r\n for (var i = 0; i < list.length;) {\r\n var interval = list[i].interval;\r\n var close_1 = list[i].close;\r\n for (var lg = 0; lg < 2; lg++) {\r\n if (interval[lg] <= curr) {\r\n interval[lg] = curr;\r\n close_1[lg] = (!lg ? 1 - currClose : 1);\r\n }\r\n curr = interval[lg];\r\n currClose = close_1[lg];\r\n }\r\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\r\n list.splice(i, 1);\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return list;\r\n function littleThan(a, b, lg) {\r\n return a.interval[lg] < b.interval[lg]\r\n || (a.interval[lg] === b.interval[lg]\r\n && ((a.close[lg] - b.close[lg] === (!lg ? 1 : -1))\r\n || (!lg && littleThan(a, b, 1))));\r\n }\r\n }\r\n function numericToNumber(val) {\r\n var valFloat = parseFloat(val);\r\n return (valFloat == val\r\n && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0)) ? valFloat : NaN;\r\n }\r\n function isNumeric(val) {\r\n return !isNaN(numericToNumber(val));\r\n }\n\n var number = /*#__PURE__*/Object.freeze({\n __proto__: null,\n linearMap: linearMap,\n parsePercent: parsePercent$2,\n round: round$1,\n asc: asc,\n getPrecision: getPrecision,\n getPrecisionSafe: getPrecisionSafe,\n getPixelPrecision: getPixelPrecision,\n getPercentWithPrecision: getPercentWithPrecision,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,\n remRadian: remRadian,\n isRadianAroundZero: isRadianAroundZero,\n parseDate: parseDate,\n quantity: quantity,\n quantityExponent: quantityExponent,\n nice: nice,\n quantile: quantile,\n reformIntervals: reformIntervals,\n numericToNumber: numericToNumber,\n isNumeric: isNumeric\n });\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n cmptOption.id == null || validateIdOrName(cmptOption.id);\r\n cmptOption.name == null || validateIdOrName(cmptOption.name);\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n var nextIdx = 0;\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = obj1[attr];\r\n var key2 = obj2[attr];\r\n return key1 != null && key2 != null && key1 + '' === key2 + '';\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return val + '';\r\n }\r\n function validateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n assert(isValidIdOrName(idOrName), '`' + idOrName + '` is invalid id or name. Must be a string.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function makeInternalComponentId(idSuffix) {\r\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function compressBatches(batchA, batchB) {\r\n var mapA = {};\r\n var mapB = {};\r\n makeMap(batchA || [], mapA);\r\n makeMap(batchB || [], mapB, mapA);\r\n return [mapToArray(mapA), mapToArray(mapB)];\r\n function makeMap(sourceBatch, map, otherMap) {\r\n for (var i = 0, len = sourceBatch.length; i < len; i++) {\r\n var seriesId = sourceBatch[i].seriesId;\r\n var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\r\n var otherDataIndices = otherMap && otherMap[seriesId];\r\n for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\r\n var dataIndex = dataIndices[j];\r\n if (otherDataIndices && otherDataIndices[dataIndex]) {\r\n otherDataIndices[dataIndex] = null;\r\n }\r\n else {\r\n (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\r\n }\r\n }\r\n }\r\n }\r\n function mapToArray(map, isData) {\r\n var result = [];\r\n for (var i in map) {\r\n if (map.hasOwnProperty(i) && map[i] != null) {\r\n if (isData) {\r\n result.push(+i);\r\n }\r\n else {\r\n var dataIndices = mapToArray(map[i], true);\r\n dataIndices.length && result.push({ seriesId: i, dataIndex: dataIndices });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = Math.round(Math.random() * 5);\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (mainType !== defaultMainType && value == null)\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: mainType === defaultMainType,\r\n enableAll: true,\r\n enableNone: true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n var MULTIPLE_REFERRING = { useDefault: false, enableAll: true, enableNone: true };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\r\n function getTooltipRenderMode(renderModeOption) {\r\n if (renderModeOption === 'auto') {\r\n return env.domSupported ? 'html' : 'richText';\r\n }\r\n else {\r\n return renderModeOption || 'html';\r\n }\r\n }\r\n function groupData(array, getKey) {\r\n var buckets = createHashMap();\r\n var keys = [];\r\n each(array, function (item) {\r\n var key = getKey(item);\r\n (buckets.get(key)\r\n || (keys.push(key), buckets.set(key, []))).push(item);\r\n });\r\n return {\r\n keys: keys,\r\n buckets: buckets\r\n };\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper (properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color$1) {\r\n if (typeof color$1 !== 'string') {\r\n return color$1;\r\n }\r\n var liftedColor = liftedColorCache.get(color$1);\r\n if (!liftedColor) {\r\n liftedColor = lift(color$1, -0.1);\r\n liftedColorCache.put(color$1, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange) {\r\n if ((el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(ecIns) {\r\n var model = ecIns.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? ecIns.getViewOfSeriesModel(componentModel)\r\n : ecIns.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, ecIns, isBlur) {\r\n var ecModel = ecIns.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(ecIns);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = ecIns.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = ecIns.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, ecIns) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, ecIns, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, ecIns, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, ecIns) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n if (focus != null) {\r\n var ecData = getECData(el);\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var styleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getterType) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = model[getterType || styleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : val;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\r\n function throwError(msg) {\r\n throw new Error(msg);\r\n }\n\n var EMPTY_OBJ = {};\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : null;\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n textContent = targetEl.getTextContent();\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n stateObj.ignore = !retrieve2(stateModel.getShallow('show'), showNormal);\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'opacity',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n if (!isAttached) {\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n }\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var lineWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (lineWidth != null) {\r\n textStyle.lineWidth = lineWidth;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n var style = getLineStyle(this, excludes);\r\n style.lineDash = this.getLineDash(style.lineWidth);\r\n return style;\r\n };\r\n LineStyleMixin.prototype.getLineDash = function (lineWidth) {\r\n if (lineWidth == null) {\r\n lineWidth = 1;\r\n }\r\n var lineType = this.get('type');\r\n var dotSize = Math.max(lineWidth, 2);\r\n var dashSize = lineWidth * 4;\r\n return (lineType === 'solid' || lineType == null)\r\n ? false\r\n : lineType === 'dashed'\r\n ? [dashSize, dashSize]\r\n : [dotSize, dotSize];\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n var style = getItemStyle(this, excludes, includes);\r\n var lineDash = this.getBorderLineDash();\r\n lineDash && (style.lineDash = lineDash);\r\n return style;\r\n };\r\n ItemStyleMixin.prototype.getBorderLineDash = function () {\r\n var lineType = this.get('borderType');\r\n return (lineType === 'solid' || lineType == null) ? null\r\n : (lineType === 'dashed' ? [5, 5] : [1, 1]);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var stack = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (stack.length) {\r\n var currComponentType = stack.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n throw new Error('Circle dependency may exists');\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n stack.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}:{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, lang, isUTC) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, lang, isUTC);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n var mathMax$3 = Math.max;\r\n var mathMin$3 = Math.min;\r\n var _customShapeMap = {};\r\n var innerLabel = makeInner();\r\n function extendShape(opts) {\r\n return Path.extend(opts);\r\n }\r\n var extendPathFromString = extendFromString;\r\n function extendPath(pathData, opts) {\r\n return extendPathFromString(pathData, opts);\r\n }\r\n function registerShape(name, ShapeClass) {\r\n _customShapeMap[name] = ShapeClass;\r\n }\r\n function getShapeClass(name) {\r\n if (_customShapeMap.hasOwnProperty(name)) {\r\n return _customShapeMap[name];\r\n }\r\n }\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n var mergePath$1 = mergePath;\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function subPixelOptimizeLine$1(param) {\r\n subPixelOptimizeLine(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n function subPixelOptimizeRect$1(param) {\r\n subPixelOptimizeRect(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n var subPixelOptimize$1 = subPixelOptimize;\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n duration = 200;\r\n animationEasing = 'cubicOut';\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n }\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(), el.attr(props), cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, function (percent) {\r\n during && during(percent);\r\n });\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function animateOrSetLabel(animationType, el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n var valueAnimationEnabled = labelModel && labelModel.get('valueAnimation');\r\n if (valueAnimationEnabled) {\r\n var precisionOption = labelModel.get('precision');\r\n var precision_1 = !precisionOption || precisionOption === 'auto'\r\n ? 0\r\n : precisionOption;\r\n var interpolateValues_1;\r\n var rawValues_1 = seriesModel.getRawValue(dataIndex);\r\n var isRawValueNumber_1 = false;\r\n if (typeof rawValues_1 === 'number') {\r\n isRawValueNumber_1 = true;\r\n interpolateValues_1 = rawValues_1;\r\n }\r\n else {\r\n interpolateValues_1 = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type !== 'ordinal') {\r\n interpolateValues_1.push(rawValues_1[i]);\r\n }\r\n }\r\n }\r\n var text = el.getTextContent();\r\n var host_1 = text && innerLabel(text);\r\n host_1 && (host_1.startValue = host_1.nextValue);\r\n var duration = animatableModel.get('animationDuration');\r\n if (!duration) {\r\n host_1.nextValue = interpolateValues_1;\r\n }\r\n var during = function (percent) {\r\n var text = el.getTextContent();\r\n if (!text || !host_1) {\r\n return;\r\n }\r\n var interpolated;\r\n if (isRawValueNumber_1) {\r\n var value = interpolateNumber(host_1.startValue || 0, interpolateValues_1, percent);\r\n interpolated = round$1(value, precision_1);\r\n }\r\n else {\r\n interpolated = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = rawValues_1[i];\r\n }\r\n else {\r\n var startValues = host_1.startValue;\r\n var value = startValues == null\r\n ? rawValues_1[i]\r\n : interpolateNumber(startValues && startValues[i] ? startValues[i] : 0, interpolateValues_1[i], percent);\r\n interpolated[i] = round$1(value), precision_1;\r\n }\r\n }\r\n }\r\n host_1.nextValue = interpolated;\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n labelFetcher: seriesModel,\r\n defaultText: defaultTextGetter\r\n ? defaultTextGetter(interpolated)\r\n : interpolated + ''\r\n }, { normal: labelModel }, interpolated);\r\n text.style.text = labelText.normal;\r\n text.dirty();\r\n };\r\n var props = {};\r\n animateOrSetProps(animationType, el, props, animatableModel, dataIndex, null, during);\r\n }\r\n }\r\n function updateLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('update', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function initLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('init', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function getTransform(target, ancestor) {\r\n var mat = identity([]);\r\n while (target && target !== ancestor) {\r\n mul$1(mat, target.getLocalTransform(), mat);\r\n target = target.parent;\r\n }\r\n return mat;\r\n }\r\n function applyTransform$1(target, transform, invert$1) {\r\n if (transform && !isArrayLike(transform)) {\r\n transform = Transformable.getLocalTransform(transform);\r\n }\r\n if (invert$1) {\r\n transform = invert([], transform);\r\n }\r\n return applyTransform([], target, transform);\r\n }\r\n function transformDirection(direction, transform, invert) {\r\n var hBase = (transform[4] === 0 || transform[5] === 0 || transform[0] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[0]);\r\n var vBase = (transform[4] === 0 || transform[5] === 0 || transform[2] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[2]);\r\n var vertex = [\r\n direction === 'left' ? -hBase : direction === 'right' ? hBase : 0,\r\n direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0\r\n ];\r\n vertex = applyTransform$1(vertex, transform, invert);\r\n return Math.abs(vertex[0]) > Math.abs(vertex[1])\r\n ? (vertex[0] > 0 ? 'right' : 'left')\r\n : (vertex[1] > 0 ? 'bottom' : 'top');\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\r\n function clipPointsByRect(points, rect) {\r\n return map(points, function (point) {\r\n var x = point[0];\r\n x = mathMax$3(x, rect.x);\r\n x = mathMin$3(x, rect.x + rect.width);\r\n var y = point[1];\r\n y = mathMax$3(y, rect.y);\r\n y = mathMin$3(y, rect.y + rect.height);\r\n return [x, y];\r\n });\r\n }\r\n function clipRectByRect(targetRect, rect) {\r\n var x = mathMax$3(targetRect.x, rect.x);\r\n var x2 = mathMin$3(targetRect.x + targetRect.width, rect.x + rect.width);\r\n var y = mathMax$3(targetRect.y, rect.y);\r\n var y2 = mathMin$3(targetRect.y + targetRect.height, rect.y + rect.height);\r\n if (x2 >= x && y2 >= y) {\r\n return {\r\n x: x,\r\n y: y,\r\n width: x2 - x,\r\n height: y2 - y\r\n };\r\n }\r\n }\r\n function createIcon(iconStr, opt, rect) {\r\n var innerOpts = extend({ rectHover: true }, opt);\r\n var style = innerOpts.style = { strokeNoScale: true };\r\n rect = rect || { x: -1, y: -1, width: 2, height: 2 };\r\n if (iconStr) {\r\n return iconStr.indexOf('image://') === 0\r\n ? (style.image = iconStr.slice(8),\r\n defaults(style, rect),\r\n new ZRImage(innerOpts))\r\n : (makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center'));\r\n }\r\n }\r\n function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\r\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\r\n var p = points[i];\r\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\r\n return true;\r\n }\r\n p2 = p;\r\n }\r\n }\r\n function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\r\n var mx = a2x - a1x;\r\n var my = a2y - a1y;\r\n var nx = b2x - b1x;\r\n var ny = b2y - b1y;\r\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\r\n if (nearZero(nmCrossProduct)) {\r\n return false;\r\n }\r\n var b1a1x = a1x - b1x;\r\n var b1a1y = a1y - b1y;\r\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\r\n if (q < 0 || q > 1) {\r\n return false;\r\n }\r\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\r\n if (p < 0 || p > 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function crossProduct2d(x1, y1, x2, y2) {\r\n return x1 * y2 - x2 * y1;\r\n }\r\n function nearZero(val) {\r\n return val <= (1e-6) && val >= -(1e-6);\r\n }\r\n registerShape('circle', Circle);\r\n registerShape('ellipse', Ellipse);\r\n registerShape('sector', Sector);\r\n registerShape('ring', Ring);\r\n registerShape('polygon', Polygon);\r\n registerShape('polyline', Polyline);\r\n registerShape('rect', Rect);\r\n registerShape('line', Line);\r\n registerShape('bezierCurve', BezierCurve);\r\n registerShape('arc', Arc);\n\n var graphic = /*#__PURE__*/Object.freeze({\n __proto__: null,\n extendShape: extendShape,\n extendPath: extendPath,\n registerShape: registerShape,\n getShapeClass: getShapeClass,\n makePath: makePath,\n makeImage: makeImage,\n mergePath: mergePath$1,\n resizePath: resizePath,\n subPixelOptimizeLine: subPixelOptimizeLine$1,\n subPixelOptimizeRect: subPixelOptimizeRect$1,\n subPixelOptimize: subPixelOptimize$1,\n updateProps: updateProps,\n initProps: initProps,\n removeElement: removeElement,\n removeElementWithFadeOut: removeElementWithFadeOut,\n isElementRemoved: isElementRemoved,\n updateLabel: updateLabel,\n initLabel: initLabel,\n getTransform: getTransform,\n applyTransform: applyTransform$1,\n transformDirection: transformDirection,\n groupTransition: groupTransition,\n clipPointsByRect: clipPointsByRect,\n clipRectByRect: clipRectByRect,\n createIcon: createIcon,\n linePolygonIntersect: linePolygonIntersect,\n lineLineIntersect: lineLineIntersect,\n Group: Group,\n Image: ZRImage,\n Text: ZRText,\n Circle: Circle,\n Ellipse: Ellipse,\n Sector: Sector,\n Ring: Ring,\n Polygon: Polygon,\n Polyline: Polyline,\n Rect: Rect,\n Line: Line,\n BezierCurve: BezierCurve,\n Arc: Arc,\n IncrementalDisplayable: IncrementalDisplayble,\n CompoundPath: CompoundPath,\n LinearGradient: LinearGradient,\n RadialGradient: RadialGradient,\n BoundingRect: BoundingRect,\n OrientedBoundingRect: OrientedBoundingRect,\n Point: Point,\n Path: Path\n });\n\n function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\r\n deprecateLog('getTextRect is deprecated.');\r\n var textEl = new ZRText({\r\n style: {\r\n text: text,\r\n font: font,\r\n align: align,\r\n verticalAlign: verticalAlign,\r\n padding: padding,\r\n rich: rich,\r\n overflow: truncate ? 'truncate' : null,\r\n lineHeight: lineHeight\r\n }\r\n });\r\n return textEl.getBoundingRect();\r\n }\n\n function addCommas(x) {\r\n if (isNaN(x)) {\r\n return '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n function toCamelCase(str, upperCaseFirst) {\r\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (upperCaseFirst && str) {\r\n str = str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n return str;\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': '''\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n function concatTooltipHtml(html, value, dontEncodeHtml) {\r\n return (dontEncodeHtml ? html : \"\" + encodeHTML(html) + \"\")\r\n + (value ? '' : '')\r\n + encodeHTML(value)\r\n + (value ? '' : '');\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var isTimeAxis = paramsList[0].axisType && paramsList[0].axisType.indexOf('time') >= 0;\r\n if (isTimeAxis) {\r\n var axisValue = paramsList[0].data[paramsList[0].axisIndex];\r\n var date = parseDate(axisValue);\r\n return format(date, tpl);\r\n }\r\n else {\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n }\r\n return tpl;\r\n }\r\n function formatTplSimple(tpl, param, encode) {\r\n each(param, function (value, key) {\r\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\r\n });\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n var markerId = opt.markerId || 'X';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? ''\r\n : '';\r\n }\r\n else {\r\n return {\r\n renderMode: renderMode,\r\n content: '{marker' + markerId + '|} ',\r\n style: {\r\n color: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\r\n function capitalFirst(str) {\r\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\r\n }\r\n function windowOpen(link, target) {\r\n if (target === '_blank' || target === 'blank') {\r\n var blank = window.open();\r\n blank.opener = null;\r\n blank.location.href = link;\r\n }\r\n else {\r\n window.open(link, target);\r\n }\r\n }\n\n var format$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addCommas: addCommas,\n toCamelCase: toCamelCase,\n normalizeCssArray: normalizeCssArray$1,\n encodeHTML: encodeHTML,\n concatTooltipHtml: concatTooltipHtml,\n formatTpl: formatTpl,\n formatTplSimple: formatTplSimple,\n getTooltipMarker: getTooltipMarker,\n formatTime: formatTime,\n capitalFirst: capitalFirst,\n windowOpen: windowOpen,\n truncateText: truncateText,\n getTextRect: getTextRect\n });\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var box = boxLayout;\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getAvailableSize(positionInfo, containerRect, margin) {\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var x = parsePercent$2(positionInfo.left, containerWidth);\r\n var y = parsePercent$2(positionInfo.top, containerHeight);\r\n var x2 = parsePercent$2(positionInfo.right, containerWidth);\r\n var y2 = parsePercent$2(positionInfo.bottom, containerHeight);\r\n (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\r\n (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\r\n (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\r\n (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\r\n margin = normalizeCssArray$1(margin || 0);\r\n return {\r\n width: Math.max(x2 - x - margin[1] - margin[3], 0),\r\n height: Math.max(y2 - y - margin[0] - margin[2], 0)\r\n };\r\n }\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function positionElement(el, positionInfo, containerRect, margin, opt) {\r\n var h = !opt || !opt.hv || opt.hv[0];\r\n var v = !opt || !opt.hv || opt.hv[1];\r\n var boundingMode = opt && opt.boundingMode || 'all';\r\n if (!h && !v) {\r\n return;\r\n }\r\n var rect;\r\n if (boundingMode === 'raw') {\r\n rect = el.type === 'group'\r\n ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0)\r\n : el.getBoundingRect();\r\n }\r\n else {\r\n rect = el.getBoundingRect();\r\n if (el.needLocalTransform()) {\r\n var transform = el.getLocalTransform();\r\n rect = rect.clone();\r\n rect.applyTransform(transform);\r\n }\r\n }\r\n var layoutRect = getLayoutRect(defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin);\r\n var dx = h ? layoutRect.x - rect.x : 0;\r\n var dy = v ? layoutRect.y - rect.y : 0;\r\n if (boundingMode === 'raw') {\r\n el.x = dx;\r\n el.y = dy;\r\n }\r\n else {\r\n el.x += dx;\r\n el.y += dy;\r\n }\r\n el.markRedraw();\r\n }\r\n function sizeCalculable(option, hvIdx) {\r\n return option[HV_NAMES[hvIdx][0]] != null\r\n || (option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null);\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#fac858',\r\n '#ee6666',\r\n '#73c0de',\r\n '#3ba272',\r\n '#fc8452',\r\n '#9a60b4',\r\n '#ea7ccc'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var inner$1 = makeInner();\r\n function getNearestColorPalette(colors, requestColorNum) {\r\n var paletteNum = colors.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (colors[i].length > requestColorNum) {\r\n return colors[i];\r\n }\r\n }\r\n return colors[paletteNum - 1];\r\n }\r\n var ColorPaletteMixin = (function () {\r\n function ColorPaletteMixin() {\r\n }\r\n ColorPaletteMixin.prototype.clearColorPalette = function () {\r\n inner$1(this).colorIdx = 0;\r\n inner$1(this).colorNameMap = {};\r\n };\r\n ColorPaletteMixin.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n scope = scope || this;\r\n var scopeFields = inner$1(scope);\r\n var colorIdx = scopeFields.colorIdx || 0;\r\n var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {};\r\n if (colorNameMap.hasOwnProperty(name)) {\r\n return colorNameMap[name];\r\n }\r\n var defaultColorPalette = normalizeToArray(this.get('color', true));\r\n var layeredColorPalette = this.get('colorLayer', true);\r\n var colorPalette = ((requestColorNum == null || !layeredColorPalette)\r\n ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum));\r\n colorPalette = colorPalette || defaultColorPalette;\r\n if (!colorPalette || !colorPalette.length) {\r\n return;\r\n }\r\n var color = colorPalette[colorIdx];\r\n if (name) {\r\n colorNameMap[name] = color;\r\n }\r\n scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\r\n return color;\r\n };\r\n return ColorPaletteMixin;\r\n }());\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var Source = (function () {\r\n function Source(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectCount = fields.dimensionsDetectCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n Source.seriesDataToSource = function (data) {\r\n return new Source({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n };\r\n return Source;\r\n }());\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var dimInfo = determineSourceDimensions(sourceData, sourceFormat, thisMetaRawOption.seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new Source({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: thisMetaRawOption.seriesLayoutBy,\r\n dimensionsDefine: dimInfo.dimensionsDefine,\r\n startIndex: dimInfo.startIndex,\r\n dimensionsDetectCount: dimInfo.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function inheritSourceMetaRawOption(opt) {\r\n return defaults(opt.thisNew, opt.parent);\r\n }\r\n function cloneSourceShallow(source) {\r\n return new Source({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectCount: source.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (item, index) {\r\n item = extend({}, isObject(item) ? item : { name: item });\r\n if (item.name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function registerInternalOptionCreator(mainType, creator) {\r\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\r\n internalOptionCreatorMap.set(mainType, creator);\r\n }\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeReplaceMergeInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeReplaceMergeInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (!newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.name === name; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n componentTypes.push(componentType);\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seriesIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap(idOrName);\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n validateIdOrName(idOrNameItem);\r\n keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n validateIdOrName(idOrName);\r\n return filter(cmpts, function (cmpt) { return cmpt && cmpt[attr] === idOrName + ''; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeReplaceMergeInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, ColorPaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getModel',\r\n 'getOption',\r\n 'getViewOfComponentModel',\r\n 'getViewOfSeriesModel',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var timelineOptions = [];\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var timelineOpt = rawOption.timeline;\r\n if (rawOption.baseOption) {\r\n baseOption = rawOption.baseOption;\r\n }\r\n if (timelineOpt || rawOption.options) {\r\n baseOption = baseOption || {};\r\n timelineOptions = (rawOption.options || []).slice();\r\n }\r\n if (rawOption.media) {\r\n baseOption = baseOption || {};\r\n var media = rawOption.media;\r\n each(media, function (singleMedia) {\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n if (!baseOption) {\r\n baseOption = rawOption;\r\n }\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOpt;\r\n }\r\n each([baseOption].concat(timelineOptions)\r\n .concat(map(mediaList, function (media) {\r\n return media.option;\r\n })), function (option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n });\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptions,\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function compatStyle (option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set$1(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function backwardCompat (option, isTheme) {\r\n compatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set$1(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack (ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !(sourceParam instanceof Source)\r\n ? Source.seriesDataToSource(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var offset = this._dimSize * idx;\r\n for (var i = 0; i < this._dimSize; i++) {\r\n out[i] = this._data[offset + i];\r\n }\r\n return out;\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var col = rawData[dimsDef[i].name];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\r\n var valueParserMap = createHashMap({\r\n 'number': function (val) {\r\n return parseFloat(val);\r\n },\r\n 'time': function (val) {\r\n return +parseDate(val);\r\n },\r\n 'trim': function (val) {\r\n return typeof val === 'string' ? trim(val) : val;\r\n }\r\n });\r\n function getRawValueParser(type) {\r\n return valueParserMap.get(type);\r\n }\r\n var ORDER_COMPARISON_OP_MAP = {\r\n lt: function (lval, rval) { return lval < rval; },\r\n lte: function (lval, rval) { return lval <= rval; },\r\n gt: function (lval, rval) { return lval > rval; },\r\n gte: function (lval, rval) { return lval >= rval; }\r\n };\r\n var FilterOrderComparator = (function () {\r\n function FilterOrderComparator(op, rval) {\r\n if (typeof rval !== 'number') {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\r\n }\r\n throwError(errMsg);\r\n }\r\n this._opFn = ORDER_COMPARISON_OP_MAP[op];\r\n this._rvalFloat = numericToNumber(rval);\r\n }\r\n FilterOrderComparator.prototype.evaluate = function (lval) {\r\n return typeof lval === 'number'\r\n ? this._opFn(lval, this._rvalFloat)\r\n : this._opFn(numericToNumber(lval), this._rvalFloat);\r\n };\r\n return FilterOrderComparator;\r\n }());\r\n var SortOrderComparator = (function () {\r\n function SortOrderComparator(order, incomparable) {\r\n var isDesc = order === 'desc';\r\n this._resultLT = isDesc ? 1 : -1;\r\n if (incomparable == null) {\r\n incomparable = isDesc ? 'min' : 'max';\r\n }\r\n this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\r\n }\r\n SortOrderComparator.prototype.evaluate = function (lval, rval) {\r\n var lvalTypeof = typeof lval;\r\n var rvalTypeof = typeof rval;\r\n var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\r\n var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\r\n var lvalNotNumeric = isNaN(lvalFloat);\r\n var rvalNotNumeric = isNaN(rvalFloat);\r\n if (lvalNotNumeric) {\r\n lvalFloat = this._incomparable;\r\n }\r\n if (rvalNotNumeric) {\r\n rvalFloat = this._incomparable;\r\n }\r\n if (lvalNotNumeric && rvalNotNumeric) {\r\n var lvalIsStr = lvalTypeof === 'string';\r\n var rvalIsStr = rvalTypeof === 'string';\r\n if (lvalIsStr) {\r\n lvalFloat = rvalIsStr ? lval : 0;\r\n }\r\n if (rvalIsStr) {\r\n rvalFloat = lvalIsStr ? rval : 0;\r\n }\r\n }\r\n return lvalFloat < rvalFloat ? this._resultLT\r\n : lvalFloat > rvalFloat ? -this._resultLT\r\n : 0;\r\n };\r\n return SortOrderComparator;\r\n }());\r\n var FilterEqualityComparator = (function () {\r\n function FilterEqualityComparator(isEq, rval) {\r\n this._rval = rval;\r\n this._isEQ = isEq;\r\n this._rvalTypeof = typeof rval;\r\n this._rvalFloat = numericToNumber(rval);\r\n }\r\n FilterEqualityComparator.prototype.evaluate = function (lval) {\r\n var eqResult = lval === this._rval;\r\n if (!eqResult) {\r\n var lvalTypeof = typeof lval;\r\n if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\r\n eqResult = numericToNumber(lval) === this._rvalFloat;\r\n }\r\n }\r\n return this._isEQ ? eqResult : !eqResult;\r\n };\r\n return FilterEqualityComparator;\r\n }());\r\n function createFilterComparator(op, rval) {\r\n return (op === 'eq' || op === 'ne')\r\n ? new FilterEqualityComparator(op === 'eq', rval)\r\n : hasOwn(ORDER_COMPARISON_OP_MAP, op)\r\n ? new FilterOrderComparator(op, rval)\r\n : null;\r\n }\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfoAll = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawHeaderItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveItemValue = function (rawItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertDataValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(data, sourceFormat, dimsDef, sourceHeaderCount) {\r\n var extSource = new ExternalSource();\r\n extSource.data = data;\r\n extSource.sourceFormat = sourceFormat;\r\n extSource.sourceHeaderCount = sourceHeaderCount;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n assert(!hasOwn(dimsByName, name), 'dimension name \"' + name + '\" duplicated.');\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.getRawDataItem = bind(rawItemGetter, null, data, sourceHeaderCount, dimensions);\r\n extSource.getRawHeaderItem = function (dataIndex) {\r\n if (dataIndex < sourceHeaderCount) {\r\n return rawItemGetter(data, 0, dimensions, dataIndex);\r\n }\r\n };\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveItemValue = function (rawItem, dimIndex) {\r\n if (rawItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(rawItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.getDimensionInfoAll = bind(getDimensionInfoAll, null, dimensions);\r\n return extSource;\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function getDimensionInfoAll(dimensions) {\r\n return dimensions;\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n assert(type, 'Must have a `type` when `registerTransform`.');\r\n var typeParsed = type.split(':');\r\n assert(typeParsed.length === 2, 'Name must include namespace like \"ns:regression\".');\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n }\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n for (var i = 0, len = pipedTransOption.length; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n var isFinal = i === len - 1;\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, isFinal);\r\n if (!isFinal) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(rawTransOption, upSourceList, infoForPrint, isFinal) {\r\n assert(upSourceList.length, 'Must have at least one upstream dataset.');\r\n var transOption = rawTransOption;\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n assert(externalTransform, 'Can not find transform on type \"' + transType + '\".');\r\n var sourceList = map(upSourceList, function (source) {\r\n return createExternalSource(source.data, source.sourceFormat, source.dimensionsDefine, source.startIndex);\r\n });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n source: sourceList[0],\r\n sourceList: sourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (isFinal && transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n return [\r\n '--- datasetIndex: ' + infoForPrint.datasetIndex + '---',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions),\r\n '- transform result sourceHeader: ' + extSource.sourceHeader,\r\n '------'\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n assert(isObject(result), 'A transform should not return some empty results.');\r\n assert(isObject(result.data) || isArrayLike(result.data), 'Result data should be object or array in data transform.');\r\n var resultMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSourceList[0].metaRawOption,\r\n thisNew: {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: result.sourceHeader,\r\n dimensions: result.dimensions\r\n }\r\n });\r\n return createSource(result.data, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSource ? upSource.metaRawOption : null,\r\n thisNew: this._createSourceMetaRawOption()\r\n });\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._createSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n var sourceList;\r\n var upstreamSignList;\r\n if (transformOption) {\r\n var upSourceList_1 = [];\r\n upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n upSourceList_1.push(upMgr.getSource());\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n sourceList = applyDataTransform(transformOption, upSourceList_1, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n if (upMgrList.length !== 1) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n var upMgr = upMgrList[0];\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult);\r\n upstreamSignList = [upMgr._getVersionSign()];\r\n sourceList = [cloneSourceShallow(upSource)];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._createSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var inner$2 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$2(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$2(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$2(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$2(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$2(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$2(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var series = this;\r\n renderMode = renderMode || 'html';\r\n var newLine = renderMode === 'html' ? '' : '\\n';\r\n var isRichText = renderMode === 'richText';\r\n var markers = {};\r\n var markerId = 0;\r\n function formatArrayValue(value) {\r\n var vertially = reduce(value, function (vertially, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return vertially |= (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, 0);\r\n var result = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n var dimType = dimInfo.type;\r\n var markName = 'sub' + series.seriesIndex + 'at' + markerId;\r\n var dimHead = getTooltipMarker({\r\n color: colorStr,\r\n type: 'subItem',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content;\r\n var valStr = (vertially\r\n ? ''\r\n + dimHeadStr + encodeHTML(dimInfo.displayName || '-')\r\n + ''\r\n : '')\r\n + ''\r\n + encodeHTML(dimType === 'ordinal'\r\n ? val + ''\r\n : dimType === 'time'\r\n ? (multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val))\r\n : addCommas(val))\r\n + '';\r\n valStr && result.push(\"
\" + valStr + \"
\");\r\n if (isRichText) {\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n }\r\n }\r\n var newLine = vertially ? (isRichText ? '\\n' : '') : '';\r\n var content = newLine + result.join(newLine || '');\r\n return {\r\n renderMode: renderMode,\r\n content: content,\r\n style: markers\r\n };\r\n }\r\n function formatSingleValue(val) {\r\n return {\r\n renderMode: renderMode,\r\n content: encodeHTML(addCommas(val)),\r\n style: markers\r\n };\r\n }\r\n var data = this.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = this.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style[this.visualDrawType];\r\n var colorStr;\r\n if (isString(color)) {\r\n colorStr = color;\r\n }\r\n else if (color && color.colorStops) {\r\n colorStr = (color.colorStops[0] || {}).color;\r\n }\r\n colorStr = colorStr || 'transparent';\r\n var formattedValue = (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? formatArrayValue(value)\r\n : tooltipDimLen\r\n ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0]))\r\n : formatSingleValue(isValueArr ? value[0] : value);\r\n var content = isRichText\r\n ? formattedValue.content\r\n : (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? '
'\r\n + formattedValue.content + '
'\r\n : ''\r\n + formattedValue.content + '';\r\n var markName = series.seriesIndex + 'at' + markerId;\r\n var colorEl = getTooltipMarker({\r\n color: colorStr,\r\n type: 'item',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n var name = data.getName(dataIndex);\r\n var seriesName = this.name;\r\n if (!isNameSpecified(this)) {\r\n seriesName = '';\r\n }\r\n seriesName = seriesName\r\n ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ' ')\r\n : '';\r\n colorStr = isString(colorEl) ? colorEl : colorEl.content;\r\n var html = '';\r\n if (!isRichText) {\r\n seriesName = seriesName\r\n ? !multipleSeries\r\n ? \"
\" + seriesName + \"
\"\r\n : \"\" + seriesName + \"\"\r\n : '';\r\n html = !multipleSeries\r\n ? seriesName + (\"
\")\r\n + colorStr\r\n + (name\r\n ? \"\" + encodeHTML(name) + \"\" + content\r\n : content) + '
'\r\n : \"
\" + colorStr + seriesName + content + \"
\";\r\n }\r\n else {\r\n html = !multipleSeries\r\n ? seriesName + (seriesName ? '\\n' : '') + ''\r\n + colorStr\r\n + (name\r\n ? encodeHTML(name) + \": \" + content\r\n : content) + ''\r\n : \"\" + colorStr + seriesName + \": \" + content;\r\n }\r\n return { html: html, markers: markers };\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = ColorPaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, ColorPaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(data.CHANGABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataSelfChange, seriesModel));\r\n });\r\n }\r\n function onDataSelfChange(seriesModel) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd(this.count());\r\n }\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner () {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = fields.large;\r\n var originalProgressive = fields.progressiveRender;\r\n var large = fields.large = pipelineContext && pipelineContext.large;\r\n var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;\r\n return (!!((originalLarge ^ large) || (originalProgressive ^ progressive)) && 'reset');\r\n };\r\n }\n\n var inner$3 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$3(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$3(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n var ORIGIN_METHOD = '\\0__throttleOriginMethod';\r\n var RATE = '\\0__throttleRate';\r\n var THROTTLE_TYPE = '\\0__throttleType';\r\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\r\n function createOrUpdate(obj, fnAttr, rate, throttleType) {\r\n var fn = obj[fnAttr];\r\n if (!fn) {\r\n return;\r\n }\r\n var originFn = fn[ORIGIN_METHOD] || fn;\r\n var lastThrottleType = fn[THROTTLE_TYPE];\r\n var lastRate = fn[RATE];\r\n if (lastRate !== rate || lastThrottleType !== throttleType) {\r\n if (rate == null || !throttleType) {\r\n return (obj[fnAttr] = originFn);\r\n }\r\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\r\n fn[ORIGIN_METHOD] = originFn;\r\n fn[THROTTLE_TYPE] = throttleType;\r\n fn[RATE] = rate;\r\n }\r\n return fn;\r\n }\r\n function clear(obj, fnAttr) {\r\n var fn = obj[fnAttr];\r\n if (fn && fn[ORIGIN_METHOD]) {\r\n obj[fnAttr] = fn[ORIGIN_METHOD];\r\n }\r\n }\n\n var inner$4 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$4(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$4(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || (rawIdx + ''), colorScope, dataAll.count());\r\n }\r\n });\r\n });\r\n }\r\n };\n\n function aria (dom, ecModel) {\r\n var ariaModel = ecModel.getModel('aria');\r\n if (!ariaModel.get('show')) {\r\n return;\r\n }\r\n else if (ariaModel.get('description')) {\r\n dom.setAttribute('aria-label', ariaModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = 0;\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n ++seriesCnt;\r\n }, this);\r\n var maxDataCnt = ariaModel.get('data.maxCount') || 10;\r\n var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n ariaLabel = replace(getConfig('general.withTitle'), {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = getConfig('general.withoutTitle');\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? 'series.multiple.prefix'\r\n : 'series.single.prefix';\r\n ariaLabel += replace(getConfig(prefix), { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var seriesTpl = 'series.'\r\n + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\r\n seriesLabel = getConfig(seriesName\r\n ? seriesTpl + 'withName'\r\n : seriesTpl + 'withoutName');\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n window.data = data;\r\n if (data.count() > maxDataCnt) {\r\n seriesLabel += replace(getConfig('data.partialData'), {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += getConfig('data.allData');\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n dataLabels.push(replace(name_1\r\n ? getConfig('data.withName')\r\n : getConfig('data.withoutName'), {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n seriesLabel += dataLabels\r\n .join(getConfig('data.separator.middle'))\r\n + getConfig('data.separator.end');\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n ariaLabel += seriesLabels_1\r\n .join(getConfig('series.multiple.separator.middle'))\r\n + getConfig('series.multiple.separator.end');\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getConfig(path) {\r\n var userConfig = ariaModel.get(path);\r\n if (userConfig == null) {\r\n var pathArr = path.split('.');\r\n var result = ecModel.getLocale('aria');\r\n for (var i = 0; i < pathArr.length; ++i) {\r\n result = result[pathArr[i]];\r\n }\r\n return result;\r\n }\r\n else {\r\n return userConfig;\r\n }\r\n }\r\n function getTitle() {\r\n var title = ecModel.getModel('title').option;\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocale(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n var PI$4 = Math.PI;\r\n function loadingDefault (api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#5470c6',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$4 / 2,\r\n endAngle: -PI$4 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$4 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$4 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.ecInstance.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap\r\n || (stageHandlerRecord.seriesTaskMap = createHashMap());\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = seriesTaskMap.get(pipelineId)\r\n || seriesTaskMap.set(pipelineId, createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n task.dispose();\r\n seriesTaskMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap\r\n || createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = agentStubMap.get(pipelineId);\r\n if (!stub) {\r\n stub = agentStubMap.set(pipelineId, createTask({ reset: stubReset, onDirty: stubOnDirty }));\r\n overallTask.dirty();\r\n }\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n agentStubMap.each(function (stub, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n stub.dispose();\r\n overallTask.dirty();\r\n agentStubMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#B9B8CE';\r\n var backgroundColor = '#100C2A';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n color: '#484753'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\r\n }\r\n },\r\n minorSplitLine: {\r\n lineStyle: {\r\n color: '#20203B'\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#4992ff',\r\n '#7cffb2',\r\n '#fddd60',\r\n '#ff6e76',\r\n '#58d9f9',\r\n '#05c091',\r\n '#ff8a45',\r\n '#8d48e3',\r\n '#dd79ff'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: backgroundColor,\r\n axisPointer: {\r\n lineStyle: {\r\n color: '#817f91'\r\n },\r\n crossStyle: {\r\n color: '#817f91'\r\n },\r\n label: {\r\n color: '#fff'\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: '#EEF1FA'\r\n },\r\n subtextStyle: {\r\n color: '#B9B8CE'\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n normal: {\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n dataZoom: {\r\n borderColor: '#71708A',\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n brushStyle: {\r\n color: 'rgba(135,163,206,0.3)'\r\n },\r\n handleStyle: {\r\n color: '#353450',\r\n borderColor: '#C5CBE3'\r\n },\r\n moveHandleStyle: {\r\n color: '#B0B6C3',\r\n opacity: 0.3\r\n },\r\n fillerColor: 'rgba(135,163,206,0.2)',\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#91B7F2',\r\n color: '#4D587D'\r\n },\r\n moveHandleStyle: {\r\n color: '#636D9A',\r\n opacity: 0.7\r\n }\r\n },\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#71708A',\r\n width: 1\r\n },\r\n areaStyle: {\r\n color: '#71708A'\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#87A3CE'\r\n },\r\n areaStyle: {\r\n color: '#87A3CE'\r\n }\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n controlStyle: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n },\r\n calendar: {\r\n itemStyle: {\r\n color: backgroundColor\r\n },\r\n dayLabel: {\r\n color: contrastColor\r\n },\r\n monthLabel: {\r\n color: contrastColor\r\n },\r\n yearLabel: {\r\n color: contrastColor\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function setItemVisualFromData(data, dataIndex, key, value) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n style[data.getVisual('drawType')] = value;\r\n data.setItemVisual(dataIndex, 'colorFromPalette', false);\r\n break;\r\n case 'opacity':\r\n data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\r\n break;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n data.setItemVisual(dataIndex, key, value);\r\n break;\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\n\n var PI2$5 = Math.PI * 2;\r\n var CMD$3 = PathProxy.CMD;\r\n var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\r\n function getCandidateAnchor(pos, distance, rect, outPt, outDir) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n switch (pos) {\r\n case 'top':\r\n outPt.set(rect.x + width / 2, rect.y - distance);\r\n outDir.set(0, -1);\r\n break;\r\n case 'bottom':\r\n outPt.set(rect.x + width / 2, rect.y + height + distance);\r\n outDir.set(0, 1);\r\n break;\r\n case 'left':\r\n outPt.set(rect.x - distance, rect.y + height / 2);\r\n outDir.set(-1, 0);\r\n break;\r\n case 'right':\r\n outPt.set(rect.x + width + distance, rect.y + height / 2);\r\n outDir.set(1, 0);\r\n break;\r\n }\r\n }\r\n function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n x /= d;\r\n y /= d;\r\n var ox = x * r + cx;\r\n var oy = y * r + cy;\r\n if (Math.abs(startAngle - endAngle) % PI2$5 < 1e-4) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$5;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$5;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$5 >= startAngle && angle + PI2$5 <= endAngle)) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n var x1 = r * Math.cos(startAngle) + cx;\r\n var y1 = r * Math.sin(startAngle) + cy;\r\n var x2 = r * Math.cos(endAngle) + cx;\r\n var y2 = r * Math.sin(endAngle) + cy;\r\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\r\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\r\n if (d1 < d2) {\r\n out[0] = x1;\r\n out[1] = y1;\r\n return Math.sqrt(d1);\r\n }\r\n else {\r\n out[0] = x2;\r\n out[1] = y2;\r\n return Math.sqrt(d2);\r\n }\r\n }\r\n function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\r\n var dx = x - x1;\r\n var dy = y - y1;\r\n var dx1 = x2 - x1;\r\n var dy1 = y2 - y1;\r\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n dx1 /= lineLen;\r\n dy1 /= lineLen;\r\n var projectedLen = dx * dx1 + dy * dy1;\r\n var t = projectedLen / lineLen;\r\n if (limitToEnds) {\r\n t = Math.min(Math.max(t, 0), 1);\r\n }\r\n t *= lineLen;\r\n var ox = out[0] = x1 + t * dx1;\r\n var oy = out[1] = y1 + t * dy1;\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n function projectPointToRect(x1, y1, width, height, x, y, out) {\r\n if (width < 0) {\r\n x1 = x1 + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y1 = y1 + height;\r\n height = -height;\r\n }\r\n var x2 = x1 + width;\r\n var y2 = y1 + height;\r\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\r\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n var tmpPt = [];\r\n function nearestPointOnRect(pt, rect, out) {\r\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\r\n out.set(tmpPt[0], tmpPt[1]);\r\n return dist;\r\n }\r\n function nearestPointOnPath(pt, path, out) {\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n var minDist = Infinity;\r\n var data = path.data;\r\n var x = pt.x;\r\n var y = pt.y;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var d = minDist;\r\n switch (cmd) {\r\n case CMD$3.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$3.L:\r\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.C:\r\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.Q:\r\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i <= 1) {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\r\n break;\r\n case CMD$3.Z:\r\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n if (d < minDist) {\r\n minDist = d;\r\n out.set(tmpPt[0], tmpPt[1]);\r\n }\r\n }\r\n return minDist;\r\n }\r\n var pt0 = new Point();\r\n var pt1 = new Point();\r\n var pt2 = new Point();\r\n var dir = new Point();\r\n var dir2 = new Point();\r\n function updateLabelLinePoints(target, labelLineModel) {\r\n if (!target) {\r\n return;\r\n }\r\n var labelLine = target.getTextGuideLine();\r\n var label = target.getTextContent();\r\n if (!(label && labelLine)) {\r\n return;\r\n }\r\n var labelGuideConfig = target.textGuideLineConfig || {};\r\n var points = [[0, 0], [0, 0], [0, 0]];\r\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\r\n var labelRect = label.getBoundingRect().clone();\r\n labelRect.applyTransform(label.getComputedTransform());\r\n var minDist = Infinity;\r\n var anchorPoint = labelGuideConfig && labelGuideConfig.anchor;\r\n var targetTransform = target.getComputedTransform();\r\n var targetInversedTransform = targetTransform && invert([], targetTransform);\r\n var len = labelLineModel.get('length2') || 0;\r\n if (anchorPoint) {\r\n pt2.copy(anchorPoint);\r\n }\r\n for (var i = 0; i < searchSpace.length; i++) {\r\n var candidate = searchSpace[i];\r\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\r\n Point.scaleAndAdd(pt1, pt0, dir, len);\r\n pt1.transform(targetInversedTransform);\r\n var boundingRect = target.getBoundingRect();\r\n var dist = anchorPoint ? anchorPoint.distance(pt1)\r\n : (target instanceof Path\r\n ? nearestPointOnPath(pt1, target.path, pt2)\r\n : nearestPointOnRect(pt1, boundingRect, pt2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n pt1.transform(targetTransform);\r\n pt2.transform(targetTransform);\r\n pt2.toArray(points[0]);\r\n pt1.toArray(points[1]);\r\n pt0.toArray(points[2]);\r\n }\r\n }\r\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\r\n labelLine.setShape({ points: points });\r\n }\r\n var tmpArr = [];\r\n var tmpProjPoint = new Point();\r\n function limitTurnAngle(linePoints, minTurnAngle) {\r\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\r\n return;\r\n }\r\n minTurnAngle = minTurnAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt0, pt1);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(dir2);\r\n var minTurnAngleCos = Math.cos(minTurnAngle);\r\n if (minTurnAngleCos < angleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\r\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\r\n return;\r\n }\r\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt1, pt0);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(surfaceNormal);\r\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\r\n if (angleCos < maxSurfaceAngleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n label.hide();\r\n labelLine && labelLine.hide();\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var labelAttr = labelItem.defaultAttr;\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelAttr.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n rect: labelRect,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null && !textEl.disableLabelLayout) {\r\n _this._addLabel(dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n var itemModel = data.getItemModel(labelItem.dataIndex);\r\n label.on('drag', createDragHandler(hostEl, itemModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftX';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftY';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel);\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n var ecModel = ecIns.getModel();\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n return ctx.createPattern(image, pattern.repeat || 'repeat');\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = style.width;\r\n var height = style.height;\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n }\r\n ctx.setLineDash(lineDash || []);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (el.invisible\r\n || el.style.opacity === 0\r\n || (el.culling && isDisplayableCulled(el, scope.viewWidth, scope.viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n el.__dirty = 0;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length - 1; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.__dirty = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n ctx.clearRect(0, 0, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(0, 0, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n var domBack = this.domBack;\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, 0, 0, width, height);\r\n ctx.restore();\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, paintAll, redrawId);\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, paintAll) {\r\n var layerList = [];\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n for (var k = 0; k < layerList.length; k++) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this._zlevelList[0]\r\n ? this._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i = void 0;\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n brush(ctx, el, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n ctx.restore();\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version$1 = '5.0.0-alpha.2';\r\n var dependencies = {\r\n zrender: '5.0.0-alpha.2'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var defaultRenderer = 'canvas';\r\n if (__DEV__) {\r\n defaultRenderer = (typeof window === 'undefined' ? global : window).__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && backwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances$1, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '' + item.dom + '';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n var ecData = el && getECData(el);\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n }\r\n else if (el && ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances$1[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap(normalizeToArray(excludeSeriesId));\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (payload.statusChanged) {\r\n markStatusToUpdate(this);\r\n }\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n function getDispatcher(target, det) {\r\n while (target && !det(target)) {\r\n if (target.__hostTarget) {\r\n target = target.__hostTarget;\r\n }\r\n else {\r\n target = target.parent;\r\n }\r\n }\r\n return target;\r\n }\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateZ(seriesModel, chartView);\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n aria(ecIns._zr.dom, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 1;\r\n }\r\n if (labelLine) {\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 - 1;\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances$1, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances$1 = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances$1[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose$1(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances$1[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances$1[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances$1[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerPreprocessor(backwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', loadingDefault);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n var i;\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (i = 0; i < oldArr.length; i++) {\r\n var key = oldDataKeyArr[i];\r\n var idx = newDataIndexMap[key];\r\n if (idx != null) {\r\n var len = idx.length;\r\n if (len) {\r\n len === 1 && (newDataIndexMap[key] = null);\r\n idx = idx.shift();\r\n }\r\n else {\r\n newDataIndexMap[key] = null;\r\n }\r\n this._update && this._update(idx, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n for (i = 0; i < newDataKeyArr.length; i++) {\r\n var key = newDataKeyArr[i];\r\n if (newDataIndexMap.hasOwnProperty(key)) {\r\n var idx = newDataIndexMap[key];\r\n if (idx == null) {\r\n continue;\r\n }\r\n if (!idx.length) {\r\n this._add && this._add(idx);\r\n }\r\n else {\r\n for (var j = 0, len = idx.length; j < len; j++) {\r\n this._add && this._add(idx[j]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n var existence = map[key];\r\n if (existence == null) {\r\n keyArr.push(key);\r\n map[key] = i;\r\n }\r\n else {\r\n if (!existence.length) {\r\n map[key] = existence = [existence];\r\n }\r\n existence.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var isObject$3 = isObject;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getRawValueFromStore;\r\n var getIndicesCtor;\r\n var prepareChunks;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var cloneDimStore;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._chunkSize = 1e5;\r\n this._chunkCount = 0;\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = data instanceof Source || isArrayLike(data);\r\n if (notProvider) {\r\n data = new DefaultDataProvider(data, this.dimensions.length);\r\n }\r\n if (__DEV__) {\r\n if (!notProvider\r\n && (typeof data.getItem !== 'function' || typeof data.count !== 'function')) {\r\n throw new Error('Inavlid data provider.');\r\n }\r\n }\r\n this._rawData = data;\r\n this._storage = {};\r\n this._indices = null;\r\n this._nameList = nameList || [];\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, data.count());\r\n if (data.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var chunkSize = this._chunkSize;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, this._dimensionInfos[dim], chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var emptyDataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, k);\r\n storage[dim][chunkIndex][chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var chunkSize = this._chunkSize;\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var nameRepeatCount = this._nameRepeatCount = {};\r\n var nameDimIdx;\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n var dimInfo = dimensionInfoMap[dim];\r\n if (dimInfo.otherDims.itemName === 0) {\r\n nameDimIdx = this._nameDimIdx = i;\r\n }\r\n if (dimInfo.otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, dimInfo, chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var dataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var dimStorage = storage[dim][chunkIndex];\r\n var val = this._dimValueGetter(dataItem, dim, idx, k);\r\n dimStorage[chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (!rawData.pure) {\r\n var name_1 = nameList[idx];\r\n if (dataItem && name_1 == null) {\r\n if (dataItem.name != null) {\r\n nameList[idx] = name_1 = dataItem.name;\r\n }\r\n else if (nameDimIdx != null) {\r\n var nameDim = dimensions[nameDimIdx];\r\n var nameDimChunk = storage[nameDim][chunkIndex];\r\n if (nameDimChunk) {\r\n name_1 = nameDimChunk[chunkOffset];\r\n var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n name_1 = ordinalMeta.categories[name_1];\r\n }\r\n }\r\n }\r\n }\r\n var id = dataItem == null ? null : dataItem.id;\r\n if (id == null && name_1 != null) {\r\n nameRepeatCount[name_1] = nameRepeatCount[name_1] || 0;\r\n id = name_1;\r\n if (nameRepeatCount[name_1] > 0) {\r\n id += '__ec__' + nameRepeatCount[name_1];\r\n }\r\n nameRepeatCount[name_1]++;\r\n }\r\n id != null && (idList[idx] = id);\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var storage = this._storage;\r\n if (!storage[dim]) {\r\n return NaN;\r\n }\r\n idx = this.getRawIndex(idx);\r\n var chunkIndex = Math.floor(idx / this._chunkSize);\r\n var chunkOffset = idx % this._chunkSize;\r\n var chunkStore = storage[dim][chunkIndex];\r\n var value = chunkStore[chunkOffset];\r\n return value;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n if (!dimStore) {\r\n return NaN;\r\n }\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = dimStore[chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype._getFast = function (dim, rawIdx) {\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = this._storage[dim][chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var value = this._getFast(dim, this.getRawIndex(i));\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var diff = value - this.get(dim, i);\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n return this._nameList[rawIndex]\r\n || getRawValueFromStore(this, this._nameDimIdx, rawIndex)\r\n || '';\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n for (var i = 0; i < this.count(); i++) {\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, this.get(dimNames[0], i), i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, this.get(dimNames[0], i), this.get(dimNames[1], i), i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = this.get(dimNames[k], i);\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dim0 = dimNames[0];\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = this._getFast(dim0, rawIdx);\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = this._getFast(dim0, rawIdx);\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n if (!this._count) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = this._storage[dimensions[0]];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = this._storage[dim0];\r\n var dimStorage2 = this._storage[dimensions[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var chunkStorage2 = dimStorage2[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n var val2 = chunkStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = this._getFast(dim0, rawIndex);\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = this._getFast(dimk, rawIndex);\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var storage = list._storage;\r\n var tmpRetValue = [];\r\n var chunkSize = this._chunkSize;\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[chunkIndex][chunkOffset] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = Math.floor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var chunkSize = this._chunkSize;\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n var originalChunkIndex = Math.floor(dataIdx / chunkSize);\r\n var originalChunkOffset = dataIdx % chunkSize;\r\n frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize);\r\n var sampleChunkOffset = sampleFrameIdx % chunkSize;\r\n dimStore[sampleChunkIndex][sampleChunkOffset] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (!val) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_2 in key) {\r\n if (key.hasOwnProperty(name_2)) {\r\n this.setLayout(name_2, key[name_2]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getRawValueFromStore = function (list, dimIndex, rawIndex) {\r\n var val;\r\n if (dimIndex != null) {\r\n var chunkSize = list._chunkSize;\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n var dim = list.dimensions[dimIndex];\r\n var chunk = list._storage[dim][chunkIndex];\r\n if (chunk) {\r\n val = chunk[chunkOffset];\r\n var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n }\r\n return val;\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareChunks = function (storage, dimInfo, chunkSize, chunkCount, end) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var lastChunkIndex = chunkCount - 1;\r\n var dim = dimInfo.name;\r\n var resizeChunkArray = storage[dim][lastChunkIndex];\r\n if (resizeChunkArray && resizeChunkArray.length < chunkSize) {\r\n var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize));\r\n for (var j = 0; j < resizeChunkArray.length; j++) {\r\n newStore[j] = resizeChunkArray[j];\r\n }\r\n storage[dim][lastChunkIndex] = newStore;\r\n }\r\n for (var k = chunkCount * chunkSize; k < end; k += chunkSize) {\r\n storage[dim].push(new DataCtor(Math.min(end - k, chunkSize)));\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null) {\r\n id = getRawValueFromStore(list, list._idDimIdx, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = [dimensions];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneDimStore(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n cloneDimStore = function (originalDimStore) {\r\n var newDimStore = new Array(originalDimStore.length);\r\n for (var j = 0; j < originalDimStore.length; j++) {\r\n newDimStore[j] = cloneChunk(originalDimStore[j]);\r\n }\r\n return newDimStore;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions (source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n result.firstCategoryDimIndex = index;\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta || isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({ categories: ordinalMeta });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function getLayoutOnAxis(opt) {\r\n var params = [];\r\n var baseAxis = opt.axis;\r\n var axisKey = 'axis0';\r\n if (baseAxis.type !== 'category') {\r\n return;\r\n }\r\n var bandWidth = baseAxis.getBandWidth();\r\n for (var i = 0; i < opt.count || 0; i++) {\r\n params.push(defaults({\r\n bandWidth: bandWidth,\r\n axisKey: axisKey,\r\n stackId: STACK_PREFIX + i\r\n }, opt));\r\n }\r\n var widthAndOffsets = doCalBarWidthAndOffset(params);\r\n var result = [];\r\n for (var i = 0; i < opt.count; i++) {\r\n var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\r\n item.offsetCenter = item.offset + item.width / 2;\r\n result.push(item);\r\n }\r\n return result;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC);\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\r\n var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n function createList(seriesModel) {\r\n return createListFromArray(seriesModel.getSource(), seriesModel);\r\n }\r\n var dataStack$1 = {\r\n isDimensionStacked: isDimensionStacked,\r\n enableDataStack: enableDataStack,\r\n getStackedDimension: getStackedDimension\r\n };\r\n function createScale(dataExtent, option) {\r\n var axisModel = option;\r\n if (!(option instanceof Model)) {\r\n axisModel = new Model(option);\r\n }\r\n var scale = createScaleByModel(axisModel);\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n niceScaleExtent(scale, axisModel);\r\n return scale;\r\n }\r\n function mixinAxisModelCommonMethods(Model) {\r\n mixin(Model, AxisModelCommonMixin);\r\n }\n\n var helper = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createList: createList,\n getLayoutRect: getLayoutRect,\n dataStack: dataStack$1,\n createScale: createScale,\n mixinAxisModelCommonMethods: mixinAxisModelCommonMethods,\n createDimensions: createDimensions,\n createSymbol: createSymbol\n });\n\n var EPSILON$3 = 1e-8;\r\n function isAroundEqual$1(a, b) {\r\n return Math.abs(a - b) < EPSILON$3;\r\n }\r\n function contain$2(points, x, y) {\r\n var w = 0;\r\n var p = points[0];\r\n if (!p) {\r\n return false;\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n var p2 = points[i];\r\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\r\n p = p2;\r\n }\r\n var p0 = points[0];\r\n if (!isAroundEqual$1(p[0], p0[0]) || !isAroundEqual$1(p[1], p0[1])) {\r\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\r\n }\r\n return w !== 0;\r\n }\n\n var Region = (function () {\r\n function Region(name, geometries, cp) {\r\n this.name = name;\r\n this.geometries = geometries;\r\n if (!cp) {\r\n var rect = this.getBoundingRect();\r\n cp = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n else {\r\n cp = [cp[0], cp[1]];\r\n }\r\n this.center = cp;\r\n }\r\n Region.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n if (rect) {\r\n return rect;\r\n }\r\n var MAX_NUMBER = Number.MAX_VALUE;\r\n var min$1 = [MAX_NUMBER, MAX_NUMBER];\r\n var max$1 = [-MAX_NUMBER, -MAX_NUMBER];\r\n var min2 = [];\r\n var max2 = [];\r\n var geometries = this.geometries;\r\n var i = 0;\r\n for (; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n fromPoints(exterior, min2, max2);\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return (this._rect = new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]));\r\n };\r\n Region.prototype.contain = function (coord) {\r\n var rect = this.getBoundingRect();\r\n var geometries = this.geometries;\r\n if (!rect.contain(coord[0], coord[1])) {\r\n return false;\r\n }\r\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n if (contain$2(exterior, coord[0], coord[1])) {\r\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\r\n if (contain$2(interiors[k], coord[0], coord[1])) {\r\n continue loopGeo;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Region.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var aspect = rect.width / rect.height;\r\n if (!width) {\r\n width = aspect * height;\r\n }\r\n else if (!height) {\r\n height = width / aspect;\r\n }\r\n var target = new BoundingRect(x, y, width, height);\r\n var transform = rect.calculateTransform(target);\r\n var geometries = this.geometries;\r\n for (var i = 0; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n for (var p = 0; p < exterior.length; p++) {\r\n applyTransform(exterior[p], exterior[p], transform);\r\n }\r\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\r\n for (var p = 0; p < interiors[h].length; p++) {\r\n applyTransform(interiors[h][p], interiors[h][p], transform);\r\n }\r\n }\r\n }\r\n rect = this._rect;\r\n rect.copy(target);\r\n this.center = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n };\r\n Region.prototype.cloneShallow = function (name) {\r\n name == null && (name = this.name);\r\n var newRegion = new Region(name, this.geometries, this.center);\r\n newRegion._rect = this._rect;\r\n newRegion.transformTo = null;\r\n return newRegion;\r\n };\r\n return Region;\r\n }());\n\n function decode(json) {\r\n if (!json.UTF8Encoding) {\r\n return json;\r\n }\r\n var jsonCompressed = json;\r\n var encodeScale = jsonCompressed.UTF8Scale;\r\n if (encodeScale == null) {\r\n encodeScale = 1024;\r\n }\r\n var features = jsonCompressed.features;\r\n for (var f = 0; f < features.length; f++) {\r\n var feature = features[f];\r\n var geometry = feature.geometry;\r\n if (geometry.type === 'Polygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\r\n }\r\n }\r\n else if (geometry.type === 'MultiPolygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n var coordinate = coordinates[c];\r\n for (var c2 = 0; c2 < coordinate.length; c2++) {\r\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\r\n }\r\n }\r\n }\r\n }\r\n jsonCompressed.UTF8Encoding = false;\r\n return jsonCompressed;\r\n }\r\n function decodePolygon(coordinate, encodeOffsets, encodeScale) {\r\n var result = [];\r\n var prevX = encodeOffsets[0];\r\n var prevY = encodeOffsets[1];\r\n for (var i = 0; i < coordinate.length; i += 2) {\r\n var x = coordinate.charCodeAt(i) - 64;\r\n var y = coordinate.charCodeAt(i + 1) - 64;\r\n x = (x >> 1) ^ (-(x & 1));\r\n y = (y >> 1) ^ (-(y & 1));\r\n x += prevX;\r\n y += prevY;\r\n prevX = x;\r\n prevY = y;\r\n result.push([x / encodeScale, y / encodeScale]);\r\n }\r\n return result;\r\n }\r\n function parseGeoJson (geoJson, nameProperty) {\r\n geoJson = decode(geoJson);\r\n return map(filter(geoJson.features, function (featureObj) {\r\n return featureObj.geometry\r\n && featureObj.properties\r\n && featureObj.geometry.coordinates.length > 0;\r\n }), function (featureObj) {\r\n var properties = featureObj.properties;\r\n var geo = featureObj.geometry;\r\n var geometries = [];\r\n if (geo.type === 'Polygon') {\r\n var coordinates = geo.coordinates;\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: coordinates[0],\r\n interiors: coordinates.slice(1)\r\n });\r\n }\r\n if (geo.type === 'MultiPolygon') {\r\n var coordinates = geo.coordinates;\r\n each(coordinates, function (item) {\r\n if (item[0]) {\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: item[0],\r\n interiors: item.slice(1)\r\n });\r\n }\r\n });\r\n }\r\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\r\n region.properties = properties;\r\n return region;\r\n });\r\n }\n\n var inner$5 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$5(axis)[prop] || (inner$5(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$5(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$5(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$5(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var parseGeoJson$1 = parseGeoJson;\r\n var time = {\r\n parse: parseDate,\r\n format: format\r\n };\r\n var ecUtil = {};\r\n each([\r\n 'map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter',\r\n 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction',\r\n 'extend', 'defaults', 'clone', 'merge'\r\n ], function (name) {\r\n ecUtil[name] = zrUtil[name];\r\n });\r\n var GRAPHIC_KEYS = [\r\n 'extendShape', 'extendPath', 'makePath', 'makeImage',\r\n 'mergePath', 'resizePath', 'createIcon',\r\n 'updateProps', 'initProps', 'getTransform',\r\n 'clipPointsByRect', 'clipRectByRect',\r\n 'registerShape', 'getShapeClass',\r\n 'Group',\r\n 'Image',\r\n 'Text',\r\n 'Circle',\r\n 'Ellipse',\r\n 'Sector',\r\n 'Ring',\r\n 'Polygon',\r\n 'Polyline',\r\n 'Rect',\r\n 'Line',\r\n 'BezierCurve',\r\n 'Arc',\r\n 'IncrementalDisplayable',\r\n 'CompoundPath',\r\n 'LinearGradient',\r\n 'RadialGradient',\r\n 'BoundingRect'\r\n ];\r\n var graphic$1 = {};\r\n each(GRAPHIC_KEYS, function (name) {\r\n graphic$1[name] = graphic[name];\r\n });\n\n var RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\r\n value: 'eq',\r\n '<': 'lt',\r\n '<=': 'lte',\r\n '>': 'gt',\r\n '>=': 'gte',\r\n '=': 'eq',\r\n '!=': 'ne',\r\n '<>': 'ne'\r\n };\r\n var RegExpEvaluator = (function () {\r\n function RegExpEvaluator(rVal) {\r\n var condValue = this._condVal = isString(rVal) ? new RegExp(rVal)\r\n : isRegExp(rVal) ? rVal\r\n : null;\r\n if (condValue == null) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal regexp', rVal, 'in');\r\n }\r\n throwError(errMsg);\r\n }\r\n }\r\n RegExpEvaluator.prototype.evaluate = function (lVal) {\r\n var type = typeof lVal;\r\n return type === 'string' ? this._condVal.test(lVal)\r\n : type === 'number' ? this._condVal.test(lVal + '')\r\n : false;\r\n };\r\n return RegExpEvaluator;\r\n }());\r\n var ConstConditionInternal = (function () {\r\n function ConstConditionInternal() {\r\n }\r\n ConstConditionInternal.prototype.evaluate = function () {\r\n return this.value;\r\n };\r\n return ConstConditionInternal;\r\n }());\r\n var AndConditionInternal = (function () {\r\n function AndConditionInternal() {\r\n }\r\n AndConditionInternal.prototype.evaluate = function () {\r\n var children = this.children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (!children[i].evaluate()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return AndConditionInternal;\r\n }());\r\n var OrConditionInternal = (function () {\r\n function OrConditionInternal() {\r\n }\r\n OrConditionInternal.prototype.evaluate = function () {\r\n var children = this.children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].evaluate()) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return OrConditionInternal;\r\n }());\r\n var NotConditionInternal = (function () {\r\n function NotConditionInternal() {\r\n }\r\n NotConditionInternal.prototype.evaluate = function () {\r\n return !this.child.evaluate();\r\n };\r\n return NotConditionInternal;\r\n }());\r\n var RelationalConditionInternal = (function () {\r\n function RelationalConditionInternal() {\r\n }\r\n RelationalConditionInternal.prototype.evaluate = function () {\r\n var needParse = !!this.valueParser;\r\n var getValue = this.getValue;\r\n var tarValRaw = getValue(this.valueGetterParam);\r\n var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\r\n for (var i = 0; i < this.subCondList.length; i++) {\r\n if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return RelationalConditionInternal;\r\n }());\r\n function parseOption(exprOption, getters) {\r\n if (exprOption === true || exprOption === false) {\r\n var cond = new ConstConditionInternal();\r\n cond.value = exprOption;\r\n return cond;\r\n }\r\n var errMsg = '';\r\n if (!isObjectNotArray(exprOption)) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n if (exprOption.and) {\r\n return parseAndOrOption('and', exprOption, getters);\r\n }\r\n else if (exprOption.or) {\r\n return parseAndOrOption('or', exprOption, getters);\r\n }\r\n else if (exprOption.not) {\r\n return parseNotOption(exprOption, getters);\r\n }\r\n return parseRelationalOption(exprOption, getters);\r\n }\r\n function parseAndOrOption(op, exprOption, getters) {\r\n var subOptionArr = exprOption[op];\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\r\n }\r\n if (!isArray(subOptionArr)) {\r\n throwError(errMsg);\r\n }\r\n if (!subOptionArr.length) {\r\n throwError(errMsg);\r\n }\r\n var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\r\n cond.children = map(subOptionArr, function (subOption) { return parseOption(subOption, getters); });\r\n if (!cond.children.length) {\r\n throwError(errMsg);\r\n }\r\n return cond;\r\n }\r\n function parseNotOption(exprOption, getters) {\r\n var subOption = exprOption.not;\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\r\n }\r\n if (!isObjectNotArray(subOption)) {\r\n throwError(errMsg);\r\n }\r\n var cond = new NotConditionInternal();\r\n cond.child = parseOption(subOption, getters);\r\n if (!cond.child) {\r\n throwError(errMsg);\r\n }\r\n return cond;\r\n }\r\n function parseRelationalOption(exprOption, getters) {\r\n var errMsg = '';\r\n var valueGetterParam = getters.prepareGetValue(exprOption);\r\n var subCondList = [];\r\n var exprKeys = keys(exprOption);\r\n var parserName = exprOption.parser;\r\n var valueParser = parserName ? getRawValueParser(parserName) : null;\r\n for (var i = 0; i < exprKeys.length; i++) {\r\n var keyRaw = exprKeys[i];\r\n if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\r\n continue;\r\n }\r\n var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw)\r\n ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw]\r\n : keyRaw;\r\n var condValueRaw = exprOption[keyRaw];\r\n var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\r\n var evaluator = createFilterComparator(op, condValueParsed)\r\n || (op === 'reg' && new RegExpEvaluator(condValueParsed));\r\n if (!evaluator) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n subCondList.push(evaluator);\r\n }\r\n if (!subCondList.length) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n var cond = new RelationalConditionInternal();\r\n cond.valueGetterParam = valueGetterParam;\r\n cond.valueParser = valueParser;\r\n cond.getValue = getters.getValue;\r\n cond.subCondList = subCondList;\r\n return cond;\r\n }\r\n function isObjectNotArray(val) {\r\n return isObject(val) && !isArrayLike(val);\r\n }\r\n var ConditionalExpressionParsed = (function () {\r\n function ConditionalExpressionParsed(exprOption, getters) {\r\n this._cond = parseOption(exprOption, getters);\r\n }\r\n ConditionalExpressionParsed.prototype.evaluate = function () {\r\n return this._cond.evaluate();\r\n };\r\n return ConditionalExpressionParsed;\r\n }());\r\n function parseConditionalExpression(exprOption, getters) {\r\n return new ConditionalExpressionParsed(exprOption, getters);\r\n }\n\n var filterTransform = {\r\n type: 'echarts:filter',\r\n transform: function transform(params) {\r\n var source = params.source;\r\n var rawItem;\r\n var condition = parseConditionalExpression(params.config, {\r\n valueGetterAttrMap: createHashMap({ dimension: true }),\r\n prepareGetValue: function (exprOption) {\r\n var errMsg = '';\r\n var dimLoose = exprOption.dimension;\r\n if (!hasOwn(exprOption, 'dimension')) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n var dimInfo = source.getDimensionInfo(dimLoose);\r\n if (!dimInfo) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Can not find dimension info via: \"' + dimLoose + '\".\\n', 'Existing dimensions: ', source.getDimensionInfoAll(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n return { dimIdx: dimInfo.index };\r\n },\r\n getValue: function (param) {\r\n return source.retrieveItemValue(rawItem, param.dimIdx);\r\n }\r\n });\r\n var sourceHeaderCount = source.sourceHeaderCount;\r\n var resultData = [];\r\n for (var i = 0; i < sourceHeaderCount; i++) {\r\n resultData.push(source.getRawHeaderItem(i));\r\n }\r\n for (var i = 0, len = source.count(); i < len; i++) {\r\n rawItem = source.getRawDataItem(i);\r\n if (condition.evaluate()) {\r\n resultData.push(rawItem);\r\n }\r\n }\r\n return {\r\n data: resultData\r\n };\r\n }\r\n };\n\n var sampleLog = '';\r\n if (__DEV__) {\r\n sampleLog = [\r\n 'Valid config is like:',\r\n '{ dimension: \"age\", order: \"asc\" }',\r\n 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'\r\n ].join(' ');\r\n }\r\n var sortTransform = {\r\n type: 'echarts:sort',\r\n transform: function transform(params) {\r\n var source = params.source;\r\n var config = params.config;\r\n var errMsg = '';\r\n var orderExprList = normalizeToArray(config);\r\n if (!orderExprList.length) {\r\n if (__DEV__) {\r\n errMsg = 'Empty `config` in sort transform.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var orderDefList = [];\r\n each(orderExprList, function (orderExpr) {\r\n var dimLoose = orderExpr.dimension;\r\n var order = orderExpr.order;\r\n var parserName = orderExpr.parser;\r\n var incomparable = orderExpr.incomparable;\r\n if (dimLoose == null) {\r\n if (__DEV__) {\r\n errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\r\n }\r\n throwError(errMsg);\r\n }\r\n if (order !== 'asc' && order !== 'desc') {\r\n if (__DEV__) {\r\n errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\r\n }\r\n throwError(errMsg);\r\n }\r\n if (incomparable && (incomparable !== 'min' && incomparable !== 'max')) {\r\n var errMsg_1 = '';\r\n if (__DEV__) {\r\n errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\r\n }\r\n throwError(errMsg_1);\r\n }\r\n if (order !== 'asc' && order !== 'desc') {\r\n var errMsg_2 = '';\r\n if (__DEV__) {\r\n errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\r\n }\r\n throwError(errMsg_2);\r\n }\r\n var dimInfo = source.getDimensionInfo(dimLoose);\r\n if (!dimInfo) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Can not find dimension info via: \"' + dimLoose + '\".\\n', 'Existing dimensions: ', source.getDimensionInfoAll(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n var parser = parserName ? getRawValueParser(parserName) : null;\r\n if (parserName && !parser) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n orderDefList.push({\r\n dimIdx: dimInfo.index,\r\n parser: parser,\r\n comparator: new SortOrderComparator(order, incomparable)\r\n });\r\n });\r\n if (!isArray(source.data)) {\r\n if (__DEV__) {\r\n errMsg = source.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS\r\n ? 'sourceFormat ' + SOURCE_FORMAT_KEYED_COLUMNS + ' is not supported yet'\r\n : source.data == null\r\n ? 'Upstream source data is null/undefined'\r\n : 'Unsupported source format.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var sourceHeaderCount = source.sourceHeaderCount;\r\n var resultData = [];\r\n var headerPlaceholder = {};\r\n for (var i = 0; i < sourceHeaderCount; i++) {\r\n resultData.push(headerPlaceholder);\r\n }\r\n for (var i = 0, len = source.count(); i < len; i++) {\r\n resultData.push(source.getRawDataItem(i));\r\n }\r\n resultData.sort(function (item0, item1) {\r\n if (item0 === headerPlaceholder) {\r\n return -1;\r\n }\r\n if (item1 === headerPlaceholder) {\r\n return 1;\r\n }\r\n for (var i = 0; i < orderDefList.length; i++) {\r\n var orderDef = orderDefList[i];\r\n var val0 = source.retrieveItemValue(item0, orderDef.dimIdx);\r\n var val1 = source.retrieveItemValue(item1, orderDef.dimIdx);\r\n if (orderDef.parser) {\r\n val0 = orderDef.parser(val0);\r\n val1 = orderDef.parser(val1);\r\n }\r\n var result = orderDef.comparator.evaluate(val0, val1);\r\n if (result !== 0) {\r\n return result;\r\n }\r\n }\r\n return 0;\r\n });\r\n for (var i = 0; i < sourceHeaderCount; i++) {\r\n resultData[i] = source.getRawHeaderItem(i);\r\n }\r\n return {\r\n data: resultData\r\n };\r\n }\r\n };\n\n registerTransform(filterTransform);\r\n registerTransform(sortTransform);\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n function getDefaultLabel(data, dataIndex, interpolatedValues) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[0])\r\n : interpolatedValues;\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var val = interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[i])\r\n : interpolatedValues;\r\n vals.push(val);\r\n }\r\n return vals.join(' ');\r\n }\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n updateProps(symbolPath, {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n }, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n symbolPath.ensureState('emphasis').style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n this.ensureState('emphasis');\r\n this.setSymbolScale(1);\r\n }\r\n else {\r\n this.states.emphasis = null;\r\n }\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n var emphasisState = this.states.emphasis;\r\n if (emphasisState) {\r\n var hoverScale = Math.max(scale * 1.1, 3 / this._sizeY + scale);\r\n emphasisState.scaleX = hoverScale;\r\n emphasisState.scaleY = hoverScale;\r\n }\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n this.silent = symbolPath.silent = true;\r\n !(opt && opt.keepLabel) && (symbolPath.removeTextContent());\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, this._seriesModel, getECData(this).dataIndex, cb);\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var seriesScope = makeSeriesScope(data);\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = data.getItemLayout(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = data.getItemLayout(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope);\r\n updateProps(symbolEl, {\r\n x: point[0],\r\n y: point[1]\r\n }, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = data.getItemLayout(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff (oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n var currentPt = oldData.getItemLayout(diffItem.idx);\r\n var nextPt = newData.getItemLayout(diffItem.idx1);\r\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\r\n currentPt = nextPt.slice();\r\n }\r\n currPoints.push(currentPt);\r\n nextPoints.push(nextPt);\r\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\r\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var idxAdd = diffItem.idx;\r\n currPoints.push(oldCoordSys.dataToPoint([\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idxAdd),\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idxAdd)\r\n ]));\r\n nextPoints.push(newData.getItemLayout(idxAdd).slice());\r\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idxAdd));\r\n nextStackedPoints.push(newStackedOnPoints[idxAdd]);\r\n rawIndices.push(newData.getRawIndex(idxAdd));\r\n break;\r\n case '-':\r\n var idxMinus = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(idxMinus);\r\n if (rawIndex !== idxMinus) {\r\n currPoints.push(oldData.getItemLayout(idxMinus));\r\n nextPoints.push(newCoordSys.dataToPoint([\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idxMinus),\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idxMinus)\r\n ]));\r\n currStackedPoints.push(oldStackedOnPoints[idxMinus]);\r\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idxMinus));\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var sortedCurrPoints = [];\r\n var sortedNextPoints = [];\r\n var sortedCurrStackedPoints = [];\r\n var sortedNextStackedPoints = [];\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n sortedCurrPoints[i] = currPoints[idx];\r\n sortedNextPoints[i] = nextPoints[idx];\r\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\r\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var vec2Min = min;\r\n var vec2Max = max;\r\n var scaleAndAdd$1 = scaleAndAdd;\r\n var v2Copy = copy;\r\n var v = [];\r\n var cp0 = [];\r\n var cp1 = [];\r\n function isPointNull(p) {\r\n return isNaN(p[0]) || isNaN(p[1]);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n return ((smoothMonotone === 'none' || !smoothMonotone) ? drawNonMono : drawMono)(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls);\r\n }\r\n function drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var prevP = points[prevIdx];\r\n var dim = smoothMonotone === 'y' ? 1 : 0;\r\n var ctrlLen = (p[dim] - prevP[dim]) * smooth;\r\n v2Copy(cp0, prevP);\r\n cp0[dim] = prevP[dim] + ctrlLen;\r\n v2Copy(cp1, p);\r\n cp1[dim] = p[dim] - ctrlLen;\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n v2Copy(cp0, p);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextP = points[nextIdx];\r\n if (connectNulls) {\r\n while (nextP && isPointNull(points[nextIdx])) {\r\n nextIdx += dir;\r\n nextP = points[nextIdx];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var prevP = points[prevIdx];\r\n nextP = points[nextIdx];\r\n if (!nextP || isPointNull(nextP)) {\r\n v2Copy(cp1, p);\r\n }\r\n else {\r\n if (isPointNull(nextP) && !connectNulls) {\r\n nextP = p;\r\n }\r\n sub(v, nextP, prevP);\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x' || smoothMonotone === 'y') {\r\n var dim = smoothMonotone === 'x' ? 0 : 1;\r\n lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\r\n lenNextSeg = Math.abs(p[dim] - nextP[dim]);\r\n }\r\n else {\r\n lenPrevSeg = dist(p, prevP);\r\n lenNextSeg = dist(p, nextP);\r\n }\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n scaleAndAdd$1(cp1, p, v, -smooth * (1 - ratioNextSeg));\r\n }\r\n vec2Min(cp0, cp0, smoothMax);\r\n vec2Max(cp0, cp0, smoothMin);\r\n vec2Min(cp1, cp1, smoothMax);\r\n vec2Max(cp1, cp1, smoothMin);\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n scaleAndAdd$1(cp0, p, v, smooth * ratioNextSeg);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function getBoundingBox(points, smoothConstraint) {\r\n var ptMin = [Infinity, Infinity];\r\n var ptMax = [-Infinity, -Infinity];\r\n if (smoothConstraint) {\r\n for (var i = 0; i < points.length; i++) {\r\n var pt = points[i];\r\n if (pt[0] < ptMin[0]) {\r\n ptMin[0] = pt[0];\r\n }\r\n if (pt[1] < ptMin[1]) {\r\n ptMin[1] = pt[1];\r\n }\r\n if (pt[0] > ptMax[0]) {\r\n ptMax[0] = pt[0];\r\n }\r\n if (pt[1] > ptMax[1]) {\r\n ptMax[1] = pt[1];\r\n }\r\n }\r\n }\r\n return {\r\n min: smoothConstraint ? ptMin : ptMax,\r\n max: smoothConstraint ? ptMax : ptMin\r\n };\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n this.connectNulls = false;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length;\r\n var result = getBoundingBox(points, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length;\r\n var smoothMonotone = shape.smoothMonotone;\r\n var bbox = getBoundingBox(points, shape.smoothConstraint);\r\n var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel) {\r\n var rect = cartesian.getArea();\r\n var isHorizontal = cartesian.getBaseAxis().isHorizontal();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: round$1(sectorArea.r0, 1),\r\n r: round$1(sectorArea.r, 1),\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n return null;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n var p1 = points1[i];\r\n var p2 = points2[i];\r\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var min1 = [];\r\n var max1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n fromPoints(points1, min1, max1);\r\n fromPoints(points2, min2, max2);\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var points = [];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n for (; i < points.length - 1; i++) {\r\n var nextPt = points[i + 1];\r\n var pt = points[i];\r\n stepPoints.push(pt);\r\n var stepPt = [];\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n stepPoints.push(stepPt2);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n }\r\n }\r\n points[i] && stepPoints.push(points[i]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function createLineClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.mapArray(data.getItemLayout);\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n data.eachItemGraphicEl(function (el) {\r\n el && el.stopAnimation(null, true);\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n var shouldBolderOnEmphasis = seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder';\r\n if (shouldBolderOnEmphasis) {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel'\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var pt = data.getItemLayout(dataIndex);\r\n if (!pt) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.setPosition(pt);\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._updateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n polyline.stopAnimation();\r\n updateProps(polyline, {\r\n shape: {\r\n points: next\r\n }\r\n }, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n el.setPosition(polyline.shape.__points[updatedDataInfo[i].ptIdx]);\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function layoutPoints (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeRender = pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = isLargeRender && new Float32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.get(dims[0], i);\r\n point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n var x = tmpIn[0] = data.get(dims[0], i);\r\n var y = tmpIn[1] = data.get(dims[1], i);\r\n point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (isLargeRender) {\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n else {\r\n data.setItemLayout(i, (point && point.slice()) || [NaN, NaN]);\r\n }\r\n }\r\n isLargeRender && data.setLayout('symbolPoints', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var size = extent[1] - extent[0];\r\n var rate = Math.round(data.count() / size);\r\n if (rate > 1) {\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator (axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var PI$5 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$5) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$5 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$5 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$5 * 1.5 && rotationDiff > PI$5 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul$1([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul$1([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$5 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function collect(ecModel, api) {\r\n var result = {\r\n axesInfo: {},\r\n seriesInvolved: false,\r\n coordSysAxesInfo: {},\r\n coordSysMap: {}\r\n };\r\n collectAxesInfo(result, ecModel, api);\r\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\r\n return result;\r\n }\r\n function collectAxesInfo(result, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\r\n var linksOption = globalAxisPointerModel.get('link', true) || [];\r\n var linkGroups = [];\r\n each(api.getCoordinateSystems(), function (coordSys) {\r\n if (!coordSys.axisPointerEnabled) {\r\n return;\r\n }\r\n var coordSysKey = makeKey(coordSys.model);\r\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\r\n result.coordSysMap[coordSysKey] = coordSys;\r\n var coordSysModel = coordSys.model;\r\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\r\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\r\n if (coordSys.getTooltipAxes\r\n && globalTooltipModel\r\n && baseTooltipModel.get('show')) {\r\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\r\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\r\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\r\n if (triggerAxis || cross) {\r\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\r\n }\r\n if (cross) {\r\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\r\n }\r\n }\r\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\r\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\r\n var axisPointerShow = axisPointerModel.get('show');\r\n if (!axisPointerShow || (axisPointerShow === 'auto'\r\n && !fromTooltip\r\n && !isHandleTrigger(axisPointerModel))) {\r\n return;\r\n }\r\n if (triggerTooltip == null) {\r\n triggerTooltip = axisPointerModel.get('triggerTooltip');\r\n }\r\n axisPointerModel = fromTooltip\r\n ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip)\r\n : axisPointerModel;\r\n var snap = axisPointerModel.get('snap');\r\n var axisKey = makeKey(axis.model);\r\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\r\n var axisInfo = result.axesInfo[axisKey] = {\r\n key: axisKey,\r\n axis: axis,\r\n coordSys: coordSys,\r\n axisPointerModel: axisPointerModel,\r\n triggerTooltip: triggerTooltip,\r\n involveSeries: involveSeries,\r\n snap: snap,\r\n useHandle: isHandleTrigger(axisPointerModel),\r\n seriesModels: [],\r\n linkGroup: null\r\n };\r\n axesInfoInCoordSys[axisKey] = axisInfo;\r\n result.seriesInvolved = result.seriesInvolved || involveSeries;\r\n var groupIndex = getLinkGroupIndex(linksOption, axis);\r\n if (groupIndex != null) {\r\n var linkGroup = linkGroups[groupIndex]\r\n || (linkGroups[groupIndex] = { axesInfo: {} });\r\n linkGroup.axesInfo[axisKey] = axisInfo;\r\n linkGroup.mapper = linksOption[groupIndex].mapper;\r\n axisInfo.linkGroup = linkGroup;\r\n }\r\n }\r\n });\r\n }\r\n function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\r\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\r\n var fields = [\r\n 'type', 'snap', 'lineStyle', 'shadowStyle', 'label',\r\n 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'\r\n ];\r\n var volatileOption = {};\r\n each(fields, function (field) {\r\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\r\n });\r\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\r\n if (tooltipAxisPointerModel.get('type') === 'cross') {\r\n volatileOption.type = 'line';\r\n }\r\n var labelOption = volatileOption.label || (volatileOption.label = {});\r\n labelOption.show == null && (labelOption.show = false);\r\n if (fromTooltip === 'cross') {\r\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\r\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\r\n if (!triggerTooltip) {\r\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\r\n crossStyle && defaults(labelOption, crossStyle.textStyle);\r\n }\r\n }\r\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\r\n }\r\n function collectSeriesInfo(result, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\r\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\r\n if (!coordSys\r\n || seriesTooltipTrigger === 'none'\r\n || seriesTooltipTrigger === false\r\n || seriesTooltipTrigger === 'item'\r\n || seriesTooltipShow === false\r\n || seriesModel.get(['axisPointer', 'show'], true) === false) {\r\n return;\r\n }\r\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\r\n var axis = axisInfo.axis;\r\n if (coordSys.getAxis(axis.dim) === axis) {\r\n axisInfo.seriesModels.push(seriesModel);\r\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\r\n axisInfo.seriesDataCount += seriesModel.getData().count();\r\n }\r\n });\r\n });\r\n }\r\n function getLinkGroupIndex(linksOption, axis) {\r\n var axisModel = axis.model;\r\n var dim = axis.dim;\r\n for (var i = 0; i < linksOption.length; i++) {\r\n var linkOption = linksOption[i] || {};\r\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id)\r\n || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex)\r\n || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\r\n return i;\r\n }\r\n }\r\n }\r\n function checkPropInLink(linkPropValue, axisPropValue) {\r\n return linkPropValue === 'all'\r\n || (isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0)\r\n || linkPropValue === axisPropValue;\r\n }\r\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$6 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$6(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$6(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$6(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 60,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(layoutPoints('line'));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (!ignoreContainLabel && gridModel.get('containLabel')) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n realtimeSort: false\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$4 = Math.max;\r\n var mathMin$4 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea;\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n coordSysClipArea = coord.getArea && coord.getArea();\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this.removeOnRenderedListener(api);\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n var isReorder = payload && payload.type === 'changeAxisOrder';\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, isReorder);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) {\r\n var _this = this;\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 if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var realtimeSort = seriesModel.get('realtimeSort');\r\n if (realtimeSort && data.count()) {\r\n if (this._isFirstFrame) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n else {\r\n this._onRendered = function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n _this._updateSort(data, orderMap, baseAxis, api);\r\n };\r\n api.getZr().on('rendered', this._onRendered);\r\n }\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\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 data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false);\r\n }\r\n else if (coord.type === 'cartesian2d') {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\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 if (drawBackground) {\r\n var bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\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 }\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true);\r\n }\r\n else {\r\n updateProps(el, { shape: layout }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n this.removeOnRenderedListener(api);\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function (ecModel, api) {\r\n this._clear(this._model);\r\n this.removeOnRenderedListener(api);\r\n };\r\n BarView.prototype.dispose = function (ecModel, api) {\r\n this.removeOnRenderedListener(api);\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 BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var 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;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$4(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$4(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$4(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$4(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function () {\r\n return false;\r\n }\r\n };\r\n var 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 if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\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\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, data, newIndex, isHorizontal, isUpdate) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\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 }\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 (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n var defaultTextGetter = function (values) {\r\n return getDefaultLabel(seriesModel.getData(), newIndex, values);\r\n };\r\n var labelModel = seriesModel.getModel('label');\r\n (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter);\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\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 };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n el.ignore = isZeroOnPolar(layout);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n setLabelStyle(el, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\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 }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\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 var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var 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 function 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 barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function 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 }\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 function 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 ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\n\n function createListSimply (seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function labelLayout (seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.x -= margin / 2;\r\n textRect.y -= margin / 2;\r\n textRect.width += margin;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend({}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = {\r\n r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0)\r\n };\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var labelText = sector.getTextContent();\r\n var itemModel = data.getItemModel(idx);\r\n var labelTextEmphasisState = labelText.ensureState('emphasis');\r\n var labelModel = itemModel.getModel('label');\r\n var labelHoverModel = itemModel.getModel(['emphasis', 'label']);\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n }, { normal: {\r\n opacity: style && style.opacity\r\n } });\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n labelText.ignore = !labelModel.get('show');\r\n labelTextEmphasisState.ignore = !labelHoverModel.get('show');\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: style && style.opacity\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n labelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$6 = Math.PI * 2;\r\n var RADIAN$1 = Math.PI / 180;\r\n function getViewRect(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function pieLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var viewRect = getViewRect(seriesModel, api);\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = parsePercent$2(viewRect.width, api.getWidth());\r\n var height = parsePercent$2(viewRect.height, api.getHeight());\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width) + viewRect.x;\r\n var cy = parsePercent$2(center[1], height) + viewRect.y;\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$1;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$1;\r\n var validDataCount = 0;\r\n data.each(valueDim, function (value) {\r\n !isNaN(value) && validDataCount++;\r\n });\r\n var sum = data.getSum(valueDim);\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var clockwise = seriesModel.get('clockwise');\r\n var roseType = seriesModel.get('roseType');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var extent = data.getDataExtent(valueDim);\r\n extent[0] = 0;\r\n var restAngle = PI2$6;\r\n var valueSumLargerThanMinAngle = 0;\r\n var currentAngle = startAngle;\r\n var dir = clockwise ? 1 : -1;\r\n data.setLayout({ viewRect: viewRect, r: r });\r\n data.each(valueDim, function (value, idx) {\r\n var angle;\r\n if (isNaN(value)) {\r\n data.setItemLayout(idx, {\r\n angle: NaN,\r\n startAngle: NaN,\r\n endAngle: NaN,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? NaN\r\n : r\r\n });\r\n return;\r\n }\r\n if (roseType !== 'area') {\r\n angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n }\r\n else {\r\n angle = PI2$6 / validDataCount;\r\n }\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n restAngle -= minAngle;\r\n }\r\n else {\r\n valueSumLargerThanMinAngle += value;\r\n }\r\n var endAngle = currentAngle + dir * angle;\r\n data.setItemLayout(idx, {\r\n angle: angle,\r\n startAngle: currentAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? linearMap(value, extent, [r0, r])\r\n : r\r\n });\r\n currentAngle = endAngle;\r\n });\r\n if (restAngle < PI2$6 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$6 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n var ScatterSeriesModel = (function (_super) {\r\n __extends(ScatterSeriesModel, _super);\r\n function ScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n ScatterSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 5e3 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n ScatterSeriesModel.type = 'series.scatter';\r\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n ScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n symbolSize: 10,\r\n large: false,\r\n largeThreshold: 2000,\r\n itemStyle: {\r\n opacity: 0.8\r\n },\r\n emphasis: {\r\n scale: true\r\n },\r\n clip: true,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return ScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ScatterSeriesModel);\n\n var BOOST_SIZE_THRESHOLD = 4;\r\n var LargeSymbolPathShape = (function () {\r\n function LargeSymbolPathShape() {\r\n }\r\n return LargeSymbolPathShape;\r\n }());\r\n var LargeSymbolPath = (function (_super) {\r\n __extends(LargeSymbolPath, _super);\r\n function LargeSymbolPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeSymbolPath.prototype.getDefaultShape = function () {\r\n return new LargeSymbolPathShape();\r\n };\r\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\r\n var points = shape.points;\r\n var size = shape.size;\r\n var symbolProxy = this.symbolProxy;\r\n var symbolProxyShape = symbolProxy.shape;\r\n var ctx = path.getContext\r\n ? path.getContext()\r\n : path;\r\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\r\n if (canBoost) {\r\n this._ctx = ctx;\r\n return;\r\n }\r\n this._ctx = null;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n symbolProxyShape.x = x - size[0] / 2;\r\n symbolProxyShape.y = y - size[1] / 2;\r\n symbolProxyShape.width = size[0];\r\n symbolProxyShape.height = size[1];\r\n symbolProxy.buildPath(path, symbolProxyShape, true);\r\n }\r\n };\r\n LargeSymbolPath.prototype.afterBrush = function () {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var ctx = this._ctx;\r\n if (!ctx) {\r\n return;\r\n }\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\r\n }\r\n };\r\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var w = Math.max(size[0], 4);\r\n var h = Math.max(size[1], 4);\r\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\r\n var i = idx * 2;\r\n var x0 = points[i] - w / 2;\r\n var y0 = points[i + 1] - h / 2;\r\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\r\n return idx;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeSymbolPath;\r\n }(Path));\r\n var LargeSymbolDraw = (function () {\r\n function LargeSymbolDraw() {\r\n this.group = new Group();\r\n }\r\n LargeSymbolDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\r\n this.group.removeAll();\r\n var symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, false, opt);\r\n this.group.add(symbolEl);\r\n this._incremental = null;\r\n };\r\n LargeSymbolDraw.prototype.updateLayout = function (data) {\r\n if (this._incremental) {\r\n return;\r\n }\r\n var points = data.getLayout('symbolPoints');\r\n this.group.eachChild(function (child) {\r\n if (child.startIndex != null) {\r\n var len = (child.endIndex - child.startIndex) * 2;\r\n var byteOffset = child.startIndex * 4 * 2;\r\n points = new Float32Array(points.buffer, byteOffset, len);\r\n }\r\n child.setShape('points', points);\r\n });\r\n };\r\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 2e6) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n var symbolEl;\r\n if (this._incremental) {\r\n symbolEl = new LargeSymbolPath();\r\n this._incremental.addDisplayable(symbolEl, true);\r\n }\r\n else {\r\n symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default',\r\n startIndex: taskParams.start,\r\n endIndex: taskParams.end\r\n });\r\n symbolEl.incremental = true;\r\n this.group.add(symbolEl);\r\n }\r\n symbolEl.setShape({\r\n points: data.getLayout('symbolPoints')\r\n });\r\n this._setCommon(symbolEl, data, !!this._incremental, opt);\r\n };\r\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\r\n var hostModel = data.hostModel;\r\n opt = opt || {};\r\n var size = data.getVisual('symbolSize');\r\n symbolEl.setShape('size', (size instanceof Array) ? size : [size, size]);\r\n symbolEl.softClipShape = opt.clipShape || null;\r\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\r\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\r\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\r\n symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\r\n var globalStyle = data.getVisual('style');\r\n var visualColor = globalStyle && globalStyle.fill;\r\n if (visualColor) {\r\n symbolEl.setColor(visualColor);\r\n }\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(symbolEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n symbolEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex >= 0) {\r\n ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\r\n }\r\n });\r\n }\r\n };\r\n LargeSymbolDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeSymbolDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeSymbolDraw;\r\n }());\n\n var ScatterView = (function (_super) {\r\n __extends(ScatterView, _super);\r\n function ScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterView.type;\r\n return _this;\r\n }\r\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.updateData(data, {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = true;\r\n };\r\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.incrementalPrepareUpdate(data);\r\n this._finished = false;\r\n };\r\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = layoutPoints().reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({ start: 0, end: data.count(), count: data.count() }, data);\r\n }\r\n this._symbolDraw.updateLayout(data);\r\n }\r\n };\r\n ScatterView.prototype._getClipShape = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\r\n return seriesModel.get('clip', true) ? clipArea : null;\r\n };\r\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\r\n var symbolDraw = this._symbolDraw;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\r\n symbolDraw && symbolDraw.remove();\r\n symbolDraw = this._symbolDraw = isLargeDraw\r\n ? new LargeSymbolDraw()\r\n : new SymbolDraw();\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(symbolDraw.group);\r\n return symbolDraw;\r\n };\r\n ScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n this._symbolDraw = null;\r\n };\r\n ScatterView.prototype.dispose = function () { };\r\n ScatterView.type = 'scatter';\r\n return ScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(ScatterView);\n\n registerLayout(layoutPoints('scatter'));\n\n var IndicatorAxis = (function (_super) {\r\n __extends(IndicatorAxis, _super);\r\n function IndicatorAxis(dim, scale, radiusExtent) {\r\n var _this = _super.call(this, dim, scale, radiusExtent) || this;\r\n _this.type = 'value';\r\n _this.angle = 0;\r\n _this.name = '';\r\n return _this;\r\n }\r\n return IndicatorAxis;\r\n }(Axis));\n\n var Radar = (function () {\r\n function Radar(radarModel, ecModel, api) {\r\n this.dimensions = [];\r\n this._model = radarModel;\r\n this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\r\n var dim = 'indicator_' + idx;\r\n var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\r\n indicatorAxis.name = indicatorModel.get('name');\r\n indicatorAxis.model = indicatorModel;\r\n indicatorModel.axis = indicatorAxis;\r\n this.dimensions.push(dim);\r\n return indicatorAxis;\r\n }, this);\r\n this.resize(radarModel, api);\r\n }\r\n Radar.prototype.getIndicatorAxes = function () {\r\n return this._indicatorAxes;\r\n };\r\n Radar.prototype.dataToPoint = function (value, indicatorIndex) {\r\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\r\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\r\n };\r\n Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\r\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\r\n var angle = indicatorAxis.angle;\r\n var x = this.cx + coord * Math.cos(angle);\r\n var y = this.cy - coord * Math.sin(angle);\r\n return [x, y];\r\n };\r\n Radar.prototype.pointToData = function (pt) {\r\n var dx = pt[0] - this.cx;\r\n var dy = pt[1] - this.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n dx /= radius;\r\n dy /= radius;\r\n var radian = Math.atan2(-dy, dx);\r\n var minRadianDiff = Infinity;\r\n var closestAxis;\r\n var closestAxisIdx = -1;\r\n for (var i = 0; i < this._indicatorAxes.length; i++) {\r\n var indicatorAxis = this._indicatorAxes[i];\r\n var diff = Math.abs(radian - indicatorAxis.angle);\r\n if (diff < minRadianDiff) {\r\n closestAxis = indicatorAxis;\r\n closestAxisIdx = i;\r\n minRadianDiff = diff;\r\n }\r\n }\r\n return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\r\n };\r\n Radar.prototype.resize = function (radarModel, api) {\r\n var center = radarModel.get('center');\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\r\n this.cx = parsePercent$2(center[0], viewWidth);\r\n this.cy = parsePercent$2(center[1], viewHeight);\r\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\r\n var radius = radarModel.get('radius');\r\n if (typeof radius === 'string' || typeof radius === 'number') {\r\n radius = [0, radius];\r\n }\r\n this.r0 = parsePercent$2(radius[0], viewSize);\r\n this.r = parsePercent$2(radius[1], viewSize);\r\n each(this._indicatorAxes, function (indicatorAxis, idx) {\r\n indicatorAxis.setExtent(this.r0, this.r);\r\n var angle = (this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length);\r\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\r\n indicatorAxis.angle = angle;\r\n }, this);\r\n };\r\n Radar.prototype.update = function (ecModel, api) {\r\n var indicatorAxes = this._indicatorAxes;\r\n var radarModel = this._model;\r\n each(indicatorAxes, function (indicatorAxis) {\r\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\r\n });\r\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\r\n if (radarSeries.get('coordinateSystem') !== 'radar'\r\n || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\r\n return;\r\n }\r\n var data = radarSeries.getData();\r\n each(indicatorAxes, function (indicatorAxis) {\r\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\r\n });\r\n }, this);\r\n var splitNumber = radarModel.get('splitNumber');\r\n function increaseInterval(interval) {\r\n var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\r\n var f = interval / exp10;\r\n if (f === 2) {\r\n f = 5;\r\n }\r\n else {\r\n f *= 2;\r\n }\r\n return f * exp10;\r\n }\r\n each(indicatorAxes, function (indicatorAxis, idx) {\r\n var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\r\n niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\r\n var axisModel = indicatorAxis.model;\r\n var scale = indicatorAxis.scale;\r\n var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\r\n var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\r\n var interval = scale.getInterval();\r\n if (fixedMin != null && fixedMax != null) {\r\n scale.setExtent(+fixedMin, +fixedMax);\r\n scale.setInterval((fixedMax - fixedMin) / splitNumber);\r\n }\r\n else if (fixedMin != null) {\r\n var max = void 0;\r\n do {\r\n max = fixedMin + interval * splitNumber;\r\n scale.setExtent(+fixedMin, max);\r\n scale.setInterval(interval);\r\n interval = increaseInterval(interval);\r\n } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\r\n }\r\n else if (fixedMax != null) {\r\n var min = void 0;\r\n do {\r\n min = fixedMax - interval * splitNumber;\r\n scale.setExtent(min, +fixedMax);\r\n scale.setInterval(interval);\r\n interval = increaseInterval(interval);\r\n } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\r\n }\r\n else {\r\n var nicedSplitNumber = scale.getTicks().length - 1;\r\n if (nicedSplitNumber > splitNumber) {\r\n interval = increaseInterval(interval);\r\n }\r\n var max = Math.ceil(rawExtent[1] / interval) * interval;\r\n var min = round$1(max - interval * splitNumber);\r\n scale.setExtent(min, max);\r\n scale.setInterval(interval);\r\n }\r\n });\r\n };\r\n Radar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n console.warn('Not implemented.');\r\n return null;\r\n };\r\n Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n console.warn('Not implemented.');\r\n return null;\r\n };\r\n Radar.prototype.containPoint = function (point) {\r\n console.warn('Not implemented.');\r\n return false;\r\n };\r\n Radar.create = function (ecModel, api) {\r\n var radarList = [];\r\n ecModel.eachComponent('radar', function (radarModel) {\r\n var radar = new Radar(radarModel, ecModel, api);\r\n radarList.push(radar);\r\n radarModel.coordinateSystem = radar;\r\n });\r\n ecModel.eachSeriesByType('radar', function (radarSeries) {\r\n if (radarSeries.get('coordinateSystem') === 'radar') {\r\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\r\n }\r\n });\r\n return radarList;\r\n };\r\n Radar.dimensions = [];\r\n return Radar;\r\n }());\r\n CoordinateSystemManager.register('radar', Radar);\n\n var valueAxisDefault = axisDefault.value;\r\n function defaultsShow(opt, show) {\r\n return defaults({\r\n show: show\r\n }, opt);\r\n }\r\n var RadarModel = (function (_super) {\r\n __extends(RadarModel, _super);\r\n function RadarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarModel.type;\r\n return _this;\r\n }\r\n RadarModel.prototype.optionUpdated = function () {\r\n var boundaryGap = this.get('boundaryGap');\r\n var splitNumber = this.get('splitNumber');\r\n var scale = this.get('scale');\r\n var axisLine = this.get('axisLine');\r\n var axisTick = this.get('axisTick');\r\n var axisLabel = this.get('axisLabel');\r\n var nameTextStyle = this.get('axisName');\r\n var showName = this.get(['axisName', 'show']);\r\n var nameFormatter = this.get(['axisName', 'formatter']);\r\n var nameGap = this.get('axisNameGap');\r\n var triggerEvent = this.get('triggerEvent');\r\n var indicatorModels = map(this.get('indicator') || [], function (indicatorOpt) {\r\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\r\n indicatorOpt.min = 0;\r\n }\r\n else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\r\n indicatorOpt.max = 0;\r\n }\r\n var iNameTextStyle = nameTextStyle;\r\n if (indicatorOpt.color != null) {\r\n iNameTextStyle = defaults({\r\n color: indicatorOpt.color\r\n }, nameTextStyle);\r\n }\r\n var innerIndicatorOpt = merge(clone(indicatorOpt), {\r\n boundaryGap: boundaryGap,\r\n splitNumber: splitNumber,\r\n scale: scale,\r\n axisLine: axisLine,\r\n axisTick: axisTick,\r\n axisLabel: axisLabel,\r\n name: indicatorOpt.text,\r\n nameLocation: 'end',\r\n nameGap: nameGap,\r\n nameTextStyle: iNameTextStyle,\r\n triggerEvent: triggerEvent\r\n }, false);\r\n if (!showName) {\r\n innerIndicatorOpt.name = '';\r\n }\r\n if (typeof nameFormatter === 'string') {\r\n var indName = innerIndicatorOpt.name;\r\n innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\r\n }\r\n else if (typeof nameFormatter === 'function') {\r\n innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\r\n }\r\n var model = new Model(innerIndicatorOpt, null, this.ecModel);\r\n mixin(model, AxisModelCommonMixin.prototype);\r\n model.mainType = 'radar';\r\n model.componentIndex = this.componentIndex;\r\n return model;\r\n }, this);\r\n this._indicatorModels = indicatorModels;\r\n };\r\n RadarModel.prototype.getIndicatorModels = function () {\r\n return this._indicatorModels;\r\n };\r\n RadarModel.type = 'radar';\r\n RadarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n center: ['50%', '50%'],\r\n radius: '75%',\r\n startAngle: 90,\r\n axisName: {\r\n show: true\r\n },\r\n boundaryGap: [0, 0],\r\n splitNumber: 5,\r\n axisNameGap: 15,\r\n scale: false,\r\n shape: 'polygon',\r\n axisLine: merge({\r\n lineStyle: {\r\n color: '#bbb'\r\n }\r\n }, valueAxisDefault.axisLine),\r\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\r\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\r\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\r\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\r\n indicator: []\r\n };\r\n return RadarModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(RadarModel);\n\n var axisBuilderAttrs$1 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var RadarView = (function (_super) {\r\n __extends(RadarView, _super);\r\n function RadarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarView.type;\r\n return _this;\r\n }\r\n RadarView.prototype.render = function (radarModel, ecModel, api) {\r\n var group = this.group;\r\n group.removeAll();\r\n this._buildAxes(radarModel);\r\n this._buildSplitLineAndArea(radarModel);\r\n };\r\n RadarView.prototype._buildAxes = function (radarModel) {\r\n var radar = radarModel.coordinateSystem;\r\n var indicatorAxes = radar.getIndicatorAxes();\r\n var axisBuilders = map(indicatorAxes, function (indicatorAxis) {\r\n var axisBuilder = new AxisBuilder(indicatorAxis.model, {\r\n position: [radar.cx, radar.cy],\r\n rotation: indicatorAxis.angle,\r\n labelDirection: -1,\r\n tickDirection: -1,\r\n nameDirection: 1\r\n });\r\n return axisBuilder;\r\n });\r\n each(axisBuilders, function (axisBuilder) {\r\n each(axisBuilderAttrs$1, axisBuilder.add, axisBuilder);\r\n this.group.add(axisBuilder.getGroup());\r\n }, this);\r\n };\r\n RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\r\n var radar = radarModel.coordinateSystem;\r\n var indicatorAxes = radar.getIndicatorAxes();\r\n if (!indicatorAxes.length) {\r\n return;\r\n }\r\n var shape = radarModel.get('shape');\r\n var splitLineModel = radarModel.getModel('splitLine');\r\n var splitAreaModel = radarModel.getModel('splitArea');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var showSplitLine = splitLineModel.get('show');\r\n var showSplitArea = splitAreaModel.get('show');\r\n var splitLineColors = lineStyleModel.get('color');\r\n var splitAreaColors = areaStyleModel.get('color');\r\n var splitLineColorsArr = isArray(splitLineColors) ? splitLineColors : [splitLineColors];\r\n var splitAreaColorsArr = isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\r\n var splitLines = [];\r\n var splitAreas = [];\r\n function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\r\n var colorIndex = idx % areaOrLineColorList.length;\r\n areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\r\n return colorIndex;\r\n }\r\n if (shape === 'circle') {\r\n var ticksRadius = indicatorAxes[0].getTicksCoords();\r\n var cx = radar.cx;\r\n var cy = radar.cy;\r\n for (var i = 0; i < ticksRadius.length; i++) {\r\n if (showSplitLine) {\r\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\r\n splitLines[colorIndex].push(new Circle({\r\n shape: {\r\n cx: cx,\r\n cy: cy,\r\n r: ticksRadius[i].coord\r\n }\r\n }));\r\n }\r\n if (showSplitArea && i < ticksRadius.length - 1) {\r\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\r\n splitAreas[colorIndex].push(new Ring({\r\n shape: {\r\n cx: cx,\r\n cy: cy,\r\n r0: ticksRadius[i].coord,\r\n r: ticksRadius[i + 1].coord\r\n }\r\n }));\r\n }\r\n }\r\n }\r\n else {\r\n var realSplitNumber_1;\r\n var axesTicksPoints = map(indicatorAxes, function (indicatorAxis, idx) {\r\n var ticksCoords = indicatorAxis.getTicksCoords();\r\n realSplitNumber_1 = realSplitNumber_1 == null\r\n ? ticksCoords.length - 1\r\n : Math.min(ticksCoords.length - 1, realSplitNumber_1);\r\n return map(ticksCoords, function (tickCoord) {\r\n return radar.coordToPoint(tickCoord.coord, idx);\r\n });\r\n });\r\n var prevPoints = [];\r\n for (var i = 0; i <= realSplitNumber_1; i++) {\r\n var points = [];\r\n for (var j = 0; j < indicatorAxes.length; j++) {\r\n points.push(axesTicksPoints[j][i]);\r\n }\r\n if (points[0]) {\r\n points.push(points[0].slice());\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.error('Can\\'t draw value axis ' + i);\r\n }\r\n }\r\n if (showSplitLine) {\r\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\r\n splitLines[colorIndex].push(new Polyline({\r\n shape: {\r\n points: points\r\n }\r\n }));\r\n }\r\n if (showSplitArea && prevPoints) {\r\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\r\n splitAreas[colorIndex].push(new Polygon({\r\n shape: {\r\n points: points.concat(prevPoints)\r\n }\r\n }));\r\n }\r\n prevPoints = points.slice().reverse();\r\n }\r\n }\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n each(splitAreas, function (splitAreas, idx) {\r\n this.group.add(mergePath$1(splitAreas, {\r\n style: defaults({\r\n stroke: 'none',\r\n fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\r\n }, areaStyle),\r\n silent: true\r\n }));\r\n }, this);\r\n each(splitLines, function (splitLines, idx) {\r\n this.group.add(mergePath$1(splitLines, {\r\n style: defaults({\r\n fill: 'none',\r\n stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }, this);\r\n };\r\n RadarView.type = 'radar';\r\n return RadarView;\r\n }(ComponentView));\r\n ComponentView.registerClass(RadarView);\n\n var RadarSeriesModel = (function (_super) {\r\n __extends(RadarSeriesModel, _super);\r\n function RadarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n RadarSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n };\r\n RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, {\r\n generateCoord: 'indicator_',\r\n generateCoordCount: Infinity\r\n });\r\n };\r\n RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n var data = this.getData();\r\n var coordSys = this.coordinateSystem;\r\n var indicatorAxes = coordSys.getIndicatorAxes();\r\n var name = this.getData().getName(dataIndex);\r\n each(indicatorAxes, function (axis, idx) {\r\n axis.value = data.get(data.mapDimension(axis.dim), dataIndex);\r\n });\r\n switch (order) {\r\n case 'valueAsc':\r\n indicatorAxes.sort(function (a, b) {\r\n return +(a.value) - +(b.value);\r\n });\r\n break;\r\n case 'valueDesc':\r\n indicatorAxes.sort(function (a, b) {\r\n return +(b.value) - +(a.value);\r\n });\r\n break;\r\n case 'seriesDesc':\r\n indicatorAxes.reverse();\r\n break;\r\n }\r\n if (renderMode === 'richText') {\r\n return encodeHTML(name === '' ? this.name : name) + '\\n'\r\n + map(indicatorAxes, function (axis) {\r\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\r\n return encodeHTML(axis.name) + ': ' + val;\r\n }).join('\\n');\r\n }\r\n return '
'\r\n + encodeHTML(name === '' ? this.name : name)\r\n + '
'\r\n + map(indicatorAxes, function (axis) {\r\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\r\n return '
'\r\n + concatTooltipHtml(axis.name, val)\r\n + '
';\r\n }).join('');\r\n };\r\n RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\r\n if (dataIndex != null) {\r\n var data_1 = this.getData();\r\n var coordSys = this.coordinateSystem;\r\n var values = data_1.getValues(map(coordSys.dimensions, function (dim) {\r\n return data_1.mapDimension(dim);\r\n }), dataIndex);\r\n for (var i = 0, len = values.length; i < len; i++) {\r\n if (!isNaN(values[i])) {\r\n var indicatorAxes = coordSys.getIndicatorAxes();\r\n return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\r\n }\r\n }\r\n }\r\n };\r\n RadarSeriesModel.type = 'series.radar';\r\n RadarSeriesModel.dependencies = ['radar'];\r\n RadarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'radar',\r\n legendHoverLink: true,\r\n radarIndex: 0,\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n label: {\r\n position: 'top'\r\n },\r\n symbol: 'emptyCircle',\r\n symbolSize: 4\r\n };\r\n return RadarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(RadarSeriesModel);\n\n function normalizeSymbolSize(symbolSize) {\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [+symbolSize, +symbolSize];\r\n }\r\n return symbolSize;\r\n }\r\n var RadarView$1 = (function (_super) {\r\n __extends(RadarView, _super);\r\n function RadarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarView.type;\r\n return _this;\r\n }\r\n RadarView.prototype.render = function (seriesModel, ecModel, api) {\r\n var polar = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n function createSymbol$1(data, idx) {\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n if (symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2);\r\n symbolPath.attr({\r\n style: {\r\n strokeNoScale: true\r\n },\r\n z2: 100,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n return symbolPath;\r\n }\r\n function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\r\n symbolGroup.removeAll();\r\n for (var i = 0; i < newPoints.length - 1; i++) {\r\n var symbolPath = createSymbol$1(data, idx);\r\n if (symbolPath) {\r\n symbolPath.__dimIdx = i;\r\n if (oldPoints[i]) {\r\n symbolPath.setPosition(oldPoints[i]);\r\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\r\n x: newPoints[i][0],\r\n y: newPoints[i][1]\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n symbolPath.setPosition(newPoints[i]);\r\n }\r\n symbolGroup.add(symbolPath);\r\n }\r\n }\r\n }\r\n function getInitialPoints(points) {\r\n return map(points, function (pt) {\r\n return [polar.cx, polar.cy];\r\n });\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var points = data.getItemLayout(idx);\r\n if (!points) {\r\n return;\r\n }\r\n var polygon = new Polygon();\r\n var polyline = new Polyline();\r\n var target = {\r\n shape: {\r\n points: points\r\n }\r\n };\r\n polygon.shape.points = getInitialPoints(points);\r\n polyline.shape.points = getInitialPoints(points);\r\n initProps(polygon, target, seriesModel, idx);\r\n initProps(polyline, target, seriesModel, idx);\r\n var itemGroup = new Group();\r\n var symbolGroup = new Group();\r\n itemGroup.add(polyline);\r\n itemGroup.add(polygon);\r\n itemGroup.add(symbolGroup);\r\n updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\r\n data.setItemGraphicEl(idx, itemGroup);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var itemGroup = oldData.getItemGraphicEl(oldIdx);\r\n var polyline = itemGroup.childAt(0);\r\n var polygon = itemGroup.childAt(1);\r\n var symbolGroup = itemGroup.childAt(2);\r\n var target = {\r\n shape: {\r\n points: data.getItemLayout(newIdx)\r\n }\r\n };\r\n if (!target.shape.points) {\r\n return;\r\n }\r\n updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\r\n updateProps(polyline, target, seriesModel);\r\n updateProps(polygon, target, seriesModel);\r\n data.setItemGraphicEl(newIdx, itemGroup);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n data.eachItemGraphicEl(function (itemGroup, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var polyline = itemGroup.childAt(0);\r\n var polygon = itemGroup.childAt(1);\r\n var symbolGroup = itemGroup.childAt(2);\r\n var itemStyle = data.getItemVisual(idx, 'style');\r\n var color = itemStyle.fill;\r\n group.add(itemGroup);\r\n polyline.useStyle(defaults(itemModel.getModel('lineStyle').getLineStyle(), {\r\n fill: 'none',\r\n stroke: color\r\n }));\r\n setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\r\n setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\r\n var areaStyleModel = itemModel.getModel('areaStyle');\r\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\r\n polygon.ignore = polygonIgnore;\r\n each(['emphasis', 'select', 'blur'], function (stateName) {\r\n var stateModel = itemModel.getModel([stateName, 'areaStyle']);\r\n var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\r\n polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\r\n });\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: color,\r\n opacity: 0.7\r\n }));\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n symbolGroup.eachChild(function (symbolPath) {\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, itemStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(itemStyle);\r\n symbolPath.setColor(color);\r\n }\r\n var pathEmphasisState = symbolPath.ensureState('emphasis');\r\n pathEmphasisState.style = clone(itemHoverStyle);\r\n var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\r\n (defaultText == null || isNaN(defaultText)) && (defaultText = '');\r\n setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n labelDimIndex: symbolPath.__dimIdx,\r\n defaultText: defaultText,\r\n inheritColor: color\r\n });\r\n });\r\n enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n });\r\n this._data = data;\r\n };\r\n RadarView.prototype.remove = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n RadarView.type = 'radar';\r\n return RadarView;\r\n }(ChartView));\r\n ChartView.registerClass(RadarView$1);\n\n function radarLayout (ecModel) {\r\n ecModel.eachSeriesByType('radar', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var points = [];\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var axes = coordSys.getIndicatorAxes();\r\n each(axes, function (axis, axisIndex) {\r\n data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\r\n points[dataIndex] = points[dataIndex] || [];\r\n var point = coordSys.dataToPoint(val, axisIndex);\r\n points[dataIndex][axisIndex] = isValidPoint(point)\r\n ? point : getValueMissingPoint(coordSys);\r\n });\r\n });\r\n data.each(function (idx) {\r\n var firstPoint = find(points[idx], function (point) {\r\n return isValidPoint(point);\r\n }) || getValueMissingPoint(coordSys);\r\n points[idx].push(firstPoint.slice());\r\n data.setItemLayout(idx, points[idx]);\r\n });\r\n });\r\n }\r\n function isValidPoint(point) {\r\n return !isNaN(point[0]) && !isNaN(point[1]);\r\n }\r\n function getValueMissingPoint(coordSys) {\r\n return [coordSys.cx, coordSys.cy];\r\n }\n\n function backwardCompat$1 (option) {\r\n var polarOptArr = option.polar;\r\n if (polarOptArr) {\r\n if (!isArray(polarOptArr)) {\r\n polarOptArr = [polarOptArr];\r\n }\r\n var polarNotRadar_1 = [];\r\n each(polarOptArr, function (polarOpt, idx) {\r\n if (polarOpt.indicator) {\r\n if (polarOpt.type && !polarOpt.shape) {\r\n polarOpt.shape = polarOpt.type;\r\n }\r\n option.radar = option.radar || [];\r\n if (!isArray(option.radar)) {\r\n option.radar = [option.radar];\r\n }\r\n option.radar.push(polarOpt);\r\n }\r\n else {\r\n polarNotRadar_1.push(polarOpt);\r\n }\r\n });\r\n option.polar = polarNotRadar_1;\r\n }\r\n each(option.series, function (seriesOpt) {\r\n if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\r\n seriesOpt.radarIndex = seriesOpt.polarIndex;\r\n }\r\n });\r\n }\n\n registerLayout(radarLayout);\r\n registerProcessor(dataFilter('radar'));\r\n registerPreprocessor(backwardCompat$1);\n\n var geoCoord = [126, 25];\r\n var points$1 = [\r\n [[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7],\r\n [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]],\r\n [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]],\r\n [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]],\r\n [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]],\r\n [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]],\r\n [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]],\r\n [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]],\r\n [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]],\r\n [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]],\r\n [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]],\r\n [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]],\r\n [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4],\r\n [1, 92.4], [1, 3.5], [0, 3.5]]\r\n ];\r\n for (var i = 0; i < points$1.length; i++) {\r\n for (var k = 0; k < points$1[i].length; k++) {\r\n points$1[i][k][0] /= 10.5;\r\n points$1[i][k][1] /= -10.5 / 0.75;\r\n points$1[i][k][0] += geoCoord[0];\r\n points$1[i][k][1] += geoCoord[1];\r\n }\r\n }\r\n function fixNanhai (mapType, regions) {\r\n if (mapType === 'china') {\r\n regions.push(new Region('南海诸岛', map(points$1, function (exterior) {\r\n return {\r\n type: 'polygon',\r\n exterior: exterior\r\n };\r\n }), geoCoord));\r\n }\r\n }\n\n var coordsOffsetMap = {\r\n '南海诸岛': [32, 80],\r\n '广东': [0, -10],\r\n '香港': [10, 5],\r\n '澳门': [-10, 10],\r\n '天津': [5, 5]\r\n };\r\n function fixTextCoord (mapType, region) {\r\n if (mapType === 'china') {\r\n var coordFix = coordsOffsetMap[region.name];\r\n if (coordFix) {\r\n var cp = region.center;\r\n cp[0] += coordFix[0] / 10.5;\r\n cp[1] += -coordFix[1] / (10.5 / 0.75);\r\n }\r\n }\r\n }\n\n var geoCoordMap = {\r\n 'Russia': [100, 60],\r\n 'United States': [-99, 38],\r\n 'United States of America': [-99, 38]\r\n };\r\n function fixGeoCoord (mapType, region) {\r\n if (mapType === 'world') {\r\n var geoCoord = geoCoordMap[region.name];\r\n if (geoCoord) {\r\n var cp = region.center;\r\n cp[0] = geoCoord[0];\r\n cp[1] = geoCoord[1];\r\n }\r\n }\r\n }\n\n var points$2 = [\r\n [\r\n [123.45165252685547, 25.73527164402261],\r\n [123.49731445312499, 25.73527164402261],\r\n [123.49731445312499, 25.750734064600884],\r\n [123.45165252685547, 25.750734064600884],\r\n [123.45165252685547, 25.73527164402261]\r\n ]\r\n ];\r\n function fixDiaoyuIsland (mapType, region) {\r\n if (mapType === 'china' && region.name === '台湾') {\r\n region.geometries.push({\r\n type: 'polygon',\r\n exterior: points$2[0]\r\n });\r\n }\r\n }\n\n var inner$7 = makeInner();\r\n var geoJSONLoader = {\r\n load: function (mapName, mapRecord, nameProperty) {\r\n var parsed = inner$7(mapRecord).parsed;\r\n if (parsed) {\r\n return parsed;\r\n }\r\n var specialAreas = mapRecord.specialAreas || {};\r\n var geoJSON = mapRecord.geoJSON;\r\n var regions;\r\n try {\r\n regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\r\n }\r\n catch (e) {\r\n throw new Error('Invalid geoJson format\\n' + e.message);\r\n }\r\n fixNanhai(mapName, regions);\r\n each(regions, function (region) {\r\n var regionName = region.name;\r\n fixTextCoord(mapName, region);\r\n fixGeoCoord(mapName, region);\r\n fixDiaoyuIsland(mapName, region);\r\n var specialArea = specialAreas[regionName];\r\n if (specialArea) {\r\n region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\r\n }\r\n });\r\n return (inner$7(mapRecord).parsed = {\r\n regions: regions,\r\n boundingRect: getBoundingRect$1(regions)\r\n });\r\n }\r\n };\r\n function getBoundingRect$1(regions) {\r\n var rect;\r\n for (var i = 0; i < regions.length; i++) {\r\n var regionRect = regions[i].getBoundingRect();\r\n rect = rect || regionRect.clone();\r\n rect.union(regionRect);\r\n }\r\n return rect;\r\n }\n\n var inner$8 = makeInner();\r\n var geoSVGLoader = {\r\n load: function (mapName, mapRecord) {\r\n var originRoot = inner$8(mapRecord).originRoot;\r\n if (originRoot) {\r\n return {\r\n root: originRoot,\r\n boundingRect: inner$8(mapRecord).boundingRect\r\n };\r\n }\r\n var graphic = buildGraphic(mapRecord);\r\n inner$8(mapRecord).originRoot = graphic.root;\r\n inner$8(mapRecord).boundingRect = graphic.boundingRect;\r\n return graphic;\r\n },\r\n makeGraphic: function (mapName, mapRecord, hostKey) {\r\n var field = inner$8(mapRecord);\r\n var rootMap = field.rootMap || (field.rootMap = createHashMap());\r\n var root = rootMap.get(hostKey);\r\n if (root) {\r\n return root;\r\n }\r\n var originRoot = field.originRoot;\r\n var boundingRect = field.boundingRect;\r\n if (!field.originRootHostKey) {\r\n field.originRootHostKey = hostKey;\r\n root = originRoot;\r\n }\r\n else {\r\n root = buildGraphic(mapRecord, boundingRect).root;\r\n }\r\n return rootMap.set(hostKey, root);\r\n },\r\n removeGraphic: function (mapName, mapRecord, hostKey) {\r\n var field = inner$8(mapRecord);\r\n var rootMap = field.rootMap;\r\n rootMap && rootMap.removeKey(hostKey);\r\n if (hostKey === field.originRootHostKey) {\r\n field.originRootHostKey = null;\r\n }\r\n }\r\n };\r\n function buildGraphic(mapRecord, boundingRect) {\r\n var svgXML = mapRecord.svgXML;\r\n var result;\r\n var root;\r\n try {\r\n result = svgXML && parseSVG(svgXML, {\r\n ignoreViewBox: true,\r\n ignoreRootClip: true\r\n }) || {};\r\n root = result.root;\r\n assert(root != null);\r\n }\r\n catch (e) {\r\n throw new Error('Invalid svg format\\n' + e.message);\r\n }\r\n var svgWidth = result.width;\r\n var svgHeight = result.height;\r\n var viewBoxRect = result.viewBoxRect;\r\n if (!boundingRect) {\r\n boundingRect = (svgWidth == null || svgHeight == null)\r\n ? root.getBoundingRect()\r\n : new BoundingRect(0, 0, 0, 0);\r\n if (svgWidth != null) {\r\n boundingRect.width = svgWidth;\r\n }\r\n if (svgHeight != null) {\r\n boundingRect.height = svgHeight;\r\n }\r\n }\r\n if (viewBoxRect) {\r\n var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\r\n var elRoot = root;\r\n root = new Group();\r\n root.add(elRoot);\r\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\r\n elRoot.x = viewBoxTransform.x;\r\n elRoot.y = viewBoxTransform.y;\r\n }\r\n root.setClipPath(new Rect({\r\n shape: boundingRect.plain()\r\n }));\r\n return {\r\n root: root,\r\n boundingRect: boundingRect\r\n };\r\n }\n\n var loaders = {\r\n geoJSON: geoJSONLoader,\r\n svg: geoSVGLoader\r\n };\r\n var geoSourceManager = {\r\n load: function (mapName, nameMap, nameProperty) {\r\n var regions = [];\r\n var regionsMap = createHashMap();\r\n var nameCoordMap = createHashMap();\r\n var boundingRect;\r\n var mapRecords = retrieveMap(mapName);\r\n each(mapRecords, function (record) {\r\n var singleSource = loaders[record.type].load(mapName, record, nameProperty);\r\n each(singleSource.regions, function (region) {\r\n var regionName = region.name;\r\n if (nameMap && nameMap.hasOwnProperty(regionName)) {\r\n region = region.cloneShallow(regionName = nameMap[regionName]);\r\n }\r\n regions.push(region);\r\n regionsMap.set(regionName, region);\r\n nameCoordMap.set(regionName, region.center);\r\n });\r\n var rect = singleSource.boundingRect;\r\n if (rect) {\r\n boundingRect\r\n ? boundingRect.union(rect)\r\n : (boundingRect = rect.clone());\r\n }\r\n });\r\n return {\r\n regions: regions,\r\n regionsMap: regionsMap,\r\n nameCoordMap: nameCoordMap,\r\n boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\r\n };\r\n },\r\n makeGraphic: function (mapName, hostKey) {\r\n var mapRecords = retrieveMap(mapName);\r\n var results = [];\r\n each(mapRecords, function (record) {\r\n var method = loaders[record.type].makeGraphic;\r\n method && results.push(method(mapName, record, hostKey));\r\n });\r\n return results;\r\n },\r\n removeGraphic: function (mapName, hostKey) {\r\n var mapRecords = retrieveMap(mapName);\r\n each(mapRecords, function (record) {\r\n var method = loaders[record.type].makeGraphic;\r\n method && method(mapName, record, hostKey);\r\n });\r\n }\r\n };\r\n function mapNotExistsError(mapName) {\r\n if (__DEV__) {\r\n console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\r\n }\r\n }\r\n function retrieveMap(mapName) {\r\n var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\r\n if (__DEV__) {\r\n if (!mapRecords.length) {\r\n mapNotExistsError(mapName);\r\n }\r\n }\r\n return mapRecords;\r\n }\n\n var MapSeries = (function (_super) {\r\n __extends(MapSeries, _super);\r\n function MapSeries() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MapSeries.type;\r\n _this.needsDrawMap = false;\r\n _this.seriesGroup = [];\r\n _this.getTooltipPosition = function (dataIndex) {\r\n if (dataIndex != null) {\r\n var name_1 = this.getData().getName(dataIndex);\r\n var geo = this.coordinateSystem;\r\n var region = geo.getRegion(name_1);\r\n return region && geo.dataToPoint(region.center);\r\n }\r\n };\r\n return _this;\r\n }\r\n MapSeries.prototype.getInitialData = function (option) {\r\n var data = createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n var dataNameMap = createHashMap();\r\n var toAppendNames = [];\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n var name_2 = data.getName(i);\r\n dataNameMap.set(name_2, true);\r\n }\r\n var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\r\n each(geoSource.regions, function (region) {\r\n var name = region.name;\r\n if (!dataNameMap.get(name)) {\r\n toAppendNames.push(name);\r\n }\r\n });\r\n data.appendValues([], toAppendNames);\r\n return data;\r\n };\r\n MapSeries.prototype.getHostGeoModel = function () {\r\n var geoIndex = this.option.geoIndex;\r\n return geoIndex != null\r\n ? this.ecModel.getComponent('geo', geoIndex)\r\n : null;\r\n };\r\n MapSeries.prototype.getMapType = function () {\r\n return (this.getHostGeoModel() || this).option.map;\r\n };\r\n MapSeries.prototype.getRawValue = function (dataIndex) {\r\n var data = this.getData();\r\n return data.get(data.mapDimension('value'), dataIndex);\r\n };\r\n MapSeries.prototype.getRegionModel = function (regionName) {\r\n var data = this.getData();\r\n return data.getItemModel(data.indexOfName(regionName));\r\n };\r\n MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var formattedValue = addCommas(this.getRawValue(dataIndex));\r\n var name = data.getName(dataIndex);\r\n var seriesGroup = this.seriesGroup;\r\n var seriesNames = [];\r\n for (var i = 0; i < seriesGroup.length; i++) {\r\n var otherIndex = seriesGroup[i].originalData.indexOfName(name);\r\n var valueDim = data.mapDimension('value');\r\n if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\r\n seriesNames.push(encodeHTML(seriesGroup[i].name));\r\n }\r\n }\r\n if (renderMode === 'richText') {\r\n return seriesNames.join(', ') + (seriesNames.length ? '\\n' : '')\r\n + encodeHTML(name) + ': ' + formattedValue;\r\n }\r\n return \"
\" + seriesNames.join(', ') + \"
\"\r\n + concatTooltipHtml(name, formattedValue);\r\n };\r\n MapSeries.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n MapSeries.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n MapSeries.type = 'series.map';\r\n MapSeries.dependencies = ['geo'];\r\n MapSeries.layoutMode = 'box';\r\n MapSeries.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'geo',\r\n map: '',\r\n left: 'center',\r\n top: 'center',\r\n aspectScale: 0.75,\r\n showLegendSymbol: true,\r\n boundingCoords: null,\r\n center: null,\r\n zoom: 1,\r\n scaleLimit: null,\r\n selectedMode: true,\r\n label: {\r\n show: false,\r\n color: '#000'\r\n },\r\n itemStyle: {\r\n borderWidth: 0.5,\r\n borderColor: '#444',\r\n areaColor: '#eee'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n areaColor: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n select: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n nameProperty: 'name'\r\n };\r\n return MapSeries;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(MapSeries);\n\n var ATTR = '\\0_ec_interaction_mutex';\r\n function take(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n store[resourceKey] = userKey;\r\n }\r\n function release(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n var uKey = store[resourceKey];\r\n if (uKey === userKey) {\r\n store[resourceKey] = null;\r\n }\r\n }\r\n function isTaken(zr, resourceKey) {\r\n return !!getStore(zr)[resourceKey];\r\n }\r\n function getStore(zr) {\r\n return zr[ATTR] || (zr[ATTR] = {});\r\n }\r\n registerAction({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, function () { });\n\n var RoamController = (function (_super) {\r\n __extends(RoamController, _super);\r\n function RoamController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._zr = zr;\r\n var mousedownHandler = bind(_this._mousedownHandler, _this);\r\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\r\n var mouseupHandler = bind(_this._mouseupHandler, _this);\r\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\r\n var pinchHandler = bind(_this._pinchHandler, _this);\r\n _this.enable = function (controlType, opt) {\r\n this.disable();\r\n this._opt = defaults(clone(opt) || {}, {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n if (controlType == null) {\r\n controlType = true;\r\n }\r\n if (controlType === true || (controlType === 'move' || controlType === 'pan')) {\r\n zr.on('mousedown', mousedownHandler);\r\n zr.on('mousemove', mousemoveHandler);\r\n zr.on('mouseup', mouseupHandler);\r\n }\r\n if (controlType === true || (controlType === 'scale' || controlType === 'zoom')) {\r\n zr.on('mousewheel', mousewheelHandler);\r\n zr.on('pinch', pinchHandler);\r\n }\r\n };\r\n _this.disable = function () {\r\n zr.off('mousedown', mousedownHandler);\r\n zr.off('mousemove', mousemoveHandler);\r\n zr.off('mouseup', mouseupHandler);\r\n zr.off('mousewheel', mousewheelHandler);\r\n zr.off('pinch', pinchHandler);\r\n };\r\n return _this;\r\n }\r\n RoamController.prototype.isDragging = function () {\r\n return this._dragging;\r\n };\r\n RoamController.prototype.isPinching = function () {\r\n return this._pinching;\r\n };\r\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\r\n this.pointerChecker = pointerChecker;\r\n };\r\n RoamController.prototype.dispose = function () {\r\n this.disable();\r\n };\r\n RoamController.prototype._mousedownHandler = function (e) {\r\n if (isMiddleOrRightButtonOnMouseUpDown(e)\r\n || (e.target && e.target.draggable)) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\r\n this._x = x;\r\n this._y = y;\r\n this._dragging = true;\r\n }\r\n };\r\n RoamController.prototype._mousemoveHandler = function (e) {\r\n if (!this._dragging\r\n || !isAvailableBehavior('moveOnMouseMove', e, this._opt)\r\n || e.gestureEvent === 'pinch'\r\n || isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var oldX = this._x;\r\n var oldY = this._y;\r\n var dx = x - oldX;\r\n var dy = y - oldY;\r\n this._x = x;\r\n this._y = y;\r\n this._opt.preventDefaultMouseMove && stop(e.event);\r\n trigger(this, 'pan', 'moveOnMouseMove', e, {\r\n dx: dx, dy: dy, oldX: oldX, oldY: oldY, newX: x, newY: y, isAvailableBehavior: null\r\n });\r\n };\r\n RoamController.prototype._mouseupHandler = function (e) {\r\n if (!isMiddleOrRightButtonOnMouseUpDown(e)) {\r\n this._dragging = false;\r\n }\r\n };\r\n RoamController.prototype._mousewheelHandler = function (e) {\r\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\r\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\r\n var wheelDelta = e.wheelDelta;\r\n var absWheelDeltaDelta = Math.abs(wheelDelta);\r\n var originX = e.offsetX;\r\n var originY = e.offsetY;\r\n if (wheelDelta === 0 || (!shouldZoom && !shouldMove)) {\r\n return;\r\n }\r\n if (shouldZoom) {\r\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\r\n var scale = wheelDelta > 0 ? factor : 1 / factor;\r\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\r\n scale: scale, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n if (shouldMove) {\r\n var absDelta = Math.abs(wheelDelta);\r\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\r\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\r\n scrollDelta: scrollDelta, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n };\r\n RoamController.prototype._pinchHandler = function (e) {\r\n if (isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\r\n checkPointerAndTrigger(this, 'zoom', null, e, {\r\n scale: scale, originX: e.pinchX, originY: e.pinchY, isAvailableBehavior: null\r\n });\r\n };\r\n return RoamController;\r\n }(Eventful));\r\n function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n if (controller.pointerChecker\r\n && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\r\n stop(e.event);\r\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\r\n }\r\n }\r\n function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\r\n controller.trigger(eventName, contollerEvent);\r\n }\r\n function isAvailableBehavior(behaviorToCheck, e, settings) {\r\n var setting = settings[behaviorToCheck];\r\n return !behaviorToCheck || (setting && (!isString(setting) || e.event[setting + 'Key']));\r\n }\n\n function updateViewOnPan(controllerHost, dx, dy) {\r\n var target = controllerHost.target;\r\n target.x += dx;\r\n target.y += dy;\r\n target.dirty();\r\n }\r\n function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\r\n var target = controllerHost.target;\r\n var zoomLimit = controllerHost.zoomLimit;\r\n var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\r\n newZoom *= zoomDelta;\r\n if (zoomLimit) {\r\n var zoomMin = zoomLimit.min || 0;\r\n var zoomMax = zoomLimit.max || Infinity;\r\n newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\r\n }\r\n var zoomScale = newZoom / controllerHost.zoom;\r\n controllerHost.zoom = newZoom;\r\n target.x -= (zoomX - target.x) * (zoomScale - 1);\r\n target.y -= (zoomY - target.y) * (zoomScale - 1);\r\n target.scaleX *= zoomScale;\r\n target.scaleY *= zoomScale;\r\n target.dirty();\r\n }\n\n var IRRELEVANT_EXCLUDES = { 'axisPointer': 1, 'tooltip': 1, 'brush': 1 };\r\n function onIrrelevantElement(e, api, targetCoordSysModel) {\r\n var model = api.getComponentByElement(e.topTarget);\r\n var coordSys = model && model.coordinateSystem;\r\n return model\r\n && model !== targetCoordSysModel\r\n && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType)\r\n && (coordSys && coordSys.model !== targetCoordSysModel);\r\n }\n\n function getFixedItemStyle(model) {\r\n var itemStyle = model.getItemStyle();\r\n var areaColor = model.get('areaColor');\r\n if (areaColor != null) {\r\n itemStyle.fill = areaColor;\r\n }\r\n return itemStyle;\r\n }\r\n var MapDraw = (function () {\r\n function MapDraw(api) {\r\n var group = new Group();\r\n this.uid = getUID('ec_map_draw');\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = { target: group };\r\n this.group = group;\r\n group.add(this._regionsGroup = new Group());\r\n group.add(this._backgroundGroup = new Group());\r\n }\r\n MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\r\n var isGeo = mapOrGeoModel.mainType === 'geo';\r\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\r\n isGeo && ecModel.eachComponent({ mainType: 'series', subType: 'map' }, function (mapSeries) {\r\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\r\n data = mapSeries.getData();\r\n }\r\n });\r\n var geo = mapOrGeoModel.coordinateSystem;\r\n this._updateBackground(geo);\r\n var regionsGroup = this._regionsGroup;\r\n var group = this.group;\r\n var transformInfo = geo.getTransformInfo();\r\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\r\n var targetScaleX;\r\n var targetScaleY;\r\n if (isFirstDraw) {\r\n group.transform = transformInfo.roamTransform;\r\n group.decomposeTransform();\r\n group.dirty();\r\n }\r\n else {\r\n var target = new Transformable();\r\n target.transform = transformInfo.roamTransform;\r\n target.decomposeTransform();\r\n var props = {\r\n scaleX: target.scaleX,\r\n scaleY: target.scaleY,\r\n x: target.x,\r\n y: target.y\r\n };\r\n targetScaleX = target.scaleX;\r\n targetScaleY = target.scaleY;\r\n updateProps(group, props, mapOrGeoModel);\r\n }\r\n regionsGroup.removeAll();\r\n var nameMap = createHashMap();\r\n var isVisualEncodedByVisualMap = data\r\n && data.getVisual('visualMeta')\r\n && data.getVisual('visualMeta').length > 0;\r\n each(geo.regions, function (region) {\r\n var regionGroup = nameMap.get(region.name)\r\n || nameMap.set(region.name, new Group());\r\n var compoundPath = new CompoundPath({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n paths: []\r\n }\r\n });\r\n regionGroup.add(compoundPath);\r\n var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\r\n var itemStyleModel = regionModel.getModel('itemStyle');\r\n var emphasisModel = regionModel.getModel('emphasis');\r\n var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\r\n var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\r\n var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\r\n var itemStyle = getFixedItemStyle(itemStyleModel);\r\n var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\r\n var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\r\n var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\r\n var dataIdx;\r\n if (data) {\r\n dataIdx = data.indexOfName(region.name);\r\n var style = data.getItemVisual(dataIdx, 'style');\r\n if (isVisualEncodedByVisualMap && style.fill) {\r\n itemStyle.fill = style.fill;\r\n }\r\n }\r\n var sx = transformInfo.rawScaleX;\r\n var sy = transformInfo.rawScaleY;\r\n var offsetX = transformInfo.rawX;\r\n var offsetY = transformInfo.rawY;\r\n var transformPoint = function (point) {\r\n return [\r\n point[0] * sx + offsetX,\r\n point[1] * sy + offsetY\r\n ];\r\n };\r\n each(region.geometries, function (geometry) {\r\n if (geometry.type !== 'polygon') {\r\n return;\r\n }\r\n var points = [];\r\n for (var i = 0; i < geometry.exterior.length; ++i) {\r\n points.push(transformPoint(geometry.exterior[i]));\r\n }\r\n compoundPath.shape.paths.push(new Polygon({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n points: points\r\n }\r\n }));\r\n for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\r\n var interior = geometry.interiors[i];\r\n var points_1 = [];\r\n for (var j = 0; j < interior.length; ++j) {\r\n points_1.push(transformPoint(interior[j]));\r\n }\r\n compoundPath.shape.paths.push(new Polygon({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n points: points_1\r\n }\r\n }));\r\n }\r\n });\r\n compoundPath.setStyle(itemStyle);\r\n compoundPath.style.strokeNoScale = true;\r\n compoundPath.culling = true;\r\n compoundPath.ensureState('emphasis').style = emphasisItemStyle;\r\n compoundPath.ensureState('blur').style = blurItemStyle;\r\n compoundPath.ensureState('select').style = selectItemStyle;\r\n var showLabel = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\r\n showLabel = true;\r\n break;\r\n }\r\n }\r\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\r\n var itemLayout = data && data.getItemLayout(dataIdx);\r\n if ((isGeo || isDataNaN && (showLabel))\r\n || (itemLayout && itemLayout.showLabel)) {\r\n var query = !isGeo ? dataIdx : region.name;\r\n var labelFetcher = void 0;\r\n if (!data || dataIdx >= 0) {\r\n labelFetcher = mapOrGeoModel;\r\n }\r\n var centerPt = transformPoint(region.center);\r\n var textEl = new ZRText({\r\n x: centerPt[0],\r\n y: centerPt[1],\r\n scaleX: 1 / group.scaleX,\r\n scaleY: 1 / group.scaleY,\r\n z2: 10,\r\n silent: true\r\n });\r\n setLabelStyle(textEl, getLabelStatesModels(regionModel), {\r\n labelFetcher: labelFetcher,\r\n labelDataIndex: query,\r\n defaultText: region.name\r\n }, { normal: {\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n } });\r\n compoundPath.setTextContent(textEl);\r\n compoundPath.setTextConfig({\r\n local: true\r\n });\r\n compoundPath.disableLabelAnimation = true;\r\n if (!isFirstDraw) {\r\n updateProps(textEl, {\r\n scaleX: 1 / targetScaleX,\r\n scaleY: 1 / targetScaleY\r\n }, mapOrGeoModel);\r\n }\r\n }\r\n if (data) {\r\n data.setItemGraphicEl(dataIdx, regionGroup);\r\n }\r\n else {\r\n var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\r\n getECData(compoundPath).eventData = {\r\n componentType: 'geo',\r\n componentIndex: mapOrGeoModel.componentIndex,\r\n geoIndex: mapOrGeoModel.componentIndex,\r\n name: region.name,\r\n region: (regionModel_1 && regionModel_1.option) || {}\r\n };\r\n }\r\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\r\n groupRegions.push(region);\r\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\r\n enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n regionsGroup.add(regionGroup);\r\n });\r\n this._updateController(mapOrGeoModel, ecModel, api);\r\n this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\r\n };\r\n MapDraw.prototype.remove = function () {\r\n this._regionsGroup.removeAll();\r\n this._backgroundGroup.removeAll();\r\n this._controller.dispose();\r\n this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\r\n this._mapName = null;\r\n this._controllerHost = null;\r\n };\r\n MapDraw.prototype._updateBackground = function (geo) {\r\n var mapName = geo.map;\r\n if (this._mapName !== mapName) {\r\n each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\r\n this._backgroundGroup.add(root);\r\n }, this);\r\n }\r\n this._mapName = mapName;\r\n };\r\n MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\r\n var geo = mapOrGeoModel.coordinateSystem;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\r\n controllerHost.zoom = geo.getZoom();\r\n controller.enable(mapOrGeoModel.get('roam') || false);\r\n var mainType = mapOrGeoModel.mainType;\r\n function makeActionBase() {\r\n var action = {\r\n type: 'geoRoam',\r\n componentType: mainType\r\n };\r\n action[mainType + 'Id'] = mapOrGeoModel.id;\r\n return action;\r\n }\r\n controller.off('pan').on('pan', function (e) {\r\n this._mouseDownFlag = false;\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction(extend(makeActionBase(), {\r\n dx: e.dx,\r\n dy: e.dy\r\n }));\r\n }, this);\r\n controller.off('zoom').on('zoom', function (e) {\r\n this._mouseDownFlag = false;\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction(extend(makeActionBase(), {\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n }));\r\n var group = this.group;\r\n this._regionsGroup.traverse(function (el) {\r\n var textContent = el.getTextContent();\r\n if (textContent) {\r\n textContent.scaleX = 1 / group.scaleX;\r\n textContent.scaleY = 1 / group.scaleY;\r\n textContent.markRedraw();\r\n }\r\n });\r\n }, this);\r\n controller.setPointerChecker(function (e, x, y) {\r\n return geo.getViewRectAfterRoam().contain(x, y)\r\n && !onIrrelevantElement(e, api, mapOrGeoModel);\r\n });\r\n };\r\n MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\r\n var mapDraw = this;\r\n regionsGroup.off('mousedown');\r\n if (mapOrGeoModel.get('selectedMode')) {\r\n regionsGroup.on('mousedown', function () {\r\n mapDraw._mouseDownFlag = true;\r\n });\r\n regionsGroup.on('click', function (e) {\r\n if (!mapDraw._mouseDownFlag) {\r\n return;\r\n }\r\n mapDraw._mouseDownFlag = false;\r\n });\r\n }\r\n };\r\n return MapDraw;\r\n }());\n\n var MapView = (function (_super) {\r\n __extends(MapView, _super);\r\n function MapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MapView.type;\r\n return _this;\r\n }\r\n MapView.prototype.render = function (mapModel, ecModel, api, payload) {\r\n if (payload && payload.type === 'mapToggleSelect'\r\n && payload.from === this.uid) {\r\n return;\r\n }\r\n var group = this.group;\r\n group.removeAll();\r\n if (mapModel.getHostGeoModel()) {\r\n return;\r\n }\r\n if (!(payload && payload.type === 'geoRoam'\r\n && payload.componentType === 'series'\r\n && payload.seriesId === mapModel.id)) {\r\n if (mapModel.needsDrawMap) {\r\n var mapDraw = this._mapDraw || new MapDraw(api);\r\n group.add(mapDraw.group);\r\n mapDraw.draw(mapModel, ecModel, api, this, payload);\r\n this._mapDraw = mapDraw;\r\n }\r\n else {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n }\r\n }\r\n else {\r\n var mapDraw = this._mapDraw;\r\n mapDraw && group.add(mapDraw.group);\r\n }\r\n mapModel.get('showLegendSymbol') && ecModel.getComponent('legend')\r\n && this._renderSymbols(mapModel, ecModel, api);\r\n };\r\n MapView.prototype.remove = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n this.group.removeAll();\r\n };\r\n MapView.prototype.dispose = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n };\r\n MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\r\n var originalData = mapModel.originalData;\r\n var group = this.group;\r\n originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\r\n if (isNaN(value)) {\r\n return;\r\n }\r\n var layout = originalData.getItemLayout(originalDataIndex);\r\n if (!layout || !layout.point) {\r\n return;\r\n }\r\n var point = layout.point;\r\n var offset = layout.offset;\r\n var circle = new Circle({\r\n style: {\r\n fill: mapModel.getData().getVisual('style').fill\r\n },\r\n shape: {\r\n cx: point[0] + offset * 9,\r\n cy: point[1],\r\n r: 3\r\n },\r\n silent: true,\r\n z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\r\n });\r\n if (!offset) {\r\n var fullData = mapModel.mainSeries.getData();\r\n var name_1 = originalData.getName(originalDataIndex);\r\n var fullIndex_1 = fullData.indexOfName(name_1);\r\n var itemModel = originalData.getItemModel(originalDataIndex);\r\n var labelModel = itemModel.getModel('label');\r\n var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\r\n setLabelStyle(circle, getLabelStatesModels(itemModel), {\r\n labelFetcher: {\r\n getFormattedLabel: function (idx, state) {\r\n return mapModel.getFormattedLabel(fullIndex_1, state);\r\n }\r\n }\r\n });\r\n circle.disableLabelAnimation = true;\r\n if (!labelModel.get('position')) {\r\n circle.setTextConfig({\r\n position: 'bottom'\r\n });\r\n }\r\n regionGroup.onHoverStateChange = function (toState) {\r\n circle.useState(toState);\r\n };\r\n }\r\n group.add(circle);\r\n });\r\n };\r\n MapView.type = 'map';\r\n return MapView;\r\n }(ChartView));\r\n ChartView.registerClass(MapView);\n\n function updateCenterAndZoom(view, payload, zoomLimit) {\r\n var previousZoom = view.getZoom();\r\n var center = view.getCenter();\r\n var zoom = payload.zoom;\r\n var point = view.dataToPoint(center);\r\n if (payload.dx != null && payload.dy != null) {\r\n point[0] -= payload.dx;\r\n point[1] -= payload.dy;\r\n view.setCenter(view.pointToData(point));\r\n }\r\n if (zoom != null) {\r\n if (zoomLimit) {\r\n var zoomMin = zoomLimit.min || 0;\r\n var zoomMax = zoomLimit.max || Infinity;\r\n zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\r\n }\r\n view.scaleX *= zoom;\r\n view.scaleY *= zoom;\r\n var fixX = (payload.originX - view.x) * (zoom - 1);\r\n var fixY = (payload.originY - view.y) * (zoom - 1);\r\n view.x -= fixX;\r\n view.y -= fixY;\r\n view.updateTransform();\r\n view.setCenter(view.pointToData(point));\r\n view.setZoom(zoom * previousZoom);\r\n }\r\n return {\r\n center: view.getCenter(),\r\n zoom: view.getZoom()\r\n };\r\n }\n\n registerAction({\r\n type: 'geoRoam',\r\n event: 'geoRoam',\r\n update: 'updateTransform'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n var geo = componentModel.coordinateSystem;\r\n if (geo.type !== 'geo') {\r\n return;\r\n }\r\n var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\r\n componentModel.setCenter\r\n && componentModel.setCenter(res.center);\r\n componentModel.setZoom\r\n && componentModel.setZoom(res.zoom);\r\n if (componentType === 'series') {\r\n each(componentModel.seriesGroup, function (seriesModel) {\r\n seriesModel.setCenter(res.center);\r\n seriesModel.setZoom(res.zoom);\r\n });\r\n }\r\n });\r\n });\n\n var v2ApplyTransform = applyTransform;\r\n var View = (function (_super) {\r\n __extends(View, _super);\r\n function View(name) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'view';\r\n _this.dimensions = ['x', 'y'];\r\n _this._roamTransformable = new Transformable();\r\n _this._rawTransformable = new Transformable();\r\n _this.name = name;\r\n return _this;\r\n }\r\n View.prototype.setBoundingRect = function (x, y, width, height) {\r\n this._rect = new BoundingRect(x, y, width, height);\r\n return this._rect;\r\n };\r\n View.prototype.getBoundingRect = function () {\r\n return this._rect;\r\n };\r\n View.prototype.setViewRect = function (x, y, width, height) {\r\n this.transformTo(x, y, width, height);\r\n this._viewRect = new BoundingRect(x, y, width, height);\r\n };\r\n View.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var rawTransform = this._rawTransformable;\r\n rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\r\n rawTransform.decomposeTransform();\r\n this._updateTransform();\r\n };\r\n View.prototype.setCenter = function (centerCoord) {\r\n if (!centerCoord) {\r\n return;\r\n }\r\n this._center = centerCoord;\r\n this._updateCenterAndZoom();\r\n };\r\n View.prototype.setZoom = function (zoom) {\r\n zoom = zoom || 1;\r\n var zoomLimit = this.zoomLimit;\r\n if (zoomLimit) {\r\n if (zoomLimit.max != null) {\r\n zoom = Math.min(zoomLimit.max, zoom);\r\n }\r\n if (zoomLimit.min != null) {\r\n zoom = Math.max(zoomLimit.min, zoom);\r\n }\r\n }\r\n this._zoom = zoom;\r\n this._updateCenterAndZoom();\r\n };\r\n View.prototype.getDefaultCenter = function () {\r\n var rawRect = this.getBoundingRect();\r\n var cx = rawRect.x + rawRect.width / 2;\r\n var cy = rawRect.y + rawRect.height / 2;\r\n return [cx, cy];\r\n };\r\n View.prototype.getCenter = function () {\r\n return this._center || this.getDefaultCenter();\r\n };\r\n View.prototype.getZoom = function () {\r\n return this._zoom || 1;\r\n };\r\n View.prototype.getRoamTransform = function () {\r\n return this._roamTransformable.getLocalTransform();\r\n };\r\n View.prototype._updateCenterAndZoom = function () {\r\n var rawTransformMatrix = this._rawTransformable.getLocalTransform();\r\n var roamTransform = this._roamTransformable;\r\n var defaultCenter = this.getDefaultCenter();\r\n var center = this.getCenter();\r\n var zoom = this.getZoom();\r\n center = applyTransform([], center, rawTransformMatrix);\r\n defaultCenter = applyTransform([], defaultCenter, rawTransformMatrix);\r\n roamTransform.originX = center[0];\r\n roamTransform.originY = center[1];\r\n roamTransform.x = defaultCenter[0] - center[0];\r\n roamTransform.y = defaultCenter[1] - center[1];\r\n roamTransform.scaleX = roamTransform.scaleY = zoom;\r\n this._updateTransform();\r\n };\r\n View.prototype._updateTransform = function () {\r\n var roamTransformable = this._roamTransformable;\r\n var rawTransformable = this._rawTransformable;\r\n rawTransformable.parent = roamTransformable;\r\n roamTransformable.updateTransform();\r\n rawTransformable.updateTransform();\r\n copy$1(this.transform || (this.transform = []), rawTransformable.transform || create$1());\r\n this._rawTransform = rawTransformable.getLocalTransform();\r\n this.invTransform = this.invTransform || [];\r\n invert(this.invTransform, this.transform);\r\n this.decomposeTransform();\r\n };\r\n View.prototype.getTransformInfo = function () {\r\n var roamTransform = this._roamTransformable.transform;\r\n var rawTransformable = this._rawTransformable;\r\n return {\r\n roamTransform: roamTransform ? slice(roamTransform) : create$1(),\r\n rawScaleX: rawTransformable.scaleX,\r\n rawScaleY: rawTransformable.scaleY,\r\n rawX: rawTransformable.x,\r\n rawY: rawTransformable.y\r\n };\r\n };\r\n View.prototype.getViewRect = function () {\r\n return this._viewRect;\r\n };\r\n View.prototype.getViewRectAfterRoam = function () {\r\n var rect = this.getBoundingRect().clone();\r\n rect.applyTransform(this.transform);\r\n return rect;\r\n };\r\n View.prototype.dataToPoint = function (data, noRoam, out) {\r\n var transform = noRoam ? this._rawTransform : this.transform;\r\n out = out || [];\r\n return transform\r\n ? v2ApplyTransform(out, data, transform)\r\n : copy(out, data);\r\n };\r\n View.prototype.pointToData = function (point) {\r\n var invTransform = this.invTransform;\r\n return invTransform\r\n ? v2ApplyTransform([], point, invTransform)\r\n : [point[0], point[1]];\r\n };\r\n View.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n View.prototype.containPoint = function (point) {\r\n return this.getViewRectAfterRoam().contain(point[0], point[1]);\r\n };\r\n View.dimensions = ['x', 'y'];\r\n return View;\r\n }(Transformable));\r\n function getCoordSys(finder) {\r\n var seriesModel = finder.seriesModel;\r\n return seriesModel ? seriesModel.coordinateSystem : null;\r\n }\n\n var Geo = (function (_super) {\r\n __extends(Geo, _super);\r\n function Geo(name, map, nameMap, invertLongitute) {\r\n var _this = _super.call(this, name) || this;\r\n _this.dimensions = ['lng', 'lat'];\r\n _this.type = 'geo';\r\n _this.map = map;\r\n var source = geoSourceManager.load(map, nameMap);\r\n _this._nameCoordMap = source.nameCoordMap;\r\n _this._regionsMap = source.regionsMap;\r\n _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\r\n _this.regions = source.regions;\r\n _this._rect = source.boundingRect;\r\n return _this;\r\n }\r\n Geo.prototype.containCoord = function (coord) {\r\n var regions = this.regions;\r\n for (var i = 0; i < regions.length; i++) {\r\n if (regions[i].contain(coord)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Geo.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var invertLongitute = this._invertLongitute;\r\n rect = rect.clone();\r\n if (invertLongitute) {\r\n rect.y = -rect.y - rect.height;\r\n }\r\n var rawTransformable = this._rawTransformable;\r\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\r\n rawTransformable.decomposeTransform();\r\n if (invertLongitute) {\r\n rawTransformable.scaleY = -rawTransformable.scaleY;\r\n }\r\n rawTransformable.updateTransform();\r\n this._updateTransform();\r\n };\r\n Geo.prototype.getRegion = function (name) {\r\n return this._regionsMap.get(name);\r\n };\r\n Geo.prototype.getRegionByCoord = function (coord) {\r\n var regions = this.regions;\r\n for (var i = 0; i < regions.length; i++) {\r\n if (regions[i].contain(coord)) {\r\n return regions[i];\r\n }\r\n }\r\n };\r\n Geo.prototype.addGeoCoord = function (name, geoCoord) {\r\n this._nameCoordMap.set(name, geoCoord);\r\n };\r\n Geo.prototype.getGeoCoord = function (name) {\r\n return this._nameCoordMap.get(name);\r\n };\r\n Geo.prototype.getBoundingRect = function () {\r\n return this._rect;\r\n };\r\n Geo.prototype.dataToPoint = function (data, noRoam, out) {\r\n if (typeof data === 'string') {\r\n data = this.getGeoCoord(data);\r\n }\r\n if (data) {\r\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\r\n }\r\n };\r\n Geo.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$1(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$1(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n return Geo;\r\n }(View));\r\n mixin(Geo, View);\r\n function getCoordSys$1(finder) {\r\n var geoModel = finder.geoModel;\r\n var seriesModel = finder.seriesModel;\r\n return geoModel\r\n ? geoModel.coordinateSystem\r\n : seriesModel\r\n ? (seriesModel.coordinateSystem\r\n || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem)\r\n : null;\r\n }\n\n function resizeGeo(geoModel, api) {\r\n var boundingCoords = geoModel.get('boundingCoords');\r\n if (boundingCoords != null) {\r\n var leftTop = boundingCoords[0];\r\n var rightBottom = boundingCoords[1];\r\n if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\r\n if (__DEV__) {\r\n console.error('Invalid boundingCoords');\r\n }\r\n }\r\n else {\r\n this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\r\n }\r\n }\r\n var rect = this.getBoundingRect();\r\n var center = geoModel.get('layoutCenter');\r\n var size = geoModel.get('layoutSize');\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n var aspect = rect.width / rect.height * this.aspectScale;\r\n var useCenterAndSize = false;\r\n if (center && size) {\r\n center = [\r\n parsePercent$2(center[0], viewWidth),\r\n parsePercent$2(center[1], viewHeight)\r\n ];\r\n size = parsePercent$2(size, Math.min(viewWidth, viewHeight));\r\n if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\r\n useCenterAndSize = true;\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\r\n }\r\n }\r\n }\r\n var viewRect;\r\n if (useCenterAndSize) {\r\n viewRect = {};\r\n if (aspect > 1) {\r\n viewRect.width = size;\r\n viewRect.height = size / aspect;\r\n }\r\n else {\r\n viewRect.height = size;\r\n viewRect.width = size * aspect;\r\n }\r\n viewRect.y = center[1] - viewRect.height / 2;\r\n viewRect.x = center[0] - viewRect.width / 2;\r\n }\r\n else {\r\n var boxLayoutOption = geoModel.getBoxLayoutParams();\r\n boxLayoutOption.aspect = aspect;\r\n viewRect = getLayoutRect(boxLayoutOption, {\r\n width: viewWidth,\r\n height: viewHeight\r\n });\r\n }\r\n this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n this.setCenter(geoModel.get('center'));\r\n this.setZoom(geoModel.get('zoom'));\r\n }\r\n function setGeoCoords(geo, model) {\r\n each(model.get('geoCoord'), function (geoCoord, name) {\r\n geo.addGeoCoord(name, geoCoord);\r\n });\r\n }\r\n var GeoCreator = (function () {\r\n function GeoCreator() {\r\n this.dimensions = Geo.prototype.dimensions;\r\n }\r\n GeoCreator.prototype.create = function (ecModel, api) {\r\n var geoList = [];\r\n ecModel.eachComponent('geo', function (geoModel, idx) {\r\n var name = geoModel.get('map');\r\n var aspectScale = geoModel.get('aspectScale');\r\n var invertLongitute = true;\r\n var mapRecords = mapDataStorage.retrieveMap(name);\r\n if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\r\n aspectScale == null && (aspectScale = 1);\r\n invertLongitute = false;\r\n }\r\n else {\r\n aspectScale == null && (aspectScale = 0.75);\r\n }\r\n var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\r\n geo.aspectScale = aspectScale;\r\n geo.zoomLimit = geoModel.get('scaleLimit');\r\n geoList.push(geo);\r\n geoModel.coordinateSystem = geo;\r\n geo.model = geoModel;\r\n geo.resize = resizeGeo;\r\n geo.resize(geoModel, api);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.get('coordinateSystem');\r\n if (coordSys === 'geo') {\r\n var geoIndex = seriesModel.get('geoIndex') || 0;\r\n seriesModel.coordinateSystem = geoList[geoIndex];\r\n }\r\n });\r\n var mapModelGroupBySeries = {};\r\n ecModel.eachSeriesByType('map', function (seriesModel) {\r\n if (!seriesModel.getHostGeoModel()) {\r\n var mapType = seriesModel.getMapType();\r\n mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\r\n mapModelGroupBySeries[mapType].push(seriesModel);\r\n }\r\n });\r\n each(mapModelGroupBySeries, function (mapSeries, mapType) {\r\n var nameMapList = map(mapSeries, function (singleMapSeries) {\r\n return singleMapSeries.get('nameMap');\r\n });\r\n var geo = new Geo(mapType, mapType, mergeAll(nameMapList));\r\n geo.zoomLimit = retrieve.apply(null, map(mapSeries, function (singleMapSeries) {\r\n return singleMapSeries.get('scaleLimit');\r\n }));\r\n geoList.push(geo);\r\n geo.resize = resizeGeo;\r\n geo.aspectScale = mapSeries[0].get('aspectScale');\r\n geo.resize(mapSeries[0], api);\r\n each(mapSeries, function (singleMapSeries) {\r\n singleMapSeries.coordinateSystem = geo;\r\n setGeoCoords(geo, singleMapSeries);\r\n });\r\n });\r\n return geoList;\r\n };\r\n GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\r\n var regionsArr = (originRegionArr || []).slice();\r\n var dataNameMap = createHashMap();\r\n for (var i = 0; i < regionsArr.length; i++) {\r\n dataNameMap.set(regionsArr[i].name, regionsArr[i]);\r\n }\r\n var source = geoSourceManager.load(mapName, nameMap);\r\n each(source.regions, function (region) {\r\n var name = region.name;\r\n !dataNameMap.get(name) && regionsArr.push({ name: name });\r\n });\r\n return regionsArr;\r\n };\r\n return GeoCreator;\r\n }());\r\n var geoCreator = new GeoCreator();\r\n registerCoordinateSystem('geo', geoCreator);\n\n function mapSymbolLayout (ecModel) {\r\n var processedMapType = {};\r\n ecModel.eachSeriesByType('map', function (mapSeries) {\r\n var mapType = mapSeries.getMapType();\r\n if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\r\n return;\r\n }\r\n var mapSymbolOffsets = {};\r\n each(mapSeries.seriesGroup, function (subMapSeries) {\r\n var geo = subMapSeries.coordinateSystem;\r\n var data = subMapSeries.originalData;\r\n if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\r\n data.each(data.mapDimension('value'), function (value, idx) {\r\n var name = data.getName(idx);\r\n var region = geo.getRegion(name);\r\n if (!region || isNaN(value)) {\r\n return;\r\n }\r\n var offset = mapSymbolOffsets[name] || 0;\r\n var point = geo.dataToPoint(region.center);\r\n mapSymbolOffsets[name] = offset + 1;\r\n data.setItemLayout(idx, {\r\n point: point,\r\n offset: offset\r\n });\r\n });\r\n }\r\n });\r\n var data = mapSeries.getData();\r\n data.each(function (idx) {\r\n var name = data.getName(idx);\r\n var layout = data.getItemLayout(idx) || {};\r\n layout.showLabel = !mapSymbolOffsets[name];\r\n data.setItemLayout(idx, layout);\r\n });\r\n processedMapType[mapType] = true;\r\n });\r\n }\n\n function dataStatistics(datas, statisticType) {\r\n var dataNameMap = {};\r\n each(datas, function (data) {\r\n data.each(data.mapDimension('value'), function (value, idx) {\r\n var mapKey = 'ec-' + data.getName(idx);\r\n dataNameMap[mapKey] = dataNameMap[mapKey] || [];\r\n if (!isNaN(value)) {\r\n dataNameMap[mapKey].push(value);\r\n }\r\n });\r\n });\r\n return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\r\n var mapKey = 'ec-' + datas[0].getName(idx);\r\n var sum = 0;\r\n var min = Infinity;\r\n var max = -Infinity;\r\n var len = dataNameMap[mapKey].length;\r\n for (var i = 0; i < len; i++) {\r\n min = Math.min(min, dataNameMap[mapKey][i]);\r\n max = Math.max(max, dataNameMap[mapKey][i]);\r\n sum += dataNameMap[mapKey][i];\r\n }\r\n var result;\r\n if (statisticType === 'min') {\r\n result = min;\r\n }\r\n else if (statisticType === 'max') {\r\n result = max;\r\n }\r\n else if (statisticType === 'average') {\r\n result = sum / len;\r\n }\r\n else {\r\n result = sum;\r\n }\r\n return len === 0 ? NaN : result;\r\n });\r\n }\r\n function mapDataStatistic (ecModel) {\r\n var seriesGroups = {};\r\n ecModel.eachSeriesByType('map', function (seriesModel) {\r\n var hostGeoModel = seriesModel.getHostGeoModel();\r\n var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\r\n (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\r\n });\r\n each(seriesGroups, function (seriesList, key) {\r\n var data = dataStatistics(map(seriesList, function (seriesModel) {\r\n return seriesModel.getData();\r\n }), seriesList[0].get('mapValueCalculation'));\r\n for (var i = 0; i < seriesList.length; i++) {\r\n seriesList[i].originalData = seriesList[i].getData();\r\n }\r\n for (var i = 0; i < seriesList.length; i++) {\r\n seriesList[i].seriesGroup = seriesList;\r\n seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\r\n seriesList[i].setData(data.cloneShallow());\r\n seriesList[i].mainSeries = seriesList[0];\r\n }\r\n });\r\n }\n\n registerLayout(mapSymbolLayout);\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\r\n createLegacyDataSelectAction('map', registerAction);\n\n var inner$9 = makeInner();\r\n function linkList(opt) {\r\n var mainData = opt.mainData;\r\n var datas = opt.datas;\r\n if (!datas) {\r\n datas = { main: mainData };\r\n opt.datasAttr = { main: 'data' };\r\n }\r\n opt.datas = opt.mainData = null;\r\n linkAll(mainData, datas, opt);\r\n each(datas, function (data) {\r\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(transferInjection, opt));\r\n });\r\n });\r\n mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\r\n each(mainData.CHANGABLE_METHODS, function (methodName) {\r\n mainData.wrapMethod(methodName, curry(changeInjection, opt));\r\n });\r\n assert(datas[mainData.dataType] === mainData);\r\n }\r\n function transferInjection(opt, res) {\r\n if (isMainData(this)) {\r\n var datas = extend({}, inner$9(this).datas);\r\n datas[this.dataType] = res;\r\n linkAll(res, datas, opt);\r\n }\r\n else {\r\n linkSingle(res, this.dataType, inner$9(this).mainData, opt);\r\n }\r\n return res;\r\n }\r\n function changeInjection(opt, res) {\r\n opt.struct && opt.struct.update();\r\n return res;\r\n }\r\n function cloneShallowInjection(opt, res) {\r\n each(inner$9(res).datas, function (data, dataType) {\r\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\r\n });\r\n return res;\r\n }\r\n function getLinkedData(dataType) {\r\n var mainData = inner$9(this).mainData;\r\n return (dataType == null || mainData == null)\r\n ? mainData\r\n : inner$9(mainData).datas[dataType];\r\n }\r\n function getLinkedDataAll() {\r\n var mainData = inner$9(this).mainData;\r\n return (mainData == null)\r\n ? [{ data: mainData }]\r\n : map(keys(inner$9(mainData).datas), function (type) {\r\n return {\r\n type: type,\r\n data: inner$9(mainData).datas[type]\r\n };\r\n });\r\n }\r\n function isMainData(data) {\r\n return inner$9(data).mainData === data;\r\n }\r\n function linkAll(mainData, datas, opt) {\r\n inner$9(mainData).datas = {};\r\n each(datas, function (data, dataType) {\r\n linkSingle(data, dataType, mainData, opt);\r\n });\r\n }\r\n function linkSingle(data, dataType, mainData, opt) {\r\n inner$9(mainData).datas[dataType] = data;\r\n inner$9(data).mainData = mainData;\r\n data.dataType = dataType;\r\n if (opt.struct) {\r\n data[opt.structAttr] = opt.struct;\r\n opt.struct[opt.datasAttr[dataType]] = data;\r\n }\r\n data.getLinkedData = getLinkedData;\r\n data.getLinkedDataAll = getLinkedDataAll;\r\n }\n\n var TreeNode = (function () {\r\n function TreeNode(name, hostTree) {\r\n this.depth = 0;\r\n this.height = 0;\r\n this.dataIndex = -1;\r\n this.children = [];\r\n this.viewChildren = [];\r\n this.isExpand = false;\r\n this.name = name || '';\r\n this.hostTree = hostTree;\r\n }\r\n TreeNode.prototype.isRemoved = function () {\r\n return this.dataIndex < 0;\r\n };\r\n TreeNode.prototype.eachNode = function (options, cb, context) {\r\n if (typeof options === 'function') {\r\n context = cb;\r\n cb = options;\r\n options = null;\r\n }\r\n options = options || {};\r\n if (isString(options)) {\r\n options = { order: options };\r\n }\r\n var order = options.order || 'preorder';\r\n var children = this[options.attr || 'children'];\r\n var suppressVisitSub;\r\n order === 'preorder' && (suppressVisitSub = cb.call(context, this));\r\n for (var i = 0; !suppressVisitSub && i < children.length; i++) {\r\n children[i].eachNode(options, cb, context);\r\n }\r\n order === 'postorder' && cb.call(context, this);\r\n };\r\n TreeNode.prototype.updateDepthAndHeight = function (depth) {\r\n var height = 0;\r\n this.depth = depth;\r\n for (var i = 0; i < this.children.length; i++) {\r\n var child = this.children[i];\r\n child.updateDepthAndHeight(depth + 1);\r\n if (child.height > height) {\r\n height = child.height;\r\n }\r\n }\r\n this.height = height + 1;\r\n };\r\n TreeNode.prototype.getNodeById = function (id) {\r\n if (this.getId() === id) {\r\n return this;\r\n }\r\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\r\n var res = children[i].getNodeById(id);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n };\r\n TreeNode.prototype.contains = function (node) {\r\n if (node === this) {\r\n return true;\r\n }\r\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\r\n var res = children[i].contains(node);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n };\r\n TreeNode.prototype.getAncestors = function (includeSelf) {\r\n var ancestors = [];\r\n var node = includeSelf ? this : this.parentNode;\r\n while (node) {\r\n ancestors.push(node);\r\n node = node.parentNode;\r\n }\r\n ancestors.reverse();\r\n return ancestors;\r\n };\r\n TreeNode.prototype.getAncestorsIndices = function () {\r\n var indices = [];\r\n var currNode = this;\r\n while (currNode) {\r\n indices.push(currNode.dataIndex);\r\n currNode = currNode.parentNode;\r\n }\r\n indices.reverse();\r\n return indices;\r\n };\r\n TreeNode.prototype.getDescendantIndices = function () {\r\n var indices = [];\r\n this.eachNode(function (childNode) {\r\n indices.push(childNode.dataIndex);\r\n });\r\n return indices;\r\n };\r\n TreeNode.prototype.getValue = function (dimension) {\r\n var data = this.hostTree.data;\r\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\r\n };\r\n TreeNode.prototype.setLayout = function (layout, merge) {\r\n this.dataIndex >= 0\r\n && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\r\n };\r\n TreeNode.prototype.getLayout = function () {\r\n return this.hostTree.data.getItemLayout(this.dataIndex);\r\n };\r\n TreeNode.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var hostTree = this.hostTree;\r\n var itemModel = hostTree.data.getItemModel(this.dataIndex);\r\n var levelModel = this.getLevelModel();\r\n if (levelModel) {\r\n return itemModel.getModel(path, levelModel.getModel(path));\r\n }\r\n else {\r\n return itemModel.getModel(path);\r\n }\r\n };\r\n TreeNode.prototype.getLevelModel = function () {\r\n return (this.hostTree.levelModels || [])[this.depth];\r\n };\r\n TreeNode.prototype.setVisual = function (key, value) {\r\n this.dataIndex >= 0\r\n && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\r\n };\r\n TreeNode.prototype.getVisual = function (key) {\r\n return this.hostTree.data.getItemVisual(this.dataIndex, key);\r\n };\r\n TreeNode.prototype.getRawIndex = function () {\r\n return this.hostTree.data.getRawIndex(this.dataIndex);\r\n };\r\n TreeNode.prototype.getId = function () {\r\n return this.hostTree.data.getId(this.dataIndex);\r\n };\r\n TreeNode.prototype.isAncestorOf = function (node) {\r\n var parent = node.parentNode;\r\n while (parent) {\r\n if (parent === this) {\r\n return true;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return false;\r\n };\r\n TreeNode.prototype.isDescendantOf = function (node) {\r\n return node !== this && node.isAncestorOf(this);\r\n };\r\n return TreeNode;\r\n }());\r\n var Tree = (function () {\r\n function Tree(hostModel, levelOptions) {\r\n this.type = 'tree';\r\n this._nodes = [];\r\n this.hostModel = hostModel;\r\n this.levelModels = map(levelOptions || [], function (levelDefine) {\r\n return new Model(levelDefine, hostModel, hostModel.ecModel);\r\n });\r\n }\r\n Tree.prototype.eachNode = function (options, cb, context) {\r\n this.root.eachNode(options, cb, context);\r\n };\r\n Tree.prototype.getNodeByDataIndex = function (dataIndex) {\r\n var rawIndex = this.data.getRawIndex(dataIndex);\r\n return this._nodes[rawIndex];\r\n };\r\n Tree.prototype.getNodeById = function (name) {\r\n return this.root.getNodeById(name);\r\n };\r\n Tree.prototype.update = function () {\r\n var data = this.data;\r\n var nodes = this._nodes;\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n nodes[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n nodes[data.getRawIndex(i)].dataIndex = i;\r\n }\r\n };\r\n Tree.prototype.clearLayouts = function () {\r\n this.data.clearItemLayouts();\r\n };\r\n Tree.createTree = function (dataRoot, hostModel, treeOptions, beforeLink) {\r\n var tree = new Tree(hostModel, treeOptions && treeOptions.levels);\r\n var listData = [];\r\n var dimMax = 1;\r\n buildHierarchy(dataRoot);\r\n function buildHierarchy(dataNode, parentNode) {\r\n var value = dataNode.value;\r\n dimMax = Math.max(dimMax, isArray(value) ? value.length : 1);\r\n listData.push(dataNode);\r\n var node = new TreeNode(dataNode.name, tree);\r\n parentNode\r\n ? addChild(node, parentNode)\r\n : (tree.root = node);\r\n tree._nodes.push(node);\r\n var children = dataNode.children;\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n buildHierarchy(children[i], node);\r\n }\r\n }\r\n }\r\n tree.root.updateDepthAndHeight(0);\r\n var dimensionsInfo = createDimensions(listData, {\r\n coordDimensions: ['value'],\r\n dimensionsCount: dimMax\r\n });\r\n var list = new List(dimensionsInfo, hostModel);\r\n list.initData(listData);\r\n beforeLink && beforeLink(list);\r\n linkList({\r\n mainData: list,\r\n struct: tree,\r\n structAttr: 'tree'\r\n });\r\n tree.update();\r\n return tree;\r\n };\r\n return Tree;\r\n }());\r\n function addChild(child, node) {\r\n var children = node.children;\r\n if (child.parentNode === node) {\r\n return;\r\n }\r\n children.push(child);\r\n child.parentNode = node;\r\n }\n\n var TreeSeriesModel = (function (_super) {\r\n __extends(TreeSeriesModel, _super);\r\n function TreeSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.hasSymbolVisual = true;\r\n _this.ignoreStyleOnData = true;\r\n return _this;\r\n }\r\n TreeSeriesModel.prototype.getInitialData = function (option) {\r\n var root = {\r\n name: option.name,\r\n children: option.data\r\n };\r\n var leaves = option.leaves || {};\r\n var leavesModel = new Model(leaves, this, this.ecModel);\r\n var tree = Tree.createTree(root, this, {}, beforeLink);\r\n function beforeLink(nodeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var node = tree.getNodeByDataIndex(idx);\r\n if (!node.children.length || !node.isExpand) {\r\n model.parentModel = leavesModel;\r\n }\r\n return model;\r\n });\r\n }\r\n var treeDepth = 0;\r\n tree.eachNode('preorder', function (node) {\r\n if (node.depth > treeDepth) {\r\n treeDepth = node.depth;\r\n }\r\n });\r\n var expandAndCollapse = option.expandAndCollapse;\r\n var expandTreeDepth = (expandAndCollapse && option.initialTreeDepth >= 0)\r\n ? option.initialTreeDepth : treeDepth;\r\n tree.root.eachNode('preorder', function (node) {\r\n var item = node.hostTree.data.getRawDataItem(node.dataIndex);\r\n node.isExpand = (item && item.collapsed != null)\r\n ? !item.collapsed\r\n : node.depth <= expandTreeDepth;\r\n });\r\n return tree.data;\r\n };\r\n TreeSeriesModel.prototype.getOrient = function () {\r\n var orient = this.get('orient');\r\n if (orient === 'horizontal') {\r\n orient = 'LR';\r\n }\r\n else if (orient === 'vertical') {\r\n orient = 'TB';\r\n }\r\n return orient;\r\n };\r\n TreeSeriesModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n TreeSeriesModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var tree = this.getData().tree;\r\n var realRoot = tree.root.children[0];\r\n var node = tree.getNodeByDataIndex(dataIndex);\r\n var value = node.getValue();\r\n var name = node.name;\r\n while (node && (node !== realRoot)) {\r\n name = node.parentNode.name + '.' + name;\r\n node = node.parentNode;\r\n }\r\n if (renderMode === 'richText') {\r\n return encodeHTML(name) + ': ' + ((isNaN(value) || value == null) ? '' : value);\r\n }\r\n return '
'\r\n + concatTooltipHtml(name, (isNaN(value) || value == null) ? '' : value)\r\n + '
';\r\n };\r\n TreeSeriesModel.type = 'series.tree';\r\n TreeSeriesModel.layoutMode = 'box';\r\n TreeSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n left: '12%',\r\n top: '12%',\r\n right: '12%',\r\n bottom: '12%',\r\n layout: 'orthogonal',\r\n edgeShape: 'curve',\r\n edgeForkPosition: '50%',\r\n roam: false,\r\n nodeScaleRatio: 0.4,\r\n center: null,\r\n zoom: 1,\r\n orient: 'LR',\r\n symbol: 'emptyCircle',\r\n symbolSize: 7,\r\n expandAndCollapse: true,\r\n initialTreeDepth: 2,\r\n lineStyle: {\r\n color: '#ccc',\r\n width: 1.5,\r\n curveness: 0.5\r\n },\r\n itemStyle: {\r\n color: 'lightsteelblue',\r\n borderColor: '#c23531',\r\n borderWidth: 1.5\r\n },\r\n label: {\r\n show: true\r\n },\r\n animationEasing: 'linear',\r\n animationDuration: 700,\r\n animationDurationUpdate: 500\r\n };\r\n return TreeSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(TreeSeriesModel);\n\n function init$2(inRoot) {\r\n var root = inRoot;\r\n root.hierNode = {\r\n defaultAncestor: null,\r\n ancestor: root,\r\n prelim: 0,\r\n modifier: 0,\r\n change: 0,\r\n shift: 0,\r\n i: 0,\r\n thread: null\r\n };\r\n var nodes = [root];\r\n var node;\r\n var children;\r\n while (node = nodes.pop()) {\r\n children = node.children;\r\n if (node.isExpand && children.length) {\r\n var n = children.length;\r\n for (var i = n - 1; i >= 0; i--) {\r\n var child = children[i];\r\n child.hierNode = {\r\n defaultAncestor: null,\r\n ancestor: child,\r\n prelim: 0,\r\n modifier: 0,\r\n change: 0,\r\n shift: 0,\r\n i: i,\r\n thread: null\r\n };\r\n nodes.push(child);\r\n }\r\n }\r\n }\r\n }\r\n function firstWalk(node, separation) {\r\n var children = node.isExpand ? node.children : [];\r\n var siblings = node.parentNode.children;\r\n var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\r\n if (children.length) {\r\n executeShifts(node);\r\n var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\r\n if (subtreeW) {\r\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\r\n node.hierNode.modifier = node.hierNode.prelim - midPoint;\r\n }\r\n else {\r\n node.hierNode.prelim = midPoint;\r\n }\r\n }\r\n else if (subtreeW) {\r\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\r\n }\r\n node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\r\n }\r\n function secondWalk(node) {\r\n var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\r\n node.setLayout({ x: nodeX }, true);\r\n node.hierNode.modifier += node.parentNode.hierNode.modifier;\r\n }\r\n function separation(cb) {\r\n return arguments.length ? cb : defaultSeparation;\r\n }\r\n function radialCoordinate(rad, r) {\r\n rad -= Math.PI / 2;\r\n return {\r\n x: r * Math.cos(rad),\r\n y: r * Math.sin(rad)\r\n };\r\n }\r\n function getViewRect$1(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function executeShifts(node) {\r\n var children = node.children;\r\n var n = children.length;\r\n var shift = 0;\r\n var change = 0;\r\n while (--n >= 0) {\r\n var child = children[n];\r\n child.hierNode.prelim += shift;\r\n child.hierNode.modifier += shift;\r\n change += child.hierNode.change;\r\n shift += child.hierNode.shift + change;\r\n }\r\n }\r\n function apportion(subtreeV, subtreeW, ancestor, separation) {\r\n if (subtreeW) {\r\n var nodeOutRight = subtreeV;\r\n var nodeInRight = subtreeV;\r\n var nodeOutLeft = nodeInRight.parentNode.children[0];\r\n var nodeInLeft = subtreeW;\r\n var sumOutRight = nodeOutRight.hierNode.modifier;\r\n var sumInRight = nodeInRight.hierNode.modifier;\r\n var sumOutLeft = nodeOutLeft.hierNode.modifier;\r\n var sumInLeft = nodeInLeft.hierNode.modifier;\r\n while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\r\n nodeOutRight = nextRight(nodeOutRight);\r\n nodeOutLeft = nextLeft(nodeOutLeft);\r\n nodeOutRight.hierNode.ancestor = subtreeV;\r\n var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim\r\n - sumInRight + separation(nodeInLeft, nodeInRight);\r\n if (shift > 0) {\r\n moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\r\n sumInRight += shift;\r\n sumOutRight += shift;\r\n }\r\n sumInLeft += nodeInLeft.hierNode.modifier;\r\n sumInRight += nodeInRight.hierNode.modifier;\r\n sumOutRight += nodeOutRight.hierNode.modifier;\r\n sumOutLeft += nodeOutLeft.hierNode.modifier;\r\n }\r\n if (nodeInLeft && !nextRight(nodeOutRight)) {\r\n nodeOutRight.hierNode.thread = nodeInLeft;\r\n nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\r\n }\r\n if (nodeInRight && !nextLeft(nodeOutLeft)) {\r\n nodeOutLeft.hierNode.thread = nodeInRight;\r\n nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\r\n ancestor = subtreeV;\r\n }\r\n }\r\n return ancestor;\r\n }\r\n function nextRight(node) {\r\n var children = node.children;\r\n return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\r\n }\r\n function nextLeft(node) {\r\n var children = node.children;\r\n return children.length && node.isExpand ? children[0] : node.hierNode.thread;\r\n }\r\n function nextAncestor(nodeInLeft, node, ancestor) {\r\n return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode\r\n ? nodeInLeft.hierNode.ancestor : ancestor;\r\n }\r\n function moveSubtree(wl, wr, shift) {\r\n var change = shift / (wr.hierNode.i - wl.hierNode.i);\r\n wr.hierNode.change -= change;\r\n wr.hierNode.shift += shift;\r\n wr.hierNode.modifier += shift;\r\n wr.hierNode.prelim += shift;\r\n wl.hierNode.change += change;\r\n }\r\n function defaultSeparation(node1, node2) {\r\n return node1.parentNode === node2.parentNode ? 1 : 2;\r\n }\n\n var TreeEdgeShape = (function () {\r\n function TreeEdgeShape() {\r\n this.parentPoint = [];\r\n this.childPoints = [];\r\n }\r\n return TreeEdgeShape;\r\n }());\r\n var TreePath = (function (_super) {\r\n __extends(TreePath, _super);\r\n function TreePath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n TreePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n TreePath.prototype.getDefaultShape = function () {\r\n return new TreeEdgeShape();\r\n };\r\n TreePath.prototype.buildPath = function (ctx, shape) {\r\n var childPoints = shape.childPoints;\r\n var childLen = childPoints.length;\r\n var parentPoint = shape.parentPoint;\r\n var firstChildPos = childPoints[0];\r\n var lastChildPos = childPoints[childLen - 1];\r\n if (childLen === 1) {\r\n ctx.moveTo(parentPoint[0], parentPoint[1]);\r\n ctx.lineTo(firstChildPos[0], firstChildPos[1]);\r\n return;\r\n }\r\n var orient = shape.orient;\r\n var forkDim = (orient === 'TB' || orient === 'BT') ? 0 : 1;\r\n var otherDim = 1 - forkDim;\r\n var forkPosition = parsePercent$2(shape.forkPosition, 1);\r\n var tmpPoint = [];\r\n tmpPoint[forkDim] = parentPoint[forkDim];\r\n tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\r\n ctx.moveTo(parentPoint[0], parentPoint[1]);\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n ctx.moveTo(firstChildPos[0], firstChildPos[1]);\r\n tmpPoint[forkDim] = firstChildPos[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n tmpPoint[forkDim] = lastChildPos[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n ctx.lineTo(lastChildPos[0], lastChildPos[1]);\r\n for (var i = 1; i < childLen - 1; i++) {\r\n var point = childPoints[i];\r\n ctx.moveTo(point[0], point[1]);\r\n tmpPoint[forkDim] = point[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n }\r\n };\r\n return TreePath;\r\n }(Path));\r\n var TreeView = (function (_super) {\r\n __extends(TreeView, _super);\r\n function TreeView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreeView.type;\r\n _this._mainGroup = new Group();\r\n return _this;\r\n }\r\n TreeView.prototype.init = function (ecModel, api) {\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = {\r\n target: this.group\r\n };\r\n this.group.add(this._mainGroup);\r\n };\r\n TreeView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var group = this._mainGroup;\r\n var layout = seriesModel.get('layout');\r\n if (layout === 'radial') {\r\n group.x = layoutInfo.x + layoutInfo.width / 2;\r\n group.y = layoutInfo.y + layoutInfo.height / 2;\r\n }\r\n else {\r\n group.x = layoutInfo.x;\r\n group.y = layoutInfo.y;\r\n }\r\n this._updateViewCoordSys(seriesModel);\r\n this._updateController(seriesModel, ecModel, api);\r\n var oldData = this._data;\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (symbolNeedsDraw$1(data, newIdx)) {\r\n updateNode(data, newIdx, null, group, seriesModel);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (!symbolNeedsDraw$1(data, newIdx)) {\r\n symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\r\n return;\r\n }\r\n updateNode(data, newIdx, symbolEl, group, seriesModel);\r\n })\r\n .remove(function (oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (symbolEl) {\r\n removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\r\n }\r\n })\r\n .execute();\r\n this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\r\n this._updateNodeAndLinkScale(seriesModel);\r\n if (seriesModel.get('expandAndCollapse') === true) {\r\n data.eachItemGraphicEl(function (el, dataIndex) {\r\n el.off('click').on('click', function () {\r\n api.dispatchAction({\r\n type: 'treeExpandAndCollapse',\r\n seriesId: seriesModel.id,\r\n dataIndex: dataIndex\r\n });\r\n });\r\n });\r\n }\r\n this._data = data;\r\n };\r\n TreeView.prototype._updateViewCoordSys = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var points = [];\r\n data.each(function (idx) {\r\n var layout = data.getItemLayout(idx);\r\n if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\r\n points.push([+layout.x, +layout.y]);\r\n }\r\n });\r\n var min = [];\r\n var max = [];\r\n fromPoints(points, min, max);\r\n var oldMin = this._min;\r\n var oldMax = this._max;\r\n if (max[0] - min[0] === 0) {\r\n min[0] = oldMin ? oldMin[0] : min[0] - 1;\r\n max[0] = oldMax ? oldMax[0] : max[0] + 1;\r\n }\r\n if (max[1] - min[1] === 0) {\r\n min[1] = oldMin ? oldMin[1] : min[1] - 1;\r\n max[1] = oldMax ? oldMax[1] : max[1] + 1;\r\n }\r\n var viewCoordSys = seriesModel.coordinateSystem = new View();\r\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\r\n viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\r\n viewCoordSys.setCenter(seriesModel.get('center'));\r\n viewCoordSys.setZoom(seriesModel.get('zoom'));\r\n this.group.attr({\r\n x: viewCoordSys.x,\r\n y: viewCoordSys.y,\r\n scaleX: viewCoordSys.scaleX,\r\n scaleY: viewCoordSys.scaleY\r\n });\r\n this._min = min;\r\n this._max = max;\r\n };\r\n TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n var group = this.group;\r\n controller.setPointerChecker(function (e, x, y) {\r\n var rect = group.getBoundingRect();\r\n rect.applyTransform(group.transform);\r\n return rect.contain(x, y)\r\n && !onIrrelevantElement(e, api, seriesModel);\r\n });\r\n controller.enable(seriesModel.get('roam'));\r\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\r\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\r\n controller\r\n .off('pan')\r\n .off('zoom')\r\n .on('pan', function (e) {\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'treeRoam',\r\n dx: e.dx,\r\n dy: e.dy\r\n });\r\n })\r\n .on('zoom', function (e) {\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'treeRoam',\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n });\r\n _this._updateNodeAndLinkScale(seriesModel);\r\n api.updateLabelLayout();\r\n });\r\n };\r\n TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var nodeScale = this._getNodeGlobalScale(seriesModel);\r\n data.eachItemGraphicEl(function (el, idx) {\r\n el.setSymbolScale(nodeScale);\r\n });\r\n };\r\n TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type !== 'view') {\r\n return 1;\r\n }\r\n var nodeScaleRatio = this._nodeScaleRatio;\r\n var groupZoom = coordSys.scaleX || 1;\r\n var roamZoom = coordSys.getZoom();\r\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\r\n return nodeScale / groupZoom;\r\n };\r\n TreeView.prototype.dispose = function () {\r\n this._controller && this._controller.dispose();\r\n this._controllerHost = null;\r\n };\r\n TreeView.prototype.remove = function () {\r\n this._mainGroup.removeAll();\r\n this._data = null;\r\n };\r\n TreeView.type = 'tree';\r\n return TreeView;\r\n }(ChartView));\r\n function symbolNeedsDraw$1(data, dataIndex) {\r\n var layout = data.getItemLayout(dataIndex);\r\n return layout\r\n && !isNaN(layout.x) && !isNaN(layout.y)\r\n && data.getItemVisual(dataIndex, 'symbol') !== 'none';\r\n }\r\n function updateNode(data, dataIndex, symbolEl, group, seriesModel) {\r\n var isInit = !symbolEl;\r\n var node = data.tree.getNodeByDataIndex(dataIndex);\r\n var itemModel = node.getModel();\r\n var visualColor = node.getVisual('style').fill;\r\n var symbolInnerColor = node.isExpand === false && node.children.length !== 0\r\n ? visualColor : '#fff';\r\n var virtualRoot = data.tree.root;\r\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\r\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\r\n var sourceLayout = source.getLayout();\r\n var sourceOldLayout = sourceSymbolEl\r\n ? {\r\n x: sourceSymbolEl.x,\r\n y: sourceSymbolEl.y,\r\n rawX: sourceSymbolEl.__radialOldRawX,\r\n rawY: sourceSymbolEl.__radialOldRawY\r\n }\r\n : sourceLayout;\r\n var targetLayout = node.getLayout();\r\n if (isInit) {\r\n symbolEl = new Symbol(data, dataIndex, null, {\r\n symbolInnerColor: symbolInnerColor,\r\n useNameLabel: true\r\n });\r\n symbolEl.x = sourceOldLayout.x;\r\n symbolEl.y = sourceOldLayout.y;\r\n }\r\n else {\r\n symbolEl.updateData(data, dataIndex, null, {\r\n symbolInnerColor: symbolInnerColor,\r\n useNameLabel: true\r\n });\r\n }\r\n symbolEl.__radialOldRawX = symbolEl.__radialRawX;\r\n symbolEl.__radialOldRawY = symbolEl.__radialRawY;\r\n symbolEl.__radialRawX = targetLayout.rawX;\r\n symbolEl.__radialRawY = targetLayout.rawY;\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(dataIndex, symbolEl);\r\n updateProps(symbolEl, {\r\n x: targetLayout.x,\r\n y: targetLayout.y\r\n }, seriesModel);\r\n var symbolPath = symbolEl.getSymbolPath();\r\n if (seriesModel.get('layout') === 'radial') {\r\n var realRoot = virtualRoot.children[0];\r\n var rootLayout = realRoot.getLayout();\r\n var length_1 = realRoot.children.length;\r\n var rad = void 0;\r\n var isLeft = void 0;\r\n if (targetLayout.x === rootLayout.x && node.isExpand === true) {\r\n var center = {\r\n x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\r\n y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\r\n };\r\n rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n isLeft = center.x < rootLayout.x;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n else {\r\n rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n if (node.children.length === 0 || (node.children.length !== 0 && node.isExpand === false)) {\r\n isLeft = targetLayout.x < rootLayout.x;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n else {\r\n isLeft = targetLayout.x > rootLayout.x;\r\n if (!isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n }\r\n var textPosition = isLeft ? 'left' : 'right';\r\n var normalLabelModel = itemModel.getModel('label');\r\n var rotate = normalLabelModel.get('rotate');\r\n var labelRotateRadian = rotate * (Math.PI / 180);\r\n var textContent = symbolPath.getTextContent();\r\n if (textContent) {\r\n symbolPath.setTextConfig({\r\n position: normalLabelModel.get('position') || textPosition,\r\n rotation: rotate == null ? -rad : labelRotateRadian,\r\n origin: 'center'\r\n });\r\n textContent.setStyle('verticalAlign', 'middle');\r\n }\r\n }\r\n var focus = itemModel.get(['emphasis', 'focus']);\r\n var focusDataIndices = focus === 'ancestor'\r\n ? node.getAncestorsIndices()\r\n : focus === 'descendant' ? node.getDescendantIndices() : null;\r\n if (focusDataIndices) {\r\n getECData(symbolEl).focus = focusDataIndices;\r\n }\r\n drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\r\n if (symbolEl.__edge) {\r\n symbolEl.onHoverStateChange = function (toState) {\r\n if (toState !== 'blur') {\r\n var parentEl = node.parentNode\r\n && data.getItemGraphicEl(node.parentNode.dataIndex);\r\n if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\r\n setStatesFlag(symbolEl.__edge, toState);\r\n }\r\n }\r\n };\r\n }\r\n }\r\n function drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\r\n var itemModel = node.getModel();\r\n var edgeShape = seriesModel.get('edgeShape');\r\n var layout = seriesModel.get('layout');\r\n var orient = seriesModel.getOrient();\r\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\r\n var edgeForkPosition = seriesModel.get('edgeForkPosition');\r\n var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\r\n var edge = symbolEl.__edge;\r\n if (edgeShape === 'curve') {\r\n if (node.parentNode && node.parentNode !== virtualRoot) {\r\n if (!edge) {\r\n edge = symbolEl.__edge = new BezierCurve({\r\n shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\r\n });\r\n }\r\n updateProps(edge, {\r\n shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\r\n }, seriesModel);\r\n }\r\n }\r\n else if (edgeShape === 'polyline') {\r\n if (layout === 'orthogonal') {\r\n if (node !== virtualRoot && node.children && (node.children.length !== 0) && (node.isExpand === true)) {\r\n var children = node.children;\r\n var childPoints = [];\r\n for (var i = 0; i < children.length; i++) {\r\n var childLayout = children[i].getLayout();\r\n childPoints.push([childLayout.x, childLayout.y]);\r\n }\r\n if (!edge) {\r\n edge = symbolEl.__edge = new TreePath({\r\n shape: {\r\n parentPoint: [targetLayout.x, targetLayout.y],\r\n childPoints: [[targetLayout.x, targetLayout.y]],\r\n orient: orient,\r\n forkPosition: edgeForkPosition\r\n }\r\n });\r\n }\r\n updateProps(edge, {\r\n shape: {\r\n parentPoint: [targetLayout.x, targetLayout.y],\r\n childPoints: childPoints\r\n }\r\n }, seriesModel);\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n throw new Error('The polyline edgeShape can only be used in orthogonal layout');\r\n }\r\n }\r\n }\r\n if (edge) {\r\n edge.useStyle(defaults({\r\n strokeNoScale: true, fill: null\r\n }, lineStyle));\r\n setStatesStylesFromModel(edge, itemModel, 'lineStyle');\r\n setDefaultStateProxy(edge);\r\n group.add(edge);\r\n }\r\n }\r\n function removeNode(data, dataIndex, symbolEl, group, seriesModel) {\r\n var node = data.tree.getNodeByDataIndex(dataIndex);\r\n var virtualRoot = data.tree.root;\r\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\r\n var sourceLayout;\r\n while (sourceLayout = source.getLayout(), sourceLayout == null) {\r\n source = source.parentNode === virtualRoot ? source : source.parentNode || source;\r\n }\r\n updateProps(symbolEl, {\r\n x: sourceLayout.x + 1,\r\n y: sourceLayout.y + 1\r\n }, seriesModel, function () {\r\n group.remove(symbolEl);\r\n data.setItemGraphicEl(dataIndex, null);\r\n });\r\n symbolEl.fadeOut(null, { keepLabel: true });\r\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\r\n var sourceEdge = sourceSymbolEl.__edge;\r\n var edge = symbolEl.__edge\r\n || ((source.isExpand === false || source.children.length === 1) ? sourceEdge : undefined);\r\n var edgeShape = seriesModel.get('edgeShape');\r\n var layoutOpt = seriesModel.get('layout');\r\n var orient = seriesModel.get('orient');\r\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\r\n if (edge) {\r\n if (edgeShape === 'curve') {\r\n updateProps(edge, {\r\n shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, function () {\r\n group.remove(edge);\r\n });\r\n }\r\n else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\r\n updateProps(edge, {\r\n shape: {\r\n parentPoint: [sourceLayout.x, sourceLayout.y],\r\n childPoints: [[sourceLayout.x, sourceLayout.y]]\r\n },\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, function () {\r\n group.remove(edge);\r\n });\r\n }\r\n }\r\n }\r\n function getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\r\n var cpx1;\r\n var cpy1;\r\n var cpx2;\r\n var cpy2;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n if (layoutOpt === 'radial') {\r\n x1 = sourceLayout.rawX;\r\n y1 = sourceLayout.rawY;\r\n x2 = targetLayout.rawX;\r\n y2 = targetLayout.rawY;\r\n var radialCoor1 = radialCoordinate(x1, y1);\r\n var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\r\n var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\r\n var radialCoor4 = radialCoordinate(x2, y2);\r\n return {\r\n x1: radialCoor1.x || 0,\r\n y1: radialCoor1.y || 0,\r\n x2: radialCoor4.x || 0,\r\n y2: radialCoor4.y || 0,\r\n cpx1: radialCoor2.x || 0,\r\n cpy1: radialCoor2.y || 0,\r\n cpx2: radialCoor3.x || 0,\r\n cpy2: radialCoor3.y || 0\r\n };\r\n }\r\n else {\r\n x1 = sourceLayout.x;\r\n y1 = sourceLayout.y;\r\n x2 = targetLayout.x;\r\n y2 = targetLayout.y;\r\n if (orient === 'LR' || orient === 'RL') {\r\n cpx1 = x1 + (x2 - x1) * curvature;\r\n cpy1 = y1;\r\n cpx2 = x2 + (x1 - x2) * curvature;\r\n cpy2 = y2;\r\n }\r\n if (orient === 'TB' || orient === 'BT') {\r\n cpx1 = x1;\r\n cpy1 = y1 + (y2 - y1) * curvature;\r\n cpx2 = x2;\r\n cpy2 = y2 + (y1 - y2) * curvature;\r\n }\r\n }\r\n return {\r\n x1: x1,\r\n y1: y1,\r\n x2: x2,\r\n y2: y2,\r\n cpx1: cpx1,\r\n cpy1: cpy1,\r\n cpx2: cpx2,\r\n cpy2: cpy2\r\n };\r\n }\r\n ChartView.registerClass(TreeView);\n\n registerAction({\r\n type: 'treeExpandAndCollapse',\r\n event: 'treeExpandAndCollapse',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'tree', query: payload\r\n }, function (seriesModel) {\r\n var dataIndex = payload.dataIndex;\r\n var tree = seriesModel.getData().tree;\r\n var node = tree.getNodeByDataIndex(dataIndex);\r\n node.isExpand = !node.isExpand;\r\n });\r\n });\r\n registerAction({\r\n type: 'treeRoam',\r\n event: 'treeRoam',\r\n update: 'none'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'tree', query: payload\r\n }, function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var res = updateCenterAndZoom(coordSys, payload);\r\n seriesModel.setCenter\r\n && seriesModel.setCenter(res.center);\r\n seriesModel.setZoom\r\n && seriesModel.setZoom(res.zoom);\r\n });\r\n });\n\n function eachAfter(root, callback, separation) {\r\n var nodes = [root];\r\n var next = [];\r\n var node;\r\n while (node = nodes.pop()) {\r\n next.push(node);\r\n if (node.isExpand) {\r\n var children = node.children;\r\n if (children.length) {\r\n for (var i = 0; i < children.length; i++) {\r\n nodes.push(children[i]);\r\n }\r\n }\r\n }\r\n }\r\n while (node = next.pop()) {\r\n callback(node, separation);\r\n }\r\n }\r\n function eachBefore(root, callback) {\r\n var nodes = [root];\r\n var node;\r\n while (node = nodes.pop()) {\r\n callback(node);\r\n if (node.isExpand) {\r\n var children = node.children;\r\n if (children.length) {\r\n for (var i = children.length - 1; i >= 0; i--) {\r\n nodes.push(children[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\n\n function treeLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('tree', function (seriesModel) {\r\n commonLayout(seriesModel, api);\r\n });\r\n }\r\n function commonLayout(seriesModel, api) {\r\n var layoutInfo = getViewRect$1(seriesModel, api);\r\n seriesModel.layoutInfo = layoutInfo;\r\n var layout = seriesModel.get('layout');\r\n var width = 0;\r\n var height = 0;\r\n var separation$1 = null;\r\n if (layout === 'radial') {\r\n width = 2 * Math.PI;\r\n height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\r\n separation$1 = separation(function (node1, node2) {\r\n return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\r\n });\r\n }\r\n else {\r\n width = layoutInfo.width;\r\n height = layoutInfo.height;\r\n separation$1 = separation();\r\n }\r\n var virtualRoot = seriesModel.getData().tree.root;\r\n var realRoot = virtualRoot.children[0];\r\n if (realRoot) {\r\n init$2(virtualRoot);\r\n eachAfter(realRoot, firstWalk, separation$1);\r\n virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\r\n eachBefore(realRoot, secondWalk);\r\n var left_1 = realRoot;\r\n var right_1 = realRoot;\r\n var bottom_1 = realRoot;\r\n eachBefore(realRoot, function (node) {\r\n var x = node.getLayout().x;\r\n if (x < left_1.getLayout().x) {\r\n left_1 = node;\r\n }\r\n if (x > right_1.getLayout().x) {\r\n right_1 = node;\r\n }\r\n if (node.depth > bottom_1.depth) {\r\n bottom_1 = node;\r\n }\r\n });\r\n var delta = left_1 === right_1 ? 1 : separation$1(left_1, right_1) / 2;\r\n var tx_1 = delta - left_1.getLayout().x;\r\n var kx_1 = 0;\r\n var ky_1 = 0;\r\n var coorX_1 = 0;\r\n var coorY_1 = 0;\r\n if (layout === 'radial') {\r\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\r\n ky_1 = height / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\r\n coorY_1 = (node.depth - 1) * ky_1;\r\n var finalCoor = radialCoordinate(coorX_1, coorY_1);\r\n node.setLayout({ x: finalCoor.x, y: finalCoor.y, rawX: coorX_1, rawY: coorY_1 }, true);\r\n });\r\n }\r\n else {\r\n var orient_1 = seriesModel.getOrient();\r\n if (orient_1 === 'RL' || orient_1 === 'LR') {\r\n ky_1 = height / (right_1.getLayout().x + delta + tx_1);\r\n kx_1 = width / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorY_1 = (node.getLayout().x + tx_1) * ky_1;\r\n coorX_1 = orient_1 === 'LR'\r\n ? (node.depth - 1) * kx_1\r\n : width - (node.depth - 1) * kx_1;\r\n node.setLayout({ x: coorX_1, y: coorY_1 }, true);\r\n });\r\n }\r\n else if (orient_1 === 'TB' || orient_1 === 'BT') {\r\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\r\n ky_1 = height / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\r\n coorY_1 = orient_1 === 'TB'\r\n ? (node.depth - 1) * ky_1\r\n : height - (node.depth - 1) * ky_1;\r\n node.setLayout({ x: coorX_1, y: coorY_1 }, true);\r\n });\r\n }\r\n }\r\n }\r\n }\n\n function treeVisual (ecModel) {\r\n ecModel.eachSeriesByType('tree', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var tree = data.tree;\r\n tree.eachNode(function (node) {\r\n var model = node.getModel();\r\n var style = model.getModel('itemStyle').getItemStyle();\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n extend(existsStyle, style);\r\n });\r\n });\r\n }\n\n registerLayout(treeLayout);\r\n registerVisual(treeVisual);\n\n function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\r\n if (payload && indexOf(validPayloadTypes, payload.type) >= 0) {\r\n var root = seriesModel.getData().tree.root;\r\n var targetNode = payload.targetNode;\r\n if (typeof targetNode === 'string') {\r\n targetNode = root.getNodeById(targetNode);\r\n }\r\n if (targetNode && root.contains(targetNode)) {\r\n return {\r\n node: targetNode\r\n };\r\n }\r\n var targetNodeId = payload.targetNodeId;\r\n if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\r\n return {\r\n node: targetNode\r\n };\r\n }\r\n }\r\n }\r\n function getPathToRoot(node) {\r\n var path = [];\r\n while (node) {\r\n node = node.parentNode;\r\n node && path.push(node);\r\n }\r\n return path.reverse();\r\n }\r\n function aboveViewRoot(viewRoot, node) {\r\n var viewPath = getPathToRoot(viewRoot);\r\n return indexOf(viewPath, node) >= 0;\r\n }\r\n function wrapTreePathInfo(node, seriesModel) {\r\n var treePathInfo = [];\r\n while (node) {\r\n var nodeDataIndex = node.dataIndex;\r\n treePathInfo.push({\r\n name: node.name,\r\n dataIndex: nodeDataIndex,\r\n value: seriesModel.getRawValue(nodeDataIndex)\r\n });\r\n node = node.parentNode;\r\n }\r\n treePathInfo.reverse();\r\n return treePathInfo;\r\n }\n\n var TreemapSeriesModel = (function (_super) {\r\n __extends(TreemapSeriesModel, _super);\r\n function TreemapSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreemapSeriesModel.type;\r\n _this.preventUsingHoverLayer = true;\r\n return _this;\r\n }\r\n TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var root = {\r\n name: option.name,\r\n children: option.data\r\n };\r\n completeTreeValue(root);\r\n var levels = option.levels || [];\r\n levels = option.levels = setDefault(levels, ecModel);\r\n var levelModels = map(levels || [], function (levelDefine) {\r\n return new Model(levelDefine, this, ecModel);\r\n }, this);\r\n var tree = Tree.createTree(root, this, null, beforeLink);\r\n function beforeLink(nodeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var node = tree.getNodeByDataIndex(idx);\r\n var levelModel = levelModels[node.depth];\r\n levelModel && (model.parentModel = levelModel);\r\n return model;\r\n });\r\n }\r\n return tree.data;\r\n };\r\n TreemapSeriesModel.prototype.optionUpdated = function () {\r\n this.resetViewRoot();\r\n };\r\n TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var formattedValue = isArray(value)\r\n ? addCommas(value[0]) : addCommas(value);\r\n var name = data.getName(dataIndex);\r\n if (renderMode === 'richText') {\r\n return encodeHTML(name) + ': ' + formattedValue;\r\n }\r\n return '
'\r\n + concatTooltipHtml(name, formattedValue)\r\n + '
';\r\n };\r\n TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var params = _super.prototype.getDataParams.apply(this, arguments);\r\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\r\n params.treePathInfo = wrapTreePathInfo(node, this);\r\n return params;\r\n };\r\n TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\r\n this.layoutInfo = this.layoutInfo || {};\r\n extend(this.layoutInfo, layoutInfo);\r\n };\r\n TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\r\n var idIndexMap = this._idIndexMap;\r\n if (!idIndexMap) {\r\n idIndexMap = this._idIndexMap = createHashMap();\r\n this._idIndexMapCount = 0;\r\n }\r\n var index = idIndexMap.get(id);\r\n if (index == null) {\r\n idIndexMap.set(id, index = this._idIndexMapCount++);\r\n }\r\n return index;\r\n };\r\n TreemapSeriesModel.prototype.getViewRoot = function () {\r\n return this._viewRoot;\r\n };\r\n TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\r\n viewRoot\r\n ? (this._viewRoot = viewRoot)\r\n : (viewRoot = this._viewRoot);\r\n var root = this.getRawData().tree.root;\r\n if (!viewRoot\r\n || (viewRoot !== root && !root.contains(viewRoot))) {\r\n this._viewRoot = root;\r\n }\r\n };\r\n TreemapSeriesModel.type = 'series.treemap';\r\n TreemapSeriesModel.layoutMode = 'box';\r\n TreemapSeriesModel.defaultOption = {\r\n progressive: 0,\r\n left: 'center',\r\n top: 'middle',\r\n width: '80%',\r\n height: '80%',\r\n sort: true,\r\n clipWindow: 'origin',\r\n squareRatio: 0.5 * (1 + Math.sqrt(5)),\r\n leafDepth: null,\r\n drillDownIcon: '▶',\r\n zoomToNodeRatio: 0.32 * 0.32,\r\n roam: true,\r\n nodeClick: 'zoomToNode',\r\n animation: true,\r\n animationDurationUpdate: 900,\r\n animationEasing: 'quinticInOut',\r\n breadcrumb: {\r\n show: true,\r\n height: 22,\r\n left: 'center',\r\n top: 'bottom',\r\n emptyItemWidth: 25,\r\n itemStyle: {\r\n color: 'rgba(0,0,0,0.7)',\r\n textStyle: {\r\n color: '#fff'\r\n }\r\n }\r\n },\r\n label: {\r\n show: true,\r\n distance: 0,\r\n padding: 5,\r\n position: 'inside',\r\n color: '#fff',\r\n overflow: 'truncate'\r\n },\r\n upperLabel: {\r\n show: false,\r\n position: [0, '50%'],\r\n height: 20,\r\n overflow: 'truncate',\r\n verticalAlign: 'middle'\r\n },\r\n itemStyle: {\r\n color: null,\r\n colorAlpha: null,\r\n colorSaturation: null,\r\n borderWidth: 0,\r\n gapWidth: 0,\r\n borderColor: '#fff',\r\n borderColorSaturation: null\r\n },\r\n emphasis: {\r\n upperLabel: {\r\n show: true,\r\n position: [0, '50%'],\r\n ellipsis: true,\r\n verticalAlign: 'middle'\r\n }\r\n },\r\n visualDimension: 0,\r\n visualMin: null,\r\n visualMax: null,\r\n color: [],\r\n colorAlpha: null,\r\n colorSaturation: null,\r\n colorMappingBy: 'index',\r\n visibleMin: 10,\r\n childrenVisibleMin: null,\r\n levels: []\r\n };\r\n return TreemapSeriesModel;\r\n }(SeriesModel));\r\n function completeTreeValue(dataNode) {\r\n var sum = 0;\r\n each(dataNode.children, function (child) {\r\n completeTreeValue(child);\r\n var childValue = child.value;\r\n isArray(childValue) && (childValue = childValue[0]);\r\n sum += childValue;\r\n });\r\n var thisValue = dataNode.value;\r\n if (isArray(thisValue)) {\r\n thisValue = thisValue[0];\r\n }\r\n if (thisValue == null || isNaN(thisValue)) {\r\n thisValue = sum;\r\n }\r\n if (thisValue < 0) {\r\n thisValue = 0;\r\n }\r\n isArray(dataNode.value)\r\n ? (dataNode.value[0] = thisValue)\r\n : (dataNode.value = thisValue);\r\n }\r\n function setDefault(levels, ecModel) {\r\n var globalColorList = normalizeToArray(ecModel.get('color'));\r\n if (!globalColorList) {\r\n return;\r\n }\r\n levels = levels || [];\r\n var hasColorDefine;\r\n each(levels, function (levelDefine) {\r\n var model = new Model(levelDefine);\r\n var modelColor = model.get('color');\r\n if (model.get(['itemStyle', 'color'])\r\n || (modelColor && modelColor !== 'none')) {\r\n hasColorDefine = true;\r\n }\r\n });\r\n if (!hasColorDefine) {\r\n var level0 = levels[0] || (levels[0] = {});\r\n level0.color = globalColorList.slice();\r\n }\r\n return levels;\r\n }\r\n SeriesModel.registerClass(TreemapSeriesModel);\n\n var TEXT_PADDING = 8;\r\n var ITEM_GAP = 8;\r\n var ARRAY_LENGTH = 5;\r\n var Breadcrumb = (function () {\r\n function Breadcrumb(containerGroup) {\r\n this.group = new Group();\r\n containerGroup.add(this.group);\r\n }\r\n Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\r\n var model = seriesModel.getModel('breadcrumb');\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n if (!model.get('show') || !targetNode) {\r\n return;\r\n }\r\n var normalStyleModel = model.getModel('itemStyle');\r\n var textStyleModel = normalStyleModel.getModel('textStyle');\r\n var layoutParam = {\r\n pos: {\r\n left: model.get('left'),\r\n right: model.get('right'),\r\n top: model.get('top'),\r\n bottom: model.get('bottom')\r\n },\r\n box: {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n },\r\n emptyItemWidth: model.get('emptyItemWidth'),\r\n totalWidth: 0,\r\n renderList: []\r\n };\r\n this._prepare(targetNode, layoutParam, textStyleModel);\r\n this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\r\n positionElement(thisGroup, layoutParam.pos, layoutParam.box);\r\n };\r\n Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\r\n for (var node = targetNode; node; node = node.parentNode) {\r\n var text = node.getModel().get('name');\r\n var textRect = textStyleModel.getTextRect(text);\r\n var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\r\n layoutParam.totalWidth += itemWidth + ITEM_GAP;\r\n layoutParam.renderList.push({\r\n node: node,\r\n text: text,\r\n width: itemWidth\r\n });\r\n }\r\n };\r\n Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\r\n var lastX = 0;\r\n var emptyItemWidth = layoutParam.emptyItemWidth;\r\n var height = seriesModel.get(['breadcrumb', 'height']);\r\n var availableSize = getAvailableSize(layoutParam.pos, layoutParam.box);\r\n var totalWidth = layoutParam.totalWidth;\r\n var renderList = layoutParam.renderList;\r\n for (var i = renderList.length - 1; i >= 0; i--) {\r\n var item = renderList[i];\r\n var itemNode = item.node;\r\n var itemWidth = item.width;\r\n var text = item.text;\r\n if (totalWidth > availableSize.width) {\r\n totalWidth -= itemWidth - emptyItemWidth;\r\n itemWidth = emptyItemWidth;\r\n text = null;\r\n }\r\n var el = new Polygon({\r\n shape: {\r\n points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\r\n },\r\n style: defaults(normalStyleModel.getItemStyle(), {\r\n lineJoin: 'bevel'\r\n }),\r\n textContent: new ZRText({\r\n style: {\r\n text: text,\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n }\r\n }),\r\n textConfig: {\r\n position: 'inside'\r\n },\r\n z: 10,\r\n onclick: curry(onSelect, itemNode)\r\n });\r\n el.disableLabelAnimation = true;\r\n this.group.add(el);\r\n packEventData(el, seriesModel, itemNode);\r\n lastX += itemWidth + ITEM_GAP;\r\n }\r\n };\r\n Breadcrumb.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n return Breadcrumb;\r\n }());\r\n function makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\r\n var points = [\r\n [head ? x : x - ARRAY_LENGTH, y],\r\n [x + itemWidth, y],\r\n [x + itemWidth, y + itemHeight],\r\n [head ? x : x - ARRAY_LENGTH, y + itemHeight]\r\n ];\r\n !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\r\n !head && points.push([x, y + itemHeight / 2]);\r\n return points;\r\n }\r\n function packEventData(el, seriesModel, itemNode) {\r\n getECData(el).eventData = {\r\n componentType: 'series',\r\n componentSubType: 'treemap',\r\n componentIndex: seriesModel.componentIndex,\r\n seriesIndex: seriesModel.componentIndex,\r\n seriesName: seriesModel.name,\r\n seriesType: 'treemap',\r\n selfType: 'breadcrumb',\r\n nodeData: {\r\n dataIndex: itemNode && itemNode.dataIndex,\r\n name: itemNode && itemNode.name\r\n },\r\n treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\r\n };\r\n }\n\n function createWrap() {\r\n var storage = [];\r\n var elExistsMap = {};\r\n var doneCallback;\r\n return {\r\n add: function (el, target, time, delay, easing) {\r\n if (isString(delay)) {\r\n easing = delay;\r\n delay = 0;\r\n }\r\n if (elExistsMap[el.id]) {\r\n return false;\r\n }\r\n elExistsMap[el.id] = 1;\r\n storage.push({ el: el, target: target, time: time, delay: delay, easing: easing });\r\n return true;\r\n },\r\n done: function (callback) {\r\n doneCallback = callback;\r\n return this;\r\n },\r\n start: function () {\r\n var count = storage.length;\r\n for (var i = 0, len = storage.length; i < len; i++) {\r\n var item = storage[i];\r\n item.el.animateTo(item.target, {\r\n duration: item.time,\r\n delay: item.delay,\r\n easing: item.easing,\r\n setToFinal: true,\r\n done: done\r\n });\r\n }\r\n return this;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n storage.length = 0;\r\n elExistsMap = {};\r\n doneCallback && doneCallback();\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var Group$1 = Group;\r\n var Rect$1 = Rect;\r\n var DRAG_THRESHOLD = 3;\r\n var PATH_LABEL_NOAMAL = 'label';\r\n var PATH_UPPERLABEL_NORMAL = 'upperLabel';\r\n var Z_BASE = 10;\r\n var Z_BG = 1;\r\n var Z_CONTENT = 2;\r\n var getStateItemStyle = makeStyleMapper([\r\n ['fill', 'color'],\r\n ['stroke', 'strokeColor'],\r\n ['lineWidth', 'strokeWidth'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ]);\r\n var getItemStyleNormal = function (model) {\r\n var itemStyle = getStateItemStyle(model);\r\n itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\r\n return itemStyle;\r\n };\r\n var inner$a = makeInner();\r\n var TreemapView = (function (_super) {\r\n __extends(TreemapView, _super);\r\n function TreemapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreemapView.type;\r\n _this._state = 'ready';\r\n _this._storage = createStorage();\r\n return _this;\r\n }\r\n TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var models = ecModel.findComponents({\r\n mainType: 'series', subType: 'treemap', query: payload\r\n });\r\n if (indexOf(models, seriesModel) < 0) {\r\n return;\r\n }\r\n this.seriesModel = seriesModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, seriesModel);\r\n var payloadType = payload && payload.type;\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var isInit = !this._oldTree;\r\n var thisStorage = this._storage;\r\n var reRoot = (payloadType === 'treemapRootToNode' && targetInfo && thisStorage)\r\n ? {\r\n rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\r\n direction: payload.direction\r\n }\r\n : null;\r\n var containerGroup = this._giveContainerGroup(layoutInfo);\r\n var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\r\n (!isInit && (!payloadType\r\n || payloadType === 'treemapZoomToNode'\r\n || payloadType === 'treemapRootToNode'))\r\n ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot)\r\n : renderResult.renderFinally();\r\n this._resetController(api);\r\n this._renderBreadcrumb(seriesModel, api, targetInfo);\r\n };\r\n TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\r\n var containerGroup = this._containerGroup;\r\n if (!containerGroup) {\r\n containerGroup = this._containerGroup = new Group$1();\r\n this._initEvents(containerGroup);\r\n this.group.add(containerGroup);\r\n }\r\n containerGroup.x = layoutInfo.x;\r\n containerGroup.y = layoutInfo.y;\r\n return containerGroup;\r\n };\r\n TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\r\n var thisTree = seriesModel.getData().tree;\r\n var oldTree = this._oldTree;\r\n var lastsForAnimation = createStorage();\r\n var thisStorage = createStorage();\r\n var oldStorage = this._storage;\r\n var willInvisibleEls = [];\r\n function doRenderNode(thisNode, oldNode, parentGroup, depth) {\r\n return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\r\n }\r\n dualTravel(thisTree.root ? [thisTree.root] : [], (oldTree && oldTree.root) ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\r\n var willDeleteEls = clearStorage(oldStorage);\r\n this._oldTree = thisTree;\r\n this._storage = thisStorage;\r\n return {\r\n lastsForAnimation: lastsForAnimation,\r\n willDeleteEls: willDeleteEls,\r\n renderFinally: renderFinally\r\n };\r\n function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\r\n if (sameTree) {\r\n oldViewChildren = thisViewChildren;\r\n each(thisViewChildren, function (child, index) {\r\n !child.isRemoved() && processNode(index, index);\r\n });\r\n }\r\n else {\r\n (new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey))\r\n .add(processNode)\r\n .update(processNode)\r\n .remove(curry(processNode, null))\r\n .execute();\r\n }\r\n function getKey(node) {\r\n return node.getId();\r\n }\r\n function processNode(newIndex, oldIndex) {\r\n var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\r\n var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\r\n var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\r\n group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\r\n }\r\n }\r\n function clearStorage(storage) {\r\n var willDeleteEls = createStorage();\r\n storage && each(storage, function (store, storageName) {\r\n var delEls = willDeleteEls[storageName];\r\n each(store, function (el) {\r\n el && (delEls.push(el), inner$a(el).willDelete = true);\r\n });\r\n });\r\n return willDeleteEls;\r\n }\r\n function renderFinally() {\r\n each(willDeleteEls, function (els) {\r\n each(els, function (el) {\r\n el.parent && el.parent.remove(el);\r\n });\r\n });\r\n each(willInvisibleEls, function (el) {\r\n el.invisible = true;\r\n el.dirty();\r\n });\r\n }\r\n };\r\n TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\r\n if (!seriesModel.get('animation')) {\r\n return;\r\n }\r\n var duration = seriesModel.get('animationDurationUpdate');\r\n var easing = seriesModel.get('animationEasing');\r\n var animationWrap = createWrap();\r\n each(renderResult.willDeleteEls, function (store, storageName) {\r\n each(store, function (el, rawIndex) {\r\n if (el.invisible) {\r\n return;\r\n }\r\n var parent = el.parent;\r\n var target;\r\n var innerStore = inner$a(parent);\r\n if (reRoot && reRoot.direction === 'drillDown') {\r\n target = parent === reRoot.rootNodeGroup\r\n ? {\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: innerStore.nodeWidth,\r\n height: innerStore.nodeHeight\r\n },\r\n style: {\r\n opacity: 0\r\n }\r\n }\r\n : { style: { opacity: 0 } };\r\n }\r\n else {\r\n var targetX = 0;\r\n var targetY = 0;\r\n if (!innerStore.willDelete) {\r\n targetX = innerStore.nodeWidth / 2;\r\n targetY = innerStore.nodeHeight / 2;\r\n }\r\n target = storageName === 'nodeGroup'\r\n ? { x: targetX, y: targetY, style: { opacity: 0 } }\r\n : {\r\n shape: { x: targetX, y: targetY, width: 0, height: 0 },\r\n style: { opacity: 0 }\r\n };\r\n }\r\n target && animationWrap.add(el, target, duration, easing);\r\n });\r\n });\r\n each(this._storage, function (store, storageName) {\r\n each(store, function (el, rawIndex) {\r\n var last = renderResult.lastsForAnimation[storageName][rawIndex];\r\n var target = {};\r\n if (!last) {\r\n return;\r\n }\r\n if (el instanceof Group) {\r\n if (last.oldX != null) {\r\n target.x = el.x;\r\n target.y = el.y;\r\n el.x = last.oldX;\r\n el.y = last.oldY;\r\n }\r\n }\r\n else {\r\n if (last.oldShape) {\r\n target.shape = extend({}, el.shape);\r\n el.setShape(last.oldShape);\r\n }\r\n if (last.fadein) {\r\n el.setStyle('opacity', 0);\r\n target.style = { opacity: 1 };\r\n }\r\n else if (el.style.opacity !== 1) {\r\n target.style = { opacity: 1 };\r\n }\r\n }\r\n animationWrap.add(el, target, duration, easing);\r\n });\r\n }, this);\r\n this._state = 'animating';\r\n animationWrap\r\n .done(bind(function () {\r\n this._state = 'ready';\r\n renderResult.renderFinally();\r\n }, this))\r\n .start();\r\n };\r\n TreemapView.prototype._resetController = function (api) {\r\n var controller = this._controller;\r\n if (!controller) {\r\n controller = this._controller = new RoamController(api.getZr());\r\n controller.enable(this.seriesModel.get('roam'));\r\n controller.on('pan', bind(this._onPan, this));\r\n controller.on('zoom', bind(this._onZoom, this));\r\n }\r\n var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\r\n controller.setPointerChecker(function (e, x, y) {\r\n return rect.contain(x, y);\r\n });\r\n };\r\n TreemapView.prototype._clearController = function () {\r\n var controller = this._controller;\r\n if (controller) {\r\n controller.dispose();\r\n controller = null;\r\n }\r\n };\r\n TreemapView.prototype._onPan = function (e) {\r\n if (this._state !== 'animating'\r\n && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\r\n var root = this.seriesModel.getData().tree.root;\r\n if (!root) {\r\n return;\r\n }\r\n var rootLayout = root.getLayout();\r\n if (!rootLayout) {\r\n return;\r\n }\r\n this.api.dispatchAction({\r\n type: 'treemapMove',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n rootRect: {\r\n x: rootLayout.x + e.dx, y: rootLayout.y + e.dy,\r\n width: rootLayout.width, height: rootLayout.height\r\n }\r\n });\r\n }\r\n };\r\n TreemapView.prototype._onZoom = function (e) {\r\n var mouseX = e.originX;\r\n var mouseY = e.originY;\r\n if (this._state !== 'animating') {\r\n var root = this.seriesModel.getData().tree.root;\r\n if (!root) {\r\n return;\r\n }\r\n var rootLayout = root.getLayout();\r\n if (!rootLayout) {\r\n return;\r\n }\r\n var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\r\n var layoutInfo = this.seriesModel.layoutInfo;\r\n mouseX -= layoutInfo.x;\r\n mouseY -= layoutInfo.y;\r\n var m = create$1();\r\n translate(m, m, [-mouseX, -mouseY]);\r\n scale$1(m, m, [e.scale, e.scale]);\r\n translate(m, m, [mouseX, mouseY]);\r\n rect.applyTransform(m);\r\n this.api.dispatchAction({\r\n type: 'treemapRender',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n rootRect: {\r\n x: rect.x, y: rect.y,\r\n width: rect.width, height: rect.height\r\n }\r\n });\r\n }\r\n };\r\n TreemapView.prototype._initEvents = function (containerGroup) {\r\n var _this = this;\r\n containerGroup.on('click', function (e) {\r\n if (_this._state !== 'ready') {\r\n return;\r\n }\r\n var nodeClick = _this.seriesModel.get('nodeClick', true);\r\n if (!nodeClick) {\r\n return;\r\n }\r\n var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\r\n if (!targetInfo) {\r\n return;\r\n }\r\n var node = targetInfo.node;\r\n if (node.getLayout().isLeafRoot) {\r\n _this._rootToNode(targetInfo);\r\n }\r\n else {\r\n if (nodeClick === 'zoomToNode') {\r\n _this._zoomToNode(targetInfo);\r\n }\r\n else if (nodeClick === 'link') {\r\n var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\r\n var link = itemModel.get('link', true);\r\n var linkTarget = itemModel.get('target', true) || 'blank';\r\n link && windowOpen(link, linkTarget);\r\n }\r\n }\r\n }, this);\r\n };\r\n TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\r\n var _this = this;\r\n if (!targetInfo) {\r\n targetInfo = seriesModel.get('leafDepth', true) != null\r\n ? { node: seriesModel.getViewRoot() }\r\n : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\r\n if (!targetInfo) {\r\n targetInfo = { node: seriesModel.getData().tree.root };\r\n }\r\n }\r\n (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group)))\r\n .render(seriesModel, api, targetInfo.node, function (node) {\r\n if (_this._state !== 'animating') {\r\n aboveViewRoot(seriesModel.getViewRoot(), node)\r\n ? _this._rootToNode({ node: node })\r\n : _this._zoomToNode({ node: node });\r\n }\r\n });\r\n };\r\n TreemapView.prototype.remove = function () {\r\n this._clearController();\r\n this._containerGroup && this._containerGroup.removeAll();\r\n this._storage = createStorage();\r\n this._state = 'ready';\r\n this._breadcrumb && this._breadcrumb.remove();\r\n };\r\n TreemapView.prototype.dispose = function () {\r\n this._clearController();\r\n };\r\n TreemapView.prototype._zoomToNode = function (targetInfo) {\r\n this.api.dispatchAction({\r\n type: 'treemapZoomToNode',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: targetInfo.node\r\n });\r\n };\r\n TreemapView.prototype._rootToNode = function (targetInfo) {\r\n this.api.dispatchAction({\r\n type: 'treemapRootToNode',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: targetInfo.node\r\n });\r\n };\r\n TreemapView.prototype.findTarget = function (x, y) {\r\n var targetInfo;\r\n var viewRoot = this.seriesModel.getViewRoot();\r\n viewRoot.eachNode({ attr: 'viewChildren', order: 'preorder' }, function (node) {\r\n var bgEl = this._storage.background[node.getRawIndex()];\r\n if (bgEl) {\r\n var point = bgEl.transformCoordToLocal(x, y);\r\n var shape = bgEl.shape;\r\n if (shape.x <= point[0]\r\n && point[0] <= shape.x + shape.width\r\n && shape.y <= point[1]\r\n && point[1] <= shape.y + shape.height) {\r\n targetInfo = {\r\n node: node,\r\n offsetX: point[0],\r\n offsetY: point[1]\r\n };\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }, this);\r\n return targetInfo;\r\n };\r\n TreemapView.type = 'treemap';\r\n return TreemapView;\r\n }(ChartView));\r\n function createStorage() {\r\n return {\r\n nodeGroup: [],\r\n background: [],\r\n content: []\r\n };\r\n }\r\n function renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\r\n if (!thisNode) {\r\n return;\r\n }\r\n var thisLayout = thisNode.getLayout();\r\n var data = seriesModel.getData();\r\n var nodeModel = thisNode.getModel();\r\n data.setItemGraphicEl(thisNode.dataIndex, null);\r\n if (!thisLayout || !thisLayout.isInView) {\r\n return;\r\n }\r\n var thisWidth = thisLayout.width;\r\n var thisHeight = thisLayout.height;\r\n var borderWidth = thisLayout.borderWidth;\r\n var thisInvisible = thisLayout.invisible;\r\n var thisRawIndex = thisNode.getRawIndex();\r\n var oldRawIndex = oldNode && oldNode.getRawIndex();\r\n var thisViewChildren = thisNode.viewChildren;\r\n var upperHeight = thisLayout.upperHeight;\r\n var isParent = thisViewChildren && thisViewChildren.length;\r\n var itemStyleNormalModel = nodeModel.getModel('itemStyle');\r\n var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\r\n var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\r\n var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\r\n var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\r\n var group = giveGraphic('nodeGroup', Group$1);\r\n if (!group) {\r\n return;\r\n }\r\n parentGroup.add(group);\r\n group.x = thisLayout.x || 0;\r\n group.y = thisLayout.y || 0;\r\n group.markRedraw();\r\n inner$a(group).nodeWidth = thisWidth;\r\n inner$a(group).nodeHeight = thisHeight;\r\n if (thisLayout.isAboveViewRoot) {\r\n return group;\r\n }\r\n var bg = giveGraphic('background', Rect$1, depth, Z_BG);\r\n bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\r\n var focus = nodeModel.get(['emphasis', 'focus']);\r\n var blurScope = nodeModel.get(['emphasis', 'blurScope']);\r\n var focusDataIndices = focus === 'ancestor'\r\n ? thisNode.getAncestorsIndices()\r\n : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\r\n if (isParent) {\r\n if (isHighDownDispatcher(group)) {\r\n setAsHighDownDispatcher(group, false);\r\n }\r\n if (bg) {\r\n setAsHighDownDispatcher(bg, true);\r\n data.setItemGraphicEl(thisNode.dataIndex, bg);\r\n enableHoverFocus(bg, focusDataIndices || focus, blurScope);\r\n }\r\n }\r\n else {\r\n var content = giveGraphic('content', Rect$1, depth, Z_CONTENT);\r\n content && renderContent(group, content);\r\n if (bg && isHighDownDispatcher(bg)) {\r\n setAsHighDownDispatcher(bg, false);\r\n }\r\n setAsHighDownDispatcher(group, true);\r\n data.setItemGraphicEl(thisNode.dataIndex, group);\r\n enableHoverFocus(group, focusDataIndices || focus, blurScope);\r\n }\r\n return group;\r\n function renderBackground(group, bg, useUpperLabel) {\r\n var ecData = getECData(bg);\r\n ecData.dataIndex = thisNode.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n bg.setShape({ x: 0, y: 0, width: thisWidth, height: thisHeight, r: borderRadius });\r\n if (thisInvisible) {\r\n processInvisible(bg);\r\n }\r\n else {\r\n bg.invisible = false;\r\n var visualBorderColor = thisNode.getVisual('style').stroke;\r\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\r\n normalStyle.fill = visualBorderColor;\r\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\r\n emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\r\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\r\n blurStyle.fill = itemStyleBlurModel.get('borderColor');\r\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\r\n selectStyle.fill = itemStyleSelectModel.get('borderColor');\r\n if (useUpperLabel) {\r\n var upperLabelWidth = thisWidth - 2 * borderWidth;\r\n prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, { x: borderWidth, y: 0, width: upperLabelWidth, height: upperHeight });\r\n }\r\n else {\r\n bg.removeTextContent();\r\n }\r\n bg.setStyle(normalStyle);\r\n bg.ensureState('emphasis').style = emphasisStyle;\r\n bg.ensureState('blur').style = blurStyle;\r\n bg.ensureState('select').style = selectStyle;\r\n setDefaultStateProxy(bg);\r\n }\r\n group.add(bg);\r\n }\r\n function renderContent(group, content) {\r\n var ecData = getECData(content);\r\n ecData.dataIndex = thisNode.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\r\n var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\r\n content.culling = true;\r\n content.setShape({\r\n x: borderWidth,\r\n y: borderWidth,\r\n width: contentWidth,\r\n height: contentHeight,\r\n r: borderRadius\r\n });\r\n if (thisInvisible) {\r\n processInvisible(content);\r\n }\r\n else {\r\n content.invisible = false;\r\n var visualColor = thisNode.getVisual('style').fill;\r\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\r\n normalStyle.fill = visualColor;\r\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\r\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\r\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\r\n prepareText(content, visualColor);\r\n content.setStyle(normalStyle);\r\n content.ensureState('emphasis').style = emphasisStyle;\r\n content.ensureState('blur').style = blurStyle;\r\n content.ensureState('select').style = selectStyle;\r\n setDefaultStateProxy(content);\r\n }\r\n group.add(content);\r\n }\r\n function processInvisible(element) {\r\n !element.invisible && willInvisibleEls.push(element);\r\n }\r\n function prepareText(rectEl, visualColor, width, height, upperLabelRect) {\r\n var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\r\n var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), nodeModel.get('name'));\r\n if (!upperLabelRect && thisLayout.isLeafRoot) {\r\n var iconChar = seriesModel.get('drillDownIcon', true);\r\n text = iconChar ? iconChar + ' ' + text : text;\r\n }\r\n var isShow = normalLabelModel.getShallow('show');\r\n setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\r\n defaultText: isShow ? text : null,\r\n inheritColor: visualColor,\r\n labelFetcher: seriesModel,\r\n labelDataIndex: thisNode.dataIndex\r\n });\r\n var textEl = rectEl.getTextContent();\r\n var textStyle = textEl.style;\r\n var textPadding = normalizeCssArray(textStyle.padding || 0);\r\n if (upperLabelRect) {\r\n rectEl.setTextConfig({\r\n layoutRect: upperLabelRect\r\n });\r\n textEl.disableLabelLayout = true;\r\n }\r\n textEl.beforeUpdate = function () {\r\n var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\r\n var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\r\n if (textStyle.width !== width || textStyle.height !== height) {\r\n textEl.setStyle({\r\n width: width,\r\n height: height\r\n });\r\n }\r\n };\r\n textStyle.truncateMinChar = 2;\r\n textStyle.lineOverflow = 'truncate';\r\n addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\r\n var textEmphasisState = textEl.getState('emphasis');\r\n addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\r\n }\r\n function addDrillDownIcon(style, upperLabelRect, thisLayout) {\r\n var text = style ? style.text : null;\r\n if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\r\n var iconChar = seriesModel.get('drillDownIcon', true);\r\n style.text = iconChar ? iconChar + ' ' + text : text;\r\n }\r\n }\r\n function giveGraphic(storageName, Ctor, depth, z) {\r\n var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\r\n var lasts = lastsForAnimation[storageName];\r\n if (element) {\r\n oldStorage[storageName][oldRawIndex] = null;\r\n prepareAnimationWhenHasOld(lasts, element);\r\n }\r\n else if (!thisInvisible) {\r\n element = new Ctor();\r\n if (element instanceof Displayable) {\r\n element.z = calculateZ(depth, z);\r\n }\r\n prepareAnimationWhenNoOld(lasts, element);\r\n }\r\n return (thisStorage[storageName][thisRawIndex] = element);\r\n }\r\n function prepareAnimationWhenHasOld(lasts, element) {\r\n var lastCfg = lasts[thisRawIndex] = {};\r\n if (element instanceof Group$1) {\r\n lastCfg.oldX = element.x;\r\n lastCfg.oldY = element.y;\r\n }\r\n else {\r\n lastCfg.oldShape = extend({}, element.shape);\r\n }\r\n }\r\n function prepareAnimationWhenNoOld(lasts, element) {\r\n var lastCfg = lasts[thisRawIndex] = {};\r\n var parentNode = thisNode.parentNode;\r\n var isGroup = element instanceof Group;\r\n if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\r\n var parentOldX = 0;\r\n var parentOldY = 0;\r\n var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\r\n if (!reRoot && parentOldBg && parentOldBg.oldShape) {\r\n parentOldX = parentOldBg.oldShape.width;\r\n parentOldY = parentOldBg.oldShape.height;\r\n }\r\n if (isGroup) {\r\n lastCfg.oldX = 0;\r\n lastCfg.oldY = parentOldY;\r\n }\r\n else {\r\n lastCfg.oldShape = { x: parentOldX, y: parentOldY, width: 0, height: 0 };\r\n }\r\n }\r\n lastCfg.fadein = !isGroup;\r\n }\r\n }\r\n function calculateZ(depth, zInLevel) {\r\n var zb = depth * Z_BASE + zInLevel;\r\n return (zb - 1) / zb;\r\n }\r\n ChartView.registerClass(TreemapView);\n\n var noop$1 = function () { };\r\n var actionTypes = [\r\n 'treemapZoomToNode',\r\n 'treemapRender',\r\n 'treemapMove'\r\n ];\r\n for (var i$1 = 0; i$1 < actionTypes.length; i$1++) {\r\n registerAction({\r\n type: actionTypes[i$1],\r\n update: 'updateView'\r\n }, noop$1);\r\n }\r\n registerAction({ type: 'treemapRootToNode', update: 'updateView' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'series', subType: 'treemap', query: payload }, handleRootToNode);\r\n function handleRootToNode(model, index) {\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, model);\r\n if (targetInfo) {\r\n var originViewRoot = model.getViewRoot();\r\n if (originViewRoot) {\r\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node)\r\n ? 'rollUp' : 'drillDown';\r\n }\r\n model.resetViewRoot(targetInfo.node);\r\n }\r\n }\r\n });\n\n var each$4 = each;\r\n var isObject$4 = isObject;\r\n var CATEGORY_DEFAULT_VISUAL_INDEX = -1;\r\n var VisualMapping = (function () {\r\n function VisualMapping(option) {\r\n var mappingMethod = option.mappingMethod;\r\n var visualType = option.type;\r\n var thisOption = this.option = clone(option);\r\n this.type = visualType;\r\n this.mappingMethod = mappingMethod;\r\n this._normalizeData = normalizers[mappingMethod];\r\n var visualHandler = VisualMapping.visualHandlers[visualType];\r\n this.applyVisual = visualHandler.applyVisual;\r\n this.getColorMapper = visualHandler.getColorMapper;\r\n this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\r\n if (mappingMethod === 'piecewise') {\r\n normalizeVisualRange(thisOption);\r\n preprocessForPiecewise(thisOption);\r\n }\r\n else if (mappingMethod === 'category') {\r\n thisOption.categories\r\n ? preprocessForSpecifiedCategory(thisOption)\r\n : normalizeVisualRange(thisOption, true);\r\n }\r\n else {\r\n assert(mappingMethod !== 'linear' || thisOption.dataExtent);\r\n normalizeVisualRange(thisOption);\r\n }\r\n }\r\n VisualMapping.prototype.mapValueToVisual = function (value) {\r\n var normalized = this._normalizeData(value);\r\n return this._normalizedToVisual(normalized, value);\r\n };\r\n VisualMapping.prototype.getNormalizer = function () {\r\n return bind(this._normalizeData, this);\r\n };\r\n VisualMapping.listVisualTypes = function () {\r\n return keys(VisualMapping.visualHandlers);\r\n };\r\n VisualMapping.isValidType = function (visualType) {\r\n return VisualMapping.visualHandlers.hasOwnProperty(visualType);\r\n };\r\n VisualMapping.eachVisual = function (visual, callback, context) {\r\n if (isObject(visual)) {\r\n each(visual, callback, context);\r\n }\r\n else {\r\n callback.call(context, visual);\r\n }\r\n };\r\n VisualMapping.mapVisual = function (visual, callback, context) {\r\n var isPrimary;\r\n var newVisual = isArray(visual)\r\n ? []\r\n : isObject(visual)\r\n ? {}\r\n : (isPrimary = true, null);\r\n VisualMapping.eachVisual(visual, function (v, key) {\r\n var newVal = callback.call(context, v, key);\r\n isPrimary ? (newVisual = newVal) : (newVisual[key] = newVal);\r\n });\r\n return newVisual;\r\n };\r\n VisualMapping.retrieveVisuals = function (obj) {\r\n var ret = {};\r\n var hasVisual;\r\n obj && each$4(VisualMapping.visualHandlers, function (h, visualType) {\r\n if (obj.hasOwnProperty(visualType)) {\r\n ret[visualType] = obj[visualType];\r\n hasVisual = true;\r\n }\r\n });\r\n return hasVisual ? ret : null;\r\n };\r\n VisualMapping.prepareVisualTypes = function (visualTypes) {\r\n if (isArray(visualTypes)) {\r\n visualTypes = visualTypes.slice();\r\n }\r\n else if (isObject$4(visualTypes)) {\r\n var types_1 = [];\r\n each$4(visualTypes, function (item, type) {\r\n types_1.push(type);\r\n });\r\n visualTypes = types_1;\r\n }\r\n else {\r\n return [];\r\n }\r\n visualTypes.sort(function (type1, type2) {\r\n return (type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0)\r\n ? 1 : -1;\r\n });\r\n return visualTypes;\r\n };\r\n VisualMapping.dependsOn = function (visualType1, visualType2) {\r\n return visualType2 === 'color'\r\n ? !!(visualType1 && visualType1.indexOf(visualType2) === 0)\r\n : visualType1 === visualType2;\r\n };\r\n VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\r\n var possibleI;\r\n var abs = Infinity;\r\n for (var i = 0, len = pieceList.length; i < len; i++) {\r\n var pieceValue = pieceList[i].value;\r\n if (pieceValue != null) {\r\n if (pieceValue === value\r\n || (typeof pieceValue === 'string' && pieceValue === value + '')) {\r\n return i;\r\n }\r\n findClosestWhenOutside && updatePossible(pieceValue, i);\r\n }\r\n }\r\n for (var i = 0, len = pieceList.length; i < len; i++) {\r\n var piece = pieceList[i];\r\n var interval = piece.interval;\r\n var close_1 = piece.close;\r\n if (interval) {\r\n if (interval[0] === -Infinity) {\r\n if (littleThan(close_1[1], value, interval[1])) {\r\n return i;\r\n }\r\n }\r\n else if (interval[1] === Infinity) {\r\n if (littleThan(close_1[0], interval[0], value)) {\r\n return i;\r\n }\r\n }\r\n else if (littleThan(close_1[0], interval[0], value)\r\n && littleThan(close_1[1], value, interval[1])) {\r\n return i;\r\n }\r\n findClosestWhenOutside && updatePossible(interval[0], i);\r\n findClosestWhenOutside && updatePossible(interval[1], i);\r\n }\r\n }\r\n if (findClosestWhenOutside) {\r\n return value === Infinity\r\n ? pieceList.length - 1\r\n : value === -Infinity\r\n ? 0\r\n : possibleI;\r\n }\r\n function updatePossible(val, index) {\r\n var newAbs = Math.abs(val - value);\r\n if (newAbs < abs) {\r\n abs = newAbs;\r\n possibleI = index;\r\n }\r\n }\r\n };\r\n VisualMapping.visualHandlers = {\r\n color: {\r\n applyVisual: makeApplyVisual('color'),\r\n getColorMapper: function () {\r\n var thisOption = this.option;\r\n return bind(thisOption.mappingMethod === 'category'\r\n ? function (value, isNormalized) {\r\n !isNormalized && (value = this._normalizeData(value));\r\n return doMapCategory.call(this, value);\r\n }\r\n : function (value, isNormalized, out) {\r\n var returnRGBArray = !!out;\r\n !isNormalized && (value = this._normalizeData(value));\r\n out = fastLerp(value, thisOption.parsedVisual, out);\r\n return returnRGBArray ? out : stringify(out, 'rgba');\r\n }, this);\r\n },\r\n _normalizedToVisual: {\r\n linear: function (normalized) {\r\n return stringify(fastLerp(normalized, this.option.parsedVisual), 'rgba');\r\n },\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = stringify(fastLerp(normalized, this.option.parsedVisual), 'rgba');\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n }\r\n },\r\n colorHue: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, value);\r\n }),\r\n colorSaturation: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, null, value);\r\n }),\r\n colorLightness: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, null, null, value);\r\n }),\r\n colorAlpha: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyAlpha(color$1, value);\r\n }),\r\n opacity: {\r\n applyVisual: makeApplyVisual('opacity'),\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n },\r\n liftZ: {\r\n applyVisual: makeApplyVisual('liftZ'),\r\n _normalizedToVisual: {\r\n linear: doMapFixed,\r\n category: doMapFixed,\r\n piecewise: doMapFixed,\r\n fixed: doMapFixed\r\n }\r\n },\r\n symbol: {\r\n applyVisual: function (value, getter, setter) {\r\n var symbolCfg = this.mapValueToVisual(value);\r\n setter('symbol', symbolCfg);\r\n },\r\n _normalizedToVisual: {\r\n linear: doMapToArray,\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = doMapToArray.call(this, normalized);\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n }\r\n },\r\n symbolSize: {\r\n applyVisual: makeApplyVisual('symbolSize'),\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n }\r\n };\r\n return VisualMapping;\r\n }());\r\n function preprocessForPiecewise(thisOption) {\r\n var pieceList = thisOption.pieceList;\r\n thisOption.hasSpecialVisual = false;\r\n each(pieceList, function (piece, index) {\r\n piece.originIndex = index;\r\n if (piece.visual != null) {\r\n thisOption.hasSpecialVisual = true;\r\n }\r\n });\r\n }\r\n function preprocessForSpecifiedCategory(thisOption) {\r\n var categories = thisOption.categories;\r\n var categoryMap = thisOption.categoryMap = {};\r\n var visual = thisOption.visual;\r\n each$4(categories, function (cate, index) {\r\n categoryMap[cate] = index;\r\n });\r\n if (!isArray(visual)) {\r\n var visualArr_1 = [];\r\n if (isObject(visual)) {\r\n each$4(visual, function (v, cate) {\r\n var index = categoryMap[cate];\r\n visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\r\n });\r\n }\r\n else {\r\n visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\r\n }\r\n visual = setVisualToOption(thisOption, visualArr_1);\r\n }\r\n for (var i = categories.length - 1; i >= 0; i--) {\r\n if (visual[i] == null) {\r\n delete categoryMap[categories[i]];\r\n categories.pop();\r\n }\r\n }\r\n }\r\n function normalizeVisualRange(thisOption, isCategory) {\r\n var visual = thisOption.visual;\r\n var visualArr = [];\r\n if (isObject(visual)) {\r\n each$4(visual, function (v) {\r\n visualArr.push(v);\r\n });\r\n }\r\n else if (visual != null) {\r\n visualArr.push(visual);\r\n }\r\n var doNotNeedPair = { color: 1, symbol: 1 };\r\n if (!isCategory\r\n && visualArr.length === 1\r\n && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\r\n visualArr[1] = visualArr[0];\r\n }\r\n setVisualToOption(thisOption, visualArr);\r\n }\r\n function makePartialColorVisualHandler(applyValue) {\r\n return {\r\n applyVisual: function (value, getter, setter) {\r\n var colorChannel = this.mapValueToVisual(value);\r\n setter('color', applyValue(getter('color'), colorChannel));\r\n },\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n };\r\n }\r\n function doMapToArray(normalized) {\r\n var visual = this.option.visual;\r\n return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\r\n }\r\n function makeApplyVisual(visualType) {\r\n return function (value, getter, setter) {\r\n setter(visualType, this.mapValueToVisual(value));\r\n };\r\n }\r\n function doMapCategory(normalized) {\r\n var visual = this.option.visual;\r\n return visual[(this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX)\r\n ? normalized % visual.length\r\n : normalized];\r\n }\r\n function doMapFixed() {\r\n return this.option.visual[0];\r\n }\r\n function createNormalizedToNumericVisual(sourceExtent) {\r\n return {\r\n linear: function (normalized) {\r\n return linearMap(normalized, sourceExtent, this.option.visual, true);\r\n },\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = linearMap(normalized, sourceExtent, this.option.visual, true);\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n };\r\n }\r\n function getSpecifiedVisual(value) {\r\n var thisOption = this.option;\r\n var pieceList = thisOption.pieceList;\r\n if (thisOption.hasSpecialVisual) {\r\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\r\n var piece = pieceList[pieceIndex];\r\n if (piece && piece.visual) {\r\n return piece.visual[this.type];\r\n }\r\n }\r\n }\r\n function setVisualToOption(thisOption, visualArr) {\r\n thisOption.visual = visualArr;\r\n if (thisOption.type === 'color') {\r\n thisOption.parsedVisual = map(visualArr, function (item) {\r\n return parse(item);\r\n });\r\n }\r\n return visualArr;\r\n }\r\n var normalizers = {\r\n linear: function (value) {\r\n return linearMap(value, this.option.dataExtent, [0, 1], true);\r\n },\r\n piecewise: function (value) {\r\n var pieceList = this.option.pieceList;\r\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\r\n if (pieceIndex != null) {\r\n return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\r\n }\r\n },\r\n category: function (value) {\r\n var index = this.option.categories\r\n ? this.option.categoryMap[value]\r\n : value;\r\n return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\r\n },\r\n fixed: noop\r\n };\r\n function littleThan(close, a, b) {\r\n return close ? a <= b : a < b;\r\n }\n\n var ITEM_STYLE_NORMAL = 'itemStyle';\r\n var inner$b = makeInner();\r\n var treemapVisual = {\r\n seriesType: 'treemap',\r\n reset: function (seriesModel) {\r\n var tree = seriesModel.getData().tree;\r\n var root = tree.root;\r\n var seriesItemStyleModel = seriesModel.getModel(ITEM_STYLE_NORMAL);\r\n if (root.isRemoved()) {\r\n return;\r\n }\r\n var levelItemStyles = map(tree.levelModels, function (levelModel) {\r\n return levelModel ? levelModel.get(ITEM_STYLE_NORMAL) : null;\r\n });\r\n travelTree(root, {}, levelItemStyles, seriesItemStyleModel, seriesModel.getViewRoot().getAncestors(), seriesModel);\r\n }\r\n };\r\n function travelTree(node, designatedVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel) {\r\n var nodeModel = node.getModel();\r\n var nodeLayout = node.getLayout();\r\n var data = node.hostTree.data;\r\n if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\r\n return;\r\n }\r\n var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\r\n var levelItemStyle = levelItemStyles[node.depth];\r\n var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel);\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n var borderColor = nodeItemStyleModel.get('borderColor');\r\n var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\r\n var thisNodeColor;\r\n if (borderColorSaturation != null) {\r\n thisNodeColor = calculateColor(visuals);\r\n borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\r\n }\r\n existsStyle.stroke = borderColor;\r\n var viewChildren = node.viewChildren;\r\n if (!viewChildren || !viewChildren.length) {\r\n thisNodeColor = calculateColor(visuals);\r\n existsStyle.fill = thisNodeColor;\r\n }\r\n else {\r\n var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\r\n each(viewChildren, function (child, index) {\r\n if (child.depth >= viewRootAncestors.length\r\n || child === viewRootAncestors[child.depth]) {\r\n var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\r\n travelTree(child, childVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel);\r\n }\r\n });\r\n }\r\n }\r\n function buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel) {\r\n var visuals = extend({}, designatedVisual);\r\n each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\r\n var val = nodeItemStyleModel.get(visualName, true);\r\n val == null && levelItemStyle && (val = levelItemStyle[visualName]);\r\n val == null && (val = designatedVisual[visualName]);\r\n val == null && (val = seriesItemStyleModel.get(visualName));\r\n val != null && (visuals[visualName] = val);\r\n });\r\n return visuals;\r\n }\r\n function calculateColor(visuals) {\r\n var color = getValueVisualDefine(visuals, 'color');\r\n if (color) {\r\n var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\r\n var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\r\n if (colorSaturation) {\r\n color = modifyHSL(color, null, null, colorSaturation);\r\n }\r\n if (colorAlpha) {\r\n color = modifyAlpha(color, colorAlpha);\r\n }\r\n return color;\r\n }\r\n }\r\n function calculateBorderColor(borderColorSaturation, thisNodeColor) {\r\n return thisNodeColor != null\r\n ? modifyHSL(thisNodeColor, null, null, borderColorSaturation)\r\n : null;\r\n }\r\n function getValueVisualDefine(visuals, name) {\r\n var value = visuals[name];\r\n if (value != null && value !== 'none') {\r\n return value;\r\n }\r\n }\r\n function buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\r\n if (!viewChildren || !viewChildren.length) {\r\n return;\r\n }\r\n var rangeVisual = getRangeVisual(nodeModel, 'color')\r\n || (visuals.color != null\r\n && visuals.color !== 'none'\r\n && (getRangeVisual(nodeModel, 'colorAlpha')\r\n || getRangeVisual(nodeModel, 'colorSaturation')));\r\n if (!rangeVisual) {\r\n return;\r\n }\r\n var visualMin = nodeModel.get('visualMin');\r\n var visualMax = nodeModel.get('visualMax');\r\n var dataExtent = nodeLayout.dataExtent.slice();\r\n visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\r\n visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\r\n var colorMappingBy = nodeModel.get('colorMappingBy');\r\n var opt = {\r\n type: rangeVisual.name,\r\n dataExtent: dataExtent,\r\n visual: rangeVisual.range\r\n };\r\n if (opt.type === 'color'\r\n && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\r\n opt.mappingMethod = 'category';\r\n opt.loop = true;\r\n }\r\n else {\r\n opt.mappingMethod = 'linear';\r\n }\r\n var mapping = new VisualMapping(opt);\r\n inner$b(mapping).drColorMappingBy = colorMappingBy;\r\n return mapping;\r\n }\r\n function getRangeVisual(nodeModel, name) {\r\n var range = nodeModel.get(name);\r\n return (isArray(range) && range.length) ? {\r\n name: name,\r\n range: range\r\n } : null;\r\n }\r\n function mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\r\n var childVisuals = extend({}, visuals);\r\n if (mapping) {\r\n var mappingType = mapping.type;\r\n var colorMappingBy = mappingType === 'color' && inner$b(mapping).drColorMappingBy;\r\n var value = colorMappingBy === 'index'\r\n ? index\r\n : colorMappingBy === 'id'\r\n ? seriesModel.mapIdToIndex(child.getId())\r\n : child.getValue(nodeModel.get('visualDimension'));\r\n childVisuals[mappingType] = mapping.mapValueToVisual(value);\r\n }\r\n return childVisuals;\r\n }\n\n var mathMax$5 = Math.max;\r\n var mathMin$5 = Math.min;\r\n var retrieveValue = retrieve;\r\n var each$5 = each;\r\n var PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\r\n var PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\r\n var PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\r\n var PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\r\n var treemapLayout = {\r\n seriesType: 'treemap',\r\n reset: function (seriesModel, ecModel, api, payload) {\r\n var ecWidth = api.getWidth();\r\n var ecHeight = api.getHeight();\r\n var seriesOption = seriesModel.option;\r\n var layoutInfo = getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n var size = seriesOption.size || [];\r\n var containerWidth = parsePercent$2(retrieveValue(layoutInfo.width, size[0]), ecWidth);\r\n var containerHeight = parsePercent$2(retrieveValue(layoutInfo.height, size[1]), ecHeight);\r\n var payloadType = payload && payload.type;\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, seriesModel);\r\n var rootRect = (payloadType === 'treemapRender' || payloadType === 'treemapMove')\r\n ? payload.rootRect : null;\r\n var viewRoot = seriesModel.getViewRoot();\r\n var viewAbovePath = getPathToRoot(viewRoot);\r\n if (payloadType !== 'treemapMove') {\r\n var rootSize = payloadType === 'treemapZoomToNode'\r\n ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight)\r\n : rootRect\r\n ? [rootRect.width, rootRect.height]\r\n : [containerWidth, containerHeight];\r\n var sort_1 = seriesOption.sort;\r\n if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\r\n sort_1 = 'desc';\r\n }\r\n var options = {\r\n squareRatio: seriesOption.squareRatio,\r\n sort: sort_1,\r\n leafDepth: seriesOption.leafDepth\r\n };\r\n viewRoot.hostTree.clearLayouts();\r\n var viewRootLayout_1 = {\r\n x: 0,\r\n y: 0,\r\n width: rootSize[0],\r\n height: rootSize[1],\r\n area: rootSize[0] * rootSize[1]\r\n };\r\n viewRoot.setLayout(viewRootLayout_1);\r\n squarify(viewRoot, options, false, 0);\r\n viewRootLayout_1 = viewRoot.getLayout();\r\n each$5(viewAbovePath, function (node, index) {\r\n var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\r\n node.setLayout(extend({\r\n dataExtent: [childValue, childValue],\r\n borderWidth: 0,\r\n upperHeight: 0\r\n }, viewRootLayout_1));\r\n });\r\n }\r\n var treeRoot = seriesModel.getData().tree.root;\r\n treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\r\n seriesModel.setLayoutInfo(layoutInfo);\r\n prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\r\n }\r\n };\r\n function squarify(node, options, hideChildren, depth) {\r\n var width;\r\n var height;\r\n if (node.isRemoved()) {\r\n return;\r\n }\r\n var thisLayout = node.getLayout();\r\n width = thisLayout.width;\r\n height = thisLayout.height;\r\n var nodeModel = node.getModel();\r\n var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\r\n var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\r\n var upperLabelHeight = getUpperLabelHeight(nodeModel);\r\n var upperHeight = Math.max(borderWidth, upperLabelHeight);\r\n var layoutOffset = borderWidth - halfGapWidth;\r\n var layoutOffsetUpper = upperHeight - halfGapWidth;\r\n node.setLayout({\r\n borderWidth: borderWidth,\r\n upperHeight: upperHeight,\r\n upperLabelHeight: upperLabelHeight\r\n }, true);\r\n width = mathMax$5(width - 2 * layoutOffset, 0);\r\n height = mathMax$5(height - layoutOffset - layoutOffsetUpper, 0);\r\n var totalArea = width * height;\r\n var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\r\n if (!viewChildren.length) {\r\n return;\r\n }\r\n var rect = { x: layoutOffset, y: layoutOffsetUpper, width: width, height: height };\r\n var rowFixedLength = mathMin$5(width, height);\r\n var best = Infinity;\r\n var row = [];\r\n row.area = 0;\r\n for (var i = 0, len = viewChildren.length; i < len;) {\r\n var child = viewChildren[i];\r\n row.push(child);\r\n row.area += child.getLayout().area;\r\n var score = worst(row, rowFixedLength, options.squareRatio);\r\n if (score <= best) {\r\n i++;\r\n best = score;\r\n }\r\n else {\r\n row.area -= row.pop().getLayout().area;\r\n position(row, rowFixedLength, rect, halfGapWidth, false);\r\n rowFixedLength = mathMin$5(rect.width, rect.height);\r\n row.length = row.area = 0;\r\n best = Infinity;\r\n }\r\n }\r\n if (row.length) {\r\n position(row, rowFixedLength, rect, halfGapWidth, true);\r\n }\r\n if (!hideChildren) {\r\n var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\r\n if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\r\n hideChildren = true;\r\n }\r\n }\r\n for (var i = 0, len = viewChildren.length; i < len; i++) {\r\n squarify(viewChildren[i], options, hideChildren, depth + 1);\r\n }\r\n }\r\n function initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\r\n var viewChildren = node.children || [];\r\n var orderBy = options.sort;\r\n orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\r\n var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\r\n if (hideChildren && !overLeafDepth) {\r\n return (node.viewChildren = []);\r\n }\r\n viewChildren = filter(viewChildren, function (child) {\r\n return !child.isRemoved();\r\n });\r\n sort$1(viewChildren, orderBy);\r\n var info = statistic(nodeModel, viewChildren, orderBy);\r\n if (info.sum === 0) {\r\n return (node.viewChildren = []);\r\n }\r\n info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\r\n if (info.sum === 0) {\r\n return (node.viewChildren = []);\r\n }\r\n for (var i = 0, len = viewChildren.length; i < len; i++) {\r\n var area = viewChildren[i].getValue() / info.sum * totalArea;\r\n viewChildren[i].setLayout({\r\n area: area\r\n });\r\n }\r\n if (overLeafDepth) {\r\n viewChildren.length && node.setLayout({\r\n isLeafRoot: true\r\n }, true);\r\n viewChildren.length = 0;\r\n }\r\n node.viewChildren = viewChildren;\r\n node.setLayout({\r\n dataExtent: info.dataExtent\r\n }, true);\r\n return viewChildren;\r\n }\r\n function filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\r\n if (!orderBy) {\r\n return sum;\r\n }\r\n var visibleMin = nodeModel.get('visibleMin');\r\n var len = orderedChildren.length;\r\n var deletePoint = len;\r\n for (var i = len - 1; i >= 0; i--) {\r\n var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\r\n if (value / sum * totalArea < visibleMin) {\r\n deletePoint = i;\r\n sum -= value;\r\n }\r\n }\r\n orderBy === 'asc'\r\n ? orderedChildren.splice(0, len - deletePoint)\r\n : orderedChildren.splice(deletePoint, len - deletePoint);\r\n return sum;\r\n }\r\n function sort$1(viewChildren, orderBy) {\r\n if (orderBy) {\r\n viewChildren.sort(function (a, b) {\r\n var diff = orderBy === 'asc'\r\n ? a.getValue() - b.getValue()\r\n : b.getValue() - a.getValue();\r\n return diff === 0\r\n ? (orderBy === 'asc'\r\n ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex)\r\n : diff;\r\n });\r\n }\r\n return viewChildren;\r\n }\r\n function statistic(nodeModel, children, orderBy) {\r\n var sum = 0;\r\n for (var i = 0, len = children.length; i < len; i++) {\r\n sum += children[i].getValue();\r\n }\r\n var dimension = nodeModel.get('visualDimension');\r\n var dataExtent;\r\n if (!children || !children.length) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n else if (dimension === 'value' && orderBy) {\r\n dataExtent = [\r\n children[children.length - 1].getValue(),\r\n children[0].getValue()\r\n ];\r\n orderBy === 'asc' && dataExtent.reverse();\r\n }\r\n else {\r\n dataExtent = [Infinity, -Infinity];\r\n each$5(children, function (child) {\r\n var value = child.getValue(dimension);\r\n value < dataExtent[0] && (dataExtent[0] = value);\r\n value > dataExtent[1] && (dataExtent[1] = value);\r\n });\r\n }\r\n return { sum: sum, dataExtent: dataExtent };\r\n }\r\n function worst(row, rowFixedLength, ratio) {\r\n var areaMax = 0;\r\n var areaMin = Infinity;\r\n for (var i = 0, area = void 0, len = row.length; i < len; i++) {\r\n area = row[i].getLayout().area;\r\n if (area) {\r\n area < areaMin && (areaMin = area);\r\n area > areaMax && (areaMax = area);\r\n }\r\n }\r\n var squareArea = row.area * row.area;\r\n var f = rowFixedLength * rowFixedLength * ratio;\r\n return squareArea\r\n ? mathMax$5((f * areaMax) / squareArea, squareArea / (f * areaMin))\r\n : Infinity;\r\n }\r\n function position(row, rowFixedLength, rect, halfGapWidth, flush) {\r\n var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\r\n var idx1WhenH = 1 - idx0WhenH;\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n var last = rect[xy[idx0WhenH]];\r\n var rowOtherLength = rowFixedLength\r\n ? row.area / rowFixedLength : 0;\r\n if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\r\n rowOtherLength = rect[wh[idx1WhenH]];\r\n }\r\n for (var i = 0, rowLen = row.length; i < rowLen; i++) {\r\n var node = row[i];\r\n var nodeLayout = {};\r\n var step = rowOtherLength\r\n ? node.getLayout().area / rowOtherLength : 0;\r\n var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax$5(rowOtherLength - 2 * halfGapWidth, 0);\r\n var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\r\n var modWH = (i === rowLen - 1 || remain < step) ? remain : step;\r\n var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax$5(modWH - 2 * halfGapWidth, 0);\r\n nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin$5(halfGapWidth, wh1 / 2);\r\n nodeLayout[xy[idx0WhenH]] = last + mathMin$5(halfGapWidth, wh0 / 2);\r\n last += modWH;\r\n node.setLayout(nodeLayout, true);\r\n }\r\n rect[xy[idx1WhenH]] += rowOtherLength;\r\n rect[wh[idx1WhenH]] -= rowOtherLength;\r\n }\r\n function estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\r\n var currNode = (targetInfo || {}).node;\r\n var defaultSize = [containerWidth, containerHeight];\r\n if (!currNode || currNode === viewRoot) {\r\n return defaultSize;\r\n }\r\n var parent;\r\n var viewArea = containerWidth * containerHeight;\r\n var area = viewArea * seriesModel.option.zoomToNodeRatio;\r\n while (parent = currNode.parentNode) {\r\n var sum = 0;\r\n var siblings = parent.children;\r\n for (var i = 0, len = siblings.length; i < len; i++) {\r\n sum += siblings[i].getValue();\r\n }\r\n var currNodeValue = currNode.getValue();\r\n if (currNodeValue === 0) {\r\n return defaultSize;\r\n }\r\n area *= sum / currNodeValue;\r\n var parentModel = parent.getModel();\r\n var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\r\n var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\r\n area += 4 * borderWidth * borderWidth\r\n + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\r\n area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\r\n currNode = parent;\r\n }\r\n area < viewArea && (area = viewArea);\r\n var scale = Math.pow(area / viewArea, 0.5);\r\n return [containerWidth * scale, containerHeight * scale];\r\n }\r\n function calculateRootPosition(layoutInfo, rootRect, targetInfo) {\r\n if (rootRect) {\r\n return { x: rootRect.x, y: rootRect.y };\r\n }\r\n var defaultPosition = { x: 0, y: 0 };\r\n if (!targetInfo) {\r\n return defaultPosition;\r\n }\r\n var targetNode = targetInfo.node;\r\n var layout = targetNode.getLayout();\r\n if (!layout) {\r\n return defaultPosition;\r\n }\r\n var targetCenter = [layout.width / 2, layout.height / 2];\r\n var node = targetNode;\r\n while (node) {\r\n var nodeLayout = node.getLayout();\r\n targetCenter[0] += nodeLayout.x;\r\n targetCenter[1] += nodeLayout.y;\r\n node = node.parentNode;\r\n }\r\n return {\r\n x: layoutInfo.width / 2 - targetCenter[0],\r\n y: layoutInfo.height / 2 - targetCenter[1]\r\n };\r\n }\r\n function prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\r\n var nodeLayout = node.getLayout();\r\n var nodeInViewAbovePath = viewAbovePath[depth];\r\n var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\r\n if ((nodeInViewAbovePath && !isAboveViewRoot)\r\n || (depth === viewAbovePath.length && node !== viewRoot)) {\r\n return;\r\n }\r\n node.setLayout({\r\n isInView: true,\r\n invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\r\n isAboveViewRoot: isAboveViewRoot\r\n }, true);\r\n var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\r\n each$5(node.viewChildren || [], function (child) {\r\n prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\r\n });\r\n }\r\n function getUpperLabelHeight(model) {\r\n return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\r\n }\n\n registerVisual(treemapVisual);\r\n registerLayout(treemapLayout);\n\n function generateNodeKey(id) {\r\n return '_EC_' + id;\r\n }\r\n var Graph = (function () {\r\n function Graph(directed) {\r\n this.type = 'graph';\r\n this.nodes = [];\r\n this.edges = [];\r\n this._nodesMap = {};\r\n this._edgesMap = {};\r\n this._directed = directed || false;\r\n }\r\n Graph.prototype.isDirected = function () {\r\n return this._directed;\r\n };\r\n Graph.prototype.addNode = function (id, dataIndex) {\r\n id = id == null ? ('' + dataIndex) : ('' + id);\r\n var nodesMap = this._nodesMap;\r\n if (nodesMap[generateNodeKey(id)]) {\r\n if (__DEV__) {\r\n console.error('Graph nodes have duplicate name or id');\r\n }\r\n return;\r\n }\r\n var node = new GraphNode(id, dataIndex);\r\n node.hostGraph = this;\r\n this.nodes.push(node);\r\n nodesMap[generateNodeKey(id)] = node;\r\n return node;\r\n };\r\n Graph.prototype.getNodeByIndex = function (dataIndex) {\r\n var rawIdx = this.data.getRawIndex(dataIndex);\r\n return this.nodes[rawIdx];\r\n };\r\n Graph.prototype.getNodeById = function (id) {\r\n return this._nodesMap[generateNodeKey(id)];\r\n };\r\n Graph.prototype.addEdge = function (n1, n2, dataIndex) {\r\n var nodesMap = this._nodesMap;\r\n var edgesMap = this._edgesMap;\r\n if (typeof n1 === 'number') {\r\n n1 = this.nodes[n1];\r\n }\r\n if (typeof n2 === 'number') {\r\n n2 = this.nodes[n2];\r\n }\r\n if (!(n1 instanceof GraphNode)) {\r\n n1 = nodesMap[generateNodeKey(n1)];\r\n }\r\n if (!(n2 instanceof GraphNode)) {\r\n n2 = nodesMap[generateNodeKey(n2)];\r\n }\r\n if (!n1 || !n2) {\r\n return;\r\n }\r\n var key = n1.id + '-' + n2.id;\r\n if (edgesMap[key]) {\r\n return;\r\n }\r\n var edge = new GraphEdge(n1, n2, dataIndex);\r\n edge.hostGraph = this;\r\n if (this._directed) {\r\n n1.outEdges.push(edge);\r\n n2.inEdges.push(edge);\r\n }\r\n n1.edges.push(edge);\r\n if (n1 !== n2) {\r\n n2.edges.push(edge);\r\n }\r\n this.edges.push(edge);\r\n edgesMap[key] = edge;\r\n return edge;\r\n };\r\n Graph.prototype.getEdgeByIndex = function (dataIndex) {\r\n var rawIdx = this.edgeData.getRawIndex(dataIndex);\r\n return this.edges[rawIdx];\r\n };\r\n Graph.prototype.getEdge = function (n1, n2) {\r\n if (n1 instanceof GraphNode) {\r\n n1 = n1.id;\r\n }\r\n if (n2 instanceof GraphNode) {\r\n n2 = n2.id;\r\n }\r\n var edgesMap = this._edgesMap;\r\n if (this._directed) {\r\n return edgesMap[n1 + '-' + n2];\r\n }\r\n else {\r\n return edgesMap[n1 + '-' + n2]\r\n || edgesMap[n2 + '-' + n1];\r\n }\r\n };\r\n Graph.prototype.eachNode = function (cb, context) {\r\n var nodes = this.nodes;\r\n var len = nodes.length;\r\n for (var i = 0; i < len; i++) {\r\n if (nodes[i].dataIndex >= 0) {\r\n cb.call(context, nodes[i], i);\r\n }\r\n }\r\n };\r\n Graph.prototype.eachEdge = function (cb, context) {\r\n var edges = this.edges;\r\n var len = edges.length;\r\n for (var i = 0; i < len; i++) {\r\n if (edges[i].dataIndex >= 0\r\n && edges[i].node1.dataIndex >= 0\r\n && edges[i].node2.dataIndex >= 0) {\r\n cb.call(context, edges[i], i);\r\n }\r\n }\r\n };\r\n Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\r\n if (!(startNode instanceof GraphNode)) {\r\n startNode = this._nodesMap[generateNodeKey(startNode)];\r\n }\r\n if (!startNode) {\r\n return;\r\n }\r\n var edgeType = direction === 'out'\r\n ? 'outEdges' : (direction === 'in' ? 'inEdges' : 'edges');\r\n for (var i = 0; i < this.nodes.length; i++) {\r\n this.nodes[i].__visited = false;\r\n }\r\n if (cb.call(context, startNode, null)) {\r\n return;\r\n }\r\n var queue = [startNode];\r\n while (queue.length) {\r\n var currentNode = queue.shift();\r\n var edges = currentNode[edgeType];\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n var otherNode = e.node1 === currentNode\r\n ? e.node2 : e.node1;\r\n if (!otherNode.__visited) {\r\n if (cb.call(context, otherNode, currentNode)) {\r\n return;\r\n }\r\n queue.push(otherNode);\r\n otherNode.__visited = true;\r\n }\r\n }\r\n }\r\n };\r\n Graph.prototype.update = function () {\r\n var data = this.data;\r\n var edgeData = this.edgeData;\r\n var nodes = this.nodes;\r\n var edges = this.edges;\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n nodes[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n nodes[data.getRawIndex(i)].dataIndex = i;\r\n }\r\n edgeData.filterSelf(function (idx) {\r\n var edge = edges[edgeData.getRawIndex(idx)];\r\n return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\r\n });\r\n for (var i = 0, len = edges.length; i < len; i++) {\r\n edges[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = edgeData.count(); i < len; i++) {\r\n edges[edgeData.getRawIndex(i)].dataIndex = i;\r\n }\r\n };\r\n Graph.prototype.clone = function () {\r\n var graph = new Graph(this._directed);\r\n var nodes = this.nodes;\r\n var edges = this.edges;\r\n for (var i = 0; i < nodes.length; i++) {\r\n graph.addNode(nodes[i].id, nodes[i].dataIndex);\r\n }\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\r\n }\r\n return graph;\r\n };\r\n return Graph;\r\n }());\r\n var GraphNode = (function () {\r\n function GraphNode(id, dataIndex) {\r\n this.inEdges = [];\r\n this.outEdges = [];\r\n this.edges = [];\r\n this.dataIndex = -1;\r\n this.id = id == null ? '' : id;\r\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\r\n }\r\n GraphNode.prototype.degree = function () {\r\n return this.edges.length;\r\n };\r\n GraphNode.prototype.inDegree = function () {\r\n return this.inEdges.length;\r\n };\r\n GraphNode.prototype.outDegree = function () {\r\n return this.outEdges.length;\r\n };\r\n GraphNode.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var graph = this.hostGraph;\r\n var itemModel = graph.data.getItemModel(this.dataIndex);\r\n return itemModel.getModel(path);\r\n };\r\n GraphNode.prototype.getAdjacentDataIndices = function () {\r\n var dataIndices = {\r\n edge: [],\r\n node: []\r\n };\r\n for (var i = 0; i < this.edges.length; i++) {\r\n var adjacentEdge = this.edges[i];\r\n if (adjacentEdge.dataIndex < 0) {\r\n continue;\r\n }\r\n dataIndices.edge.push(adjacentEdge.dataIndex);\r\n dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\r\n }\r\n return dataIndices;\r\n };\r\n return GraphNode;\r\n }());\r\n var GraphEdge = (function () {\r\n function GraphEdge(n1, n2, dataIndex) {\r\n this.dataIndex = -1;\r\n this.node1 = n1;\r\n this.node2 = n2;\r\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\r\n }\r\n GraphEdge.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var graph = this.hostGraph;\r\n var itemModel = graph.edgeData.getItemModel(this.dataIndex);\r\n return itemModel.getModel(path);\r\n };\r\n GraphEdge.prototype.getAdjacentDataIndices = function () {\r\n return {\r\n edge: [this.dataIndex],\r\n node: [this.node1.dataIndex, this.node2.dataIndex]\r\n };\r\n };\r\n return GraphEdge;\r\n }());\r\n function createGraphDataProxyMixin(hostName, dataName) {\r\n return {\r\n getValue: function (dimension) {\r\n var data = this[hostName][dataName];\r\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\r\n },\r\n setVisual: function (key, value) {\r\n this.dataIndex >= 0\r\n && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\r\n },\r\n getVisual: function (key) {\r\n return this[hostName][dataName].getItemVisual(this.dataIndex, key);\r\n },\r\n setLayout: function (layout, merge) {\r\n this.dataIndex >= 0\r\n && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\r\n },\r\n getLayout: function () {\r\n return this[hostName][dataName].getItemLayout(this.dataIndex);\r\n },\r\n getGraphicEl: function () {\r\n return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\r\n },\r\n getRawIndex: function () {\r\n return this[hostName][dataName].getRawIndex(this.dataIndex);\r\n }\r\n };\r\n }\r\n mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\r\n mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\n\n function createGraphFromNodeEdge (nodes, edges, seriesModel, directed, beforeLink) {\r\n var graph = new Graph(directed);\r\n for (var i = 0; i < nodes.length; i++) {\r\n graph.addNode(retrieve(nodes[i].id, nodes[i].name, i), i);\r\n }\r\n var linkNameList = [];\r\n var validEdges = [];\r\n var linkCount = 0;\r\n for (var i = 0; i < edges.length; i++) {\r\n var link = edges[i];\r\n var source = link.source;\r\n var target = link.target;\r\n if (graph.addEdge(source, target, linkCount)) {\r\n validEdges.push(link);\r\n linkNameList.push(retrieve(link.id != null ? link.id + '' : null, source + ' > ' + target));\r\n linkCount++;\r\n }\r\n }\r\n var coordSys = seriesModel.get('coordinateSystem');\r\n var nodeData;\r\n if (coordSys === 'cartesian2d' || coordSys === 'polar') {\r\n nodeData = createListFromArray(nodes, seriesModel);\r\n }\r\n else {\r\n var coordSysCtor = CoordinateSystemManager.get(coordSys);\r\n var coordDimensions = coordSysCtor\r\n ? (coordSysCtor.dimensions || []) : [];\r\n if (indexOf(coordDimensions, 'value') < 0) {\r\n coordDimensions.concat(['value']);\r\n }\r\n var dimensionNames = createDimensions(nodes, {\r\n coordDimensions: coordDimensions\r\n });\r\n nodeData = new List(dimensionNames, seriesModel);\r\n nodeData.initData(nodes);\r\n }\r\n var edgeData = new List(['value'], seriesModel);\r\n edgeData.initData(validEdges, linkNameList);\r\n beforeLink && beforeLink(nodeData, edgeData);\r\n linkList({\r\n mainData: nodeData,\r\n struct: graph,\r\n structAttr: 'graph',\r\n datas: { node: nodeData, edge: edgeData },\r\n datasAttr: { node: 'data', edge: 'edgeData' }\r\n });\r\n graph.update();\r\n return graph;\r\n }\n\n var GraphSeriesModel = (function (_super) {\r\n __extends(GraphSeriesModel, _super);\r\n function GraphSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n GraphSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n var self = this;\r\n function getCategoriesData() {\r\n return self._categoriesData;\r\n }\r\n this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\r\n this.fillDataTextStyle(option.edges || option.links);\r\n this._updateCategoriesData();\r\n };\r\n GraphSeriesModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n this.fillDataTextStyle(option.edges || option.links);\r\n this._updateCategoriesData();\r\n };\r\n GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\r\n _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\r\n defaultEmphasis(option, 'edgeLabel', ['show']);\r\n };\r\n GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var edges = option.edges || option.links || [];\r\n var nodes = option.data || option.nodes || [];\r\n var self = this;\r\n if (nodes && edges) {\r\n return createGraphFromNodeEdge(nodes, edges, this, true, beforeLink).data;\r\n }\r\n function beforeLink(nodeData, edgeData) {\r\n nodeData.wrapMethod('getItemModel', function (model) {\r\n var categoriesModels = self._categoriesModels;\r\n var categoryIdx = model.getShallow('category');\r\n var categoryModel = categoriesModels[categoryIdx];\r\n if (categoryModel) {\r\n categoryModel.parentModel = model.parentModel;\r\n model.parentModel = categoryModel;\r\n }\r\n return model;\r\n });\r\n var oldGetModel = Model.prototype.getModel;\r\n function newGetModel(path, parentModel) {\r\n var model = oldGetModel.call(this, path, parentModel);\r\n model.resolveParentPath = resolveParentPath;\r\n return model;\r\n }\r\n edgeData.wrapMethod('getItemModel', function (model) {\r\n model.resolveParentPath = resolveParentPath;\r\n model.getModel = newGetModel;\r\n return model;\r\n });\r\n function resolveParentPath(pathArr) {\r\n if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\r\n var newPathArr = pathArr.slice();\r\n if (pathArr[0] === 'label') {\r\n newPathArr[0] = 'edgeLabel';\r\n }\r\n else if (pathArr[1] === 'label') {\r\n newPathArr[1] = 'edgeLabel';\r\n }\r\n return newPathArr;\r\n }\r\n return pathArr;\r\n }\r\n }\r\n };\r\n GraphSeriesModel.prototype.getGraph = function () {\r\n return this.getData().graph;\r\n };\r\n GraphSeriesModel.prototype.getEdgeData = function () {\r\n return this.getGraph().edgeData;\r\n };\r\n GraphSeriesModel.prototype.getCategoriesData = function () {\r\n return this._categoriesData;\r\n };\r\n GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n if (dataType === 'edge') {\r\n var nodeData = this.getData();\r\n var params = this.getDataParams(dataIndex, dataType);\r\n var edge = nodeData.graph.getEdgeByIndex(dataIndex);\r\n var sourceName = nodeData.getName(edge.node1.dataIndex);\r\n var targetName = nodeData.getName(edge.node2.dataIndex);\r\n var html = [];\r\n sourceName != null && html.push(sourceName);\r\n targetName != null && html.push(targetName);\r\n var htmlStr = encodeHTML(html.join(' > '));\r\n if (params.value) {\r\n htmlStr += ' : ' + encodeHTML(params.value);\r\n }\r\n return htmlStr;\r\n }\r\n else {\r\n return _super.prototype.formatTooltip.apply(this, arguments);\r\n }\r\n };\r\n GraphSeriesModel.prototype._updateCategoriesData = function () {\r\n var categories = map(this.option.categories || [], function (category) {\r\n return category.value != null ? category : extend({\r\n value: 0\r\n }, category);\r\n });\r\n var categoriesData = new List(['value'], this);\r\n categoriesData.initData(categories);\r\n this._categoriesData = categoriesData;\r\n this._categoriesModels = categoriesData.mapArray(function (idx) {\r\n return categoriesData.getItemModel(idx);\r\n });\r\n };\r\n GraphSeriesModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n GraphSeriesModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n GraphSeriesModel.prototype.isAnimationEnabled = function () {\r\n return _super.prototype.isAnimationEnabled.call(this)\r\n && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\r\n };\r\n GraphSeriesModel.type = 'series.graph';\r\n GraphSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n legendHoverLink: true,\r\n layout: null,\r\n focusNodeAdjacency: false,\r\n circular: {\r\n rotateLabel: false\r\n },\r\n force: {\r\n initLayout: null,\r\n repulsion: [0, 50],\r\n gravity: 0.1,\r\n friction: 0.6,\r\n edgeLength: 30,\r\n layoutAnimation: true\r\n },\r\n left: 'center',\r\n top: 'center',\r\n symbol: 'circle',\r\n symbolSize: 10,\r\n edgeSymbol: ['none', 'none'],\r\n edgeSymbolSize: 10,\r\n edgeLabel: {\r\n position: 'middle',\r\n distance: 5\r\n },\r\n draggable: false,\r\n roam: false,\r\n center: null,\r\n zoom: 1,\r\n nodeScaleRatio: 0.6,\r\n label: {\r\n show: false,\r\n formatter: '{b}'\r\n },\r\n itemStyle: {},\r\n lineStyle: {\r\n color: '#aaa',\r\n width: 1,\r\n curveness: 0,\r\n opacity: 0.5\r\n },\r\n emphasis: {\r\n scale: true,\r\n label: {\r\n show: true\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return GraphSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(GraphSeriesModel);\n\n var straightLineProto = Line.prototype;\r\n var bezierCurveProto = BezierCurve.prototype;\r\n var StraightLineShape = (function () {\r\n function StraightLineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return StraightLineShape;\r\n }());\r\n var CurveShape = (function (_super) {\r\n __extends(CurveShape, _super);\r\n function CurveShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return CurveShape;\r\n }(StraightLineShape));\r\n function isStraightLine(shape) {\r\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\r\n }\r\n var ECLinePath = (function (_super) {\r\n __extends(ECLinePath, _super);\r\n function ECLinePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-line';\r\n return _this;\r\n }\r\n ECLinePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECLinePath.prototype.getDefaultShape = function () {\r\n return new StraightLineShape();\r\n };\r\n ECLinePath.prototype.buildPath = function (ctx, shape) {\r\n if (isStraightLine(shape)) {\r\n straightLineProto.buildPath.call(this, ctx, shape);\r\n }\r\n else {\r\n bezierCurveProto.buildPath.call(this, ctx, shape);\r\n }\r\n };\r\n ECLinePath.prototype.pointAt = function (t) {\r\n if (isStraightLine(this.shape)) {\r\n return straightLineProto.pointAt.call(this, t);\r\n }\r\n else {\r\n return bezierCurveProto.pointAt.call(this, t);\r\n }\r\n };\r\n ECLinePath.prototype.tangentAt = function (t) {\r\n var shape = this.shape;\r\n var p = isStraightLine(shape)\r\n ? [shape.x2 - shape.x1, shape.y2 - shape.y1]\r\n : bezierCurveProto.tangentAt.call(this, t);\r\n return normalize(p, p);\r\n };\r\n return ECLinePath;\r\n }(Path));\n\n var SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\r\n function makeSymbolTypeKey(symbolCategory) {\r\n return '_' + symbolCategory + 'Type';\r\n }\r\n function createSymbol$1(name, lineData, idx) {\r\n var symbolType = lineData.getItemVisual(idx, name);\r\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\r\n if (!symbolType || symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSizeArr = isArray(symbolSize)\r\n ? symbolSize : [symbolSize, symbolSize];\r\n var symbolPath = createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\r\n symbolPath.name = name;\r\n return symbolPath;\r\n }\r\n function createLine(points) {\r\n var line = new ECLinePath({\r\n name: 'line',\r\n subPixelOptimize: true\r\n });\r\n setLinePoints(line.shape, points);\r\n return line;\r\n }\r\n function setLinePoints(targetShape, points) {\r\n targetShape.x1 = points[0][0];\r\n targetShape.y1 = points[0][1];\r\n targetShape.x2 = points[1][0];\r\n targetShape.y2 = points[1][1];\r\n targetShape.percent = 1;\r\n var cp1 = points[2];\r\n if (cp1) {\r\n targetShape.cpx1 = cp1[0];\r\n targetShape.cpy1 = cp1[1];\r\n }\r\n else {\r\n targetShape.cpx1 = NaN;\r\n targetShape.cpy1 = NaN;\r\n }\r\n }\r\n var Line$1 = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createLine(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var linePoints = lineData.getItemLayout(idx);\r\n var line = createLine(linePoints);\r\n line.shape.percent = 0;\r\n initProps(line, {\r\n shape: {\r\n percent: 1\r\n }\r\n }, seriesModel, idx);\r\n this.add(line);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var linePoints = lineData.getItemLayout(idx);\r\n var target = {\r\n shape: {}\r\n };\r\n setLinePoints(target.shape, linePoints);\r\n updateProps(line, target, seriesModel, idx);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\r\n var key = makeSymbolTypeKey(symbolCategory);\r\n if (this[key] !== symbolType) {\r\n this.remove(this.childOfName(symbolCategory));\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n }\r\n this[key] = symbolType;\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.getLinePath = function () {\r\n return this.childAt(0);\r\n };\r\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\r\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\r\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n var itemModel = lineData.getItemModel(idx);\r\n emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\r\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var visualColor = lineStyle.stroke;\r\n line.useStyle(lineStyle);\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n line.ensureState('emphasis').style = emphasisLineStyle;\r\n line.ensureState('blur').style = blurLineStyle;\r\n line.ensureState('select').style = selectLineStyle;\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = this.childOfName(symbolCategory);\r\n if (symbol) {\r\n symbol.setColor(visualColor);\r\n symbol.style.opacity = lineStyle.opacity;\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var lineState = line.getState(stateName);\r\n if (lineState) {\r\n var lineStateStyle = lineState.style || {};\r\n var state = symbol.ensureState(stateName);\r\n var stateStyle = state.style || (state.style = {});\r\n if (lineStateStyle.stroke != null) {\r\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\r\n }\r\n if (lineStateStyle.opacity != null) {\r\n stateStyle.opacity = lineStateStyle.opacity;\r\n }\r\n }\r\n }\r\n symbol.markRedraw();\r\n }\r\n }, this);\r\n var rawVal = seriesModel.getRawValue(idx);\r\n setLabelStyle(this, labelStatesModels, {\r\n labelDataIndex: idx,\r\n labelFetcher: {\r\n getFormattedLabel: function (dataIndex, stateName) {\r\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\r\n }\r\n },\r\n inheritColor: visualColor || '#000',\r\n defaultText: (rawVal == null\r\n ? lineData.getName(idx)\r\n : isFinite(rawVal)\r\n ? round$1(rawVal)\r\n : rawVal) + ''\r\n });\r\n var label = this.getTextContent();\r\n if (label) {\r\n var labelNormalModel = labelStatesModels.normal;\r\n label.__align = label.style.align;\r\n label.__verticalAlign = label.style.verticalAlign;\r\n label.__position = labelNormalModel.get('position') || 'middle';\r\n var distance = labelNormalModel.get('distance');\r\n if (!isArray(distance)) {\r\n distance = [distance, distance];\r\n }\r\n label.__labelDistance = distance;\r\n }\r\n this.setTextConfig({\r\n position: null,\r\n local: true,\r\n inside: false\r\n });\r\n enableHoverEmphasis(this);\r\n };\r\n Line.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n Line.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n Line.prototype.updateLayout = function (lineData, idx) {\r\n this.setLinePoints(lineData.getItemLayout(idx));\r\n };\r\n Line.prototype.setLinePoints = function (points) {\r\n var linePath = this.childOfName('line');\r\n setLinePoints(linePath.shape, points);\r\n linePath.dirty();\r\n };\r\n Line.prototype.beforeUpdate = function () {\r\n var lineGroup = this;\r\n var symbolFrom = lineGroup.childOfName('fromSymbol');\r\n var symbolTo = lineGroup.childOfName('toSymbol');\r\n var label = lineGroup.getTextContent();\r\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\r\n return;\r\n }\r\n var invScale = 1;\r\n var parentNode = this.parent;\r\n while (parentNode) {\r\n if (parentNode.scaleX) {\r\n invScale /= parentNode.scaleX;\r\n }\r\n parentNode = parentNode.parent;\r\n }\r\n var line = lineGroup.childOfName('line');\r\n if (!this.__dirty && !line.__dirty) {\r\n return;\r\n }\r\n var percent = line.shape.percent;\r\n var fromPos = line.pointAt(0);\r\n var toPos = line.pointAt(percent);\r\n var d = sub([], toPos, fromPos);\r\n normalize(d, d);\r\n if (symbolFrom) {\r\n symbolFrom.setPosition(fromPos);\r\n var tangent = line.tangentAt(0);\r\n symbolFrom.rotation = Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\r\n symbolFrom.markRedraw();\r\n }\r\n if (symbolTo) {\r\n symbolTo.setPosition(toPos);\r\n var tangent = line.tangentAt(1);\r\n symbolTo.rotation = -Math.PI / 2 - Math.atan2(tangent[1], tangent[0]);\r\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\r\n symbolTo.markRedraw();\r\n }\r\n if (label && !label.ignore) {\r\n label.x = label.y = 0;\r\n label.originX = label.originY = 0;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var distance = label.__labelDistance;\r\n var distanceX = distance[0] * invScale;\r\n var distanceY = distance[1] * invScale;\r\n var halfPercent = percent / 2;\r\n var tangent = line.tangentAt(halfPercent);\r\n var n = [tangent[1], -tangent[0]];\r\n var cp = line.pointAt(halfPercent);\r\n if (n[1] > 0) {\r\n n[0] = -n[0];\r\n n[1] = -n[1];\r\n }\r\n var dir = tangent[0] < 0 ? -1 : 1;\r\n if (label.__position !== 'start' && label.__position !== 'end') {\r\n var rotation = -Math.atan2(tangent[1], tangent[0]);\r\n if (toPos[0] < fromPos[0]) {\r\n rotation = Math.PI + rotation;\r\n }\r\n label.rotation = rotation;\r\n }\r\n var dy = void 0;\r\n switch (label.__position) {\r\n case 'insideStartTop':\r\n case 'insideMiddleTop':\r\n case 'insideEndTop':\r\n case 'middle':\r\n dy = -distanceY;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideStartBottom':\r\n case 'insideMiddleBottom':\r\n case 'insideEndBottom':\r\n dy = distanceY;\r\n textVerticalAlign = 'top';\r\n break;\r\n default:\r\n dy = 0;\r\n textVerticalAlign = 'middle';\r\n }\r\n switch (label.__position) {\r\n case 'end':\r\n label.x = d[0] * distanceX + toPos[0];\r\n label.y = d[1] * distanceY + toPos[1];\r\n textAlign = d[0] > 0.8 ? 'left' : (d[0] < -0.8 ? 'right' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'top' : (d[1] < -0.8 ? 'bottom' : 'middle');\r\n break;\r\n case 'start':\r\n label.x = -d[0] * distanceX + fromPos[0];\r\n label.y = -d[1] * distanceY + fromPos[1];\r\n textAlign = d[0] > 0.8 ? 'right' : (d[0] < -0.8 ? 'left' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : (d[1] < -0.8 ? 'top' : 'middle');\r\n break;\r\n case 'insideStartTop':\r\n case 'insideStart':\r\n case 'insideStartBottom':\r\n label.x = distanceX * dir + fromPos[0];\r\n label.y = fromPos[1] + dy;\r\n textAlign = tangent[0] < 0 ? 'right' : 'left';\r\n label.originX = -distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n case 'insideMiddleTop':\r\n case 'insideMiddle':\r\n case 'insideMiddleBottom':\r\n case 'middle':\r\n label.x = cp[0];\r\n label.y = cp[1] + dy;\r\n textAlign = 'center';\r\n label.originY = -dy;\r\n break;\r\n case 'insideEndTop':\r\n case 'insideEnd':\r\n case 'insideEndBottom':\r\n label.x = -distanceX * dir + toPos[0];\r\n label.y = toPos[1] + dy;\r\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\r\n label.originX = distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n }\r\n label.scaleX = label.scaleY = invScale;\r\n label.setStyle({\r\n verticalAlign: label.__verticalAlign || textVerticalAlign,\r\n align: label.__align || textAlign\r\n });\r\n }\r\n };\r\n return Line;\r\n }(Group));\n\n var LineDraw = (function () {\r\n function LineDraw(LineCtor) {\r\n this.group = new Group();\r\n this._LineCtor = LineCtor || Line$1;\r\n }\r\n LineDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n LineDraw.prototype.updateData = function (lineData) {\r\n var _this = this;\r\n var lineDraw = this;\r\n var group = lineDraw.group;\r\n var oldLineData = lineDraw._lineData;\r\n lineDraw._lineData = lineData;\r\n if (!oldLineData) {\r\n group.removeAll();\r\n }\r\n var seriesScope = makeSeriesScope$1(lineData);\r\n lineData.diff(oldLineData)\r\n .add(function (idx) {\r\n _this._doAdd(lineData, idx, seriesScope);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldLineData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n };\r\n LineDraw.prototype.updateLayout = function () {\r\n var lineData = this._lineData;\r\n if (!lineData) {\r\n return;\r\n }\r\n lineData.eachItemGraphicEl(function (el, idx) {\r\n el.updateLayout(lineData, idx);\r\n }, this);\r\n };\r\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\r\n this._seriesScope = makeSeriesScope$1(lineData);\r\n this._lineData = null;\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup && !isEffectObject(el)) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (lineNeedsDraw(itemLayout)) {\r\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n this.group.add(el);\r\n lineData.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n LineDraw.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (!lineNeedsDraw(itemLayout)) {\r\n return;\r\n }\r\n var el = new this._LineCtor(lineData, idx, seriesScope);\r\n lineData.setItemGraphicEl(idx, el);\r\n this.group.add(el);\r\n };\r\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\r\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\r\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\r\n this.group.remove(itemEl);\r\n return;\r\n }\r\n if (!itemEl) {\r\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\r\n }\r\n else {\r\n itemEl.updateData(newLineData, newIdx, seriesScope);\r\n }\r\n newLineData.setItemGraphicEl(newIdx, itemEl);\r\n this.group.add(itemEl);\r\n };\r\n return LineDraw;\r\n }());\r\n function isEffectObject(el) {\r\n return el.animators && el.animators.length > 0;\r\n }\r\n function makeSeriesScope$1(lineData) {\r\n var hostModel = lineData.hostModel;\r\n return {\r\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\r\n emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\r\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\r\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\r\n labelStatesModels: getLabelStatesModels(hostModel)\r\n };\r\n }\r\n function isPointNaN(pt) {\r\n return isNaN(pt[0]) || isNaN(pt[1]);\r\n }\r\n function lineNeedsDraw(pts) {\r\n return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\r\n }\n\n function getNodeGlobalScale(seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type !== 'view') {\r\n return 1;\r\n }\r\n var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\r\n var groupZoom = coordSys.scaleX;\r\n var roamZoom = coordSys.getZoom();\r\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\r\n return nodeScale / groupZoom;\r\n }\r\n function getSymbolSize(node) {\r\n var symbolSize = node.getVisual('symbolSize');\r\n if (symbolSize instanceof Array) {\r\n symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\r\n }\r\n return +symbolSize;\r\n }\n\n var v1 = [];\r\n var v2 = [];\r\n var v3 = [];\r\n var quadraticAt$1 = quadraticAt;\r\n var v2DistSquare = distSquare;\r\n var mathAbs$1 = Math.abs;\r\n function intersectCurveCircle(curvePoints, center, radius) {\r\n var p0 = curvePoints[0];\r\n var p1 = curvePoints[1];\r\n var p2 = curvePoints[2];\r\n var d = Infinity;\r\n var t;\r\n var radiusSquare = radius * radius;\r\n var interval = 0.1;\r\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\r\n v1[0] = quadraticAt$1(p0[0], p1[0], p2[0], _t);\r\n v1[1] = quadraticAt$1(p0[1], p1[1], p2[1], _t);\r\n var diff = mathAbs$1(v2DistSquare(v1, center) - radiusSquare);\r\n if (diff < d) {\r\n d = diff;\r\n t = _t;\r\n }\r\n }\r\n for (var i = 0; i < 32; i++) {\r\n var next = t + interval;\r\n v2[0] = quadraticAt$1(p0[0], p1[0], p2[0], t);\r\n v2[1] = quadraticAt$1(p0[1], p1[1], p2[1], t);\r\n v3[0] = quadraticAt$1(p0[0], p1[0], p2[0], next);\r\n v3[1] = quadraticAt$1(p0[1], p1[1], p2[1], next);\r\n var diff = v2DistSquare(v2, center) - radiusSquare;\r\n if (mathAbs$1(diff) < 1e-2) {\r\n break;\r\n }\r\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\r\n interval /= 2;\r\n if (diff < 0) {\r\n if (nextDiff >= 0) {\r\n t = t + interval;\r\n }\r\n else {\r\n t = t - interval;\r\n }\r\n }\r\n else {\r\n if (nextDiff >= 0) {\r\n t = t - interval;\r\n }\r\n else {\r\n t = t + interval;\r\n }\r\n }\r\n }\r\n return t;\r\n }\r\n function adjustEdge (graph, scale) {\r\n var tmp0 = [];\r\n var quadraticSubdivide$1 = quadraticSubdivide;\r\n var pts = [[], [], []];\r\n var pts2 = [[], []];\r\n var v = [];\r\n scale /= 2;\r\n graph.eachEdge(function (edge, idx) {\r\n var linePoints = edge.getLayout();\r\n var fromSymbol = edge.getVisual('fromSymbol');\r\n var toSymbol = edge.getVisual('toSymbol');\r\n if (!linePoints.__original) {\r\n linePoints.__original = [\r\n clone$1(linePoints[0]),\r\n clone$1(linePoints[1])\r\n ];\r\n if (linePoints[2]) {\r\n linePoints.__original.push(clone$1(linePoints[2]));\r\n }\r\n }\r\n var originalPoints = linePoints.__original;\r\n if (linePoints[2] != null) {\r\n copy(pts[0], originalPoints[0]);\r\n copy(pts[1], originalPoints[2]);\r\n copy(pts[2], originalPoints[1]);\r\n if (fromSymbol && fromSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node1);\r\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\r\n quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\r\n pts[0][0] = tmp0[3];\r\n pts[1][0] = tmp0[4];\r\n quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\r\n pts[0][1] = tmp0[3];\r\n pts[1][1] = tmp0[4];\r\n }\r\n if (toSymbol && toSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node2);\r\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\r\n quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\r\n pts[1][0] = tmp0[1];\r\n pts[2][0] = tmp0[2];\r\n quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\r\n pts[1][1] = tmp0[1];\r\n pts[2][1] = tmp0[2];\r\n }\r\n copy(linePoints[0], pts[0]);\r\n copy(linePoints[1], pts[2]);\r\n copy(linePoints[2], pts[1]);\r\n }\r\n else {\r\n copy(pts2[0], originalPoints[0]);\r\n copy(pts2[1], originalPoints[1]);\r\n sub(v, pts2[1], pts2[0]);\r\n normalize(v, v);\r\n if (fromSymbol && fromSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node1);\r\n scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\r\n }\r\n if (toSymbol && toSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node2);\r\n scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\r\n }\r\n copy(linePoints[0], pts2[0]);\r\n copy(linePoints[1], pts2[1]);\r\n }\r\n });\r\n }\n\n function isViewCoordSys(coordSys) {\r\n return coordSys.type === 'view';\r\n }\r\n var GraphView = (function (_super) {\r\n __extends(GraphView, _super);\r\n function GraphView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphView.type;\r\n return _this;\r\n }\r\n GraphView.prototype.init = function (ecModel, api) {\r\n var symbolDraw = new SymbolDraw();\r\n var lineDraw = new LineDraw();\r\n var group = this.group;\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = {\r\n target: group\r\n };\r\n group.add(symbolDraw.group);\r\n group.add(lineDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineDraw = lineDraw;\r\n this._firstRender = true;\r\n };\r\n GraphView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n this._model = seriesModel;\r\n var symbolDraw = this._symbolDraw;\r\n var lineDraw = this._lineDraw;\r\n var group = this.group;\r\n if (isViewCoordSys(coordSys)) {\r\n var groupNewProp = {\r\n x: coordSys.x, y: coordSys.y,\r\n scaleX: coordSys.scaleX, scaleY: coordSys.scaleY\r\n };\r\n if (this._firstRender) {\r\n group.attr(groupNewProp);\r\n }\r\n else {\r\n updateProps(group, groupNewProp, seriesModel);\r\n }\r\n }\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n var data = seriesModel.getData();\r\n symbolDraw.updateData(data);\r\n var edgeData = seriesModel.getEdgeData();\r\n lineDraw.updateData(edgeData);\r\n this._updateNodeAndLinkScale();\r\n this._updateController(seriesModel, ecModel, api);\r\n clearTimeout(this._layoutTimeout);\r\n var forceLayout = seriesModel.forceLayout;\r\n var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\r\n if (forceLayout) {\r\n this._startForceLayoutIteration(forceLayout, layoutAnimation);\r\n }\r\n data.graph.eachNode(function (node) {\r\n var idx = node.dataIndex;\r\n var el = node.getGraphicEl();\r\n var itemModel = node.getModel();\r\n el.off('drag').off('dragend');\r\n var draggable = itemModel.get('draggable');\r\n if (draggable) {\r\n el.on('drag', function () {\r\n if (forceLayout) {\r\n forceLayout.warmUp();\r\n !_this._layouting\r\n && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\r\n forceLayout.setFixed(idx);\r\n data.setItemLayout(idx, [el.x, el.y]);\r\n }\r\n }).on('dragend', function () {\r\n if (forceLayout) {\r\n forceLayout.setUnfixed(idx);\r\n }\r\n });\r\n }\r\n el.setDraggable(draggable && !!forceLayout);\r\n var focus = itemModel.get(['emphasis', 'focus']);\r\n if (focus === 'adjacency') {\r\n getECData(el).focus = node.getAdjacentDataIndices();\r\n }\r\n });\r\n data.graph.eachEdge(function (edge) {\r\n var el = edge.getGraphicEl();\r\n var focus = edge.getModel().get(['emphasis', 'focus']);\r\n if (focus === 'adjacency') {\r\n getECData(el).focus = {\r\n edge: [edge.dataIndex],\r\n node: [edge.node1.dataIndex, edge.node2.dataIndex]\r\n };\r\n }\r\n });\r\n var circularRotateLabel = seriesModel.get('layout') === 'circular'\r\n && seriesModel.get(['circular', 'rotateLabel']);\r\n var cx = data.getLayout('cx');\r\n var cy = data.getLayout('cy');\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var labelRotate = itemModel.get(['label', 'rotate']) || 0;\r\n var symbolPath = el.getSymbolPath();\r\n if (circularRotateLabel) {\r\n var pos = data.getItemLayout(idx);\r\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n var isLeft = pos[0] < cx;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n var textPosition = isLeft ? 'left' : 'right';\r\n symbolPath.setTextConfig({\r\n rotation: -rad,\r\n position: textPosition,\r\n origin: 'center'\r\n });\r\n var emphasisState = symbolPath.ensureState('emphasis');\r\n extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\r\n position: textPosition\r\n });\r\n }\r\n else {\r\n symbolPath.setTextConfig({\r\n rotation: labelRotate *= Math.PI / 180\r\n });\r\n }\r\n });\r\n this._firstRender = false;\r\n };\r\n GraphView.prototype.dispose = function () {\r\n this._controller && this._controller.dispose();\r\n this._controllerHost = null;\r\n };\r\n GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\r\n var self = this;\r\n (function step() {\r\n forceLayout.step(function (stopped) {\r\n self.updateLayout(self._model);\r\n (self._layouting = !stopped) && (layoutAnimation\r\n ? (self._layoutTimeout = setTimeout(step, 16))\r\n : step());\r\n });\r\n })();\r\n };\r\n GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n var group = this.group;\r\n controller.setPointerChecker(function (e, x, y) {\r\n var rect = group.getBoundingRect();\r\n rect.applyTransform(group.transform);\r\n return rect.contain(x, y)\r\n && !onIrrelevantElement(e, api, seriesModel);\r\n });\r\n if (!isViewCoordSys(seriesModel.coordinateSystem)) {\r\n controller.disable();\r\n return;\r\n }\r\n controller.enable(seriesModel.get('roam'));\r\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\r\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\r\n controller\r\n .off('pan')\r\n .off('zoom')\r\n .on('pan', function (e) {\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'graphRoam',\r\n dx: e.dx,\r\n dy: e.dy\r\n });\r\n })\r\n .on('zoom', function (e) {\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'graphRoam',\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n });\r\n _this._updateNodeAndLinkScale();\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n _this._lineDraw.updateLayout();\r\n api.updateLabelLayout();\r\n });\r\n };\r\n GraphView.prototype._updateNodeAndLinkScale = function () {\r\n var seriesModel = this._model;\r\n var data = seriesModel.getData();\r\n var nodeScale = getNodeGlobalScale(seriesModel);\r\n data.eachItemGraphicEl(function (el, idx) {\r\n el.setSymbolScale(nodeScale);\r\n });\r\n };\r\n GraphView.prototype.updateLayout = function (seriesModel) {\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n this._symbolDraw.updateLayout();\r\n this._lineDraw.updateLayout();\r\n };\r\n GraphView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove();\r\n this._lineDraw && this._lineDraw.remove();\r\n };\r\n GraphView.type = 'graph';\r\n return GraphView;\r\n }(ChartView));\r\n ChartView.registerClass(GraphView);\n\n registerAction({\r\n type: 'focusNodeAdjacency',\r\n event: 'focusNodeAdjacency',\r\n update: 'series:focusNodeAdjacency'\r\n }, function () { });\r\n registerAction({\r\n type: 'unfocusNodeAdjacency',\r\n event: 'unfocusNodeAdjacency',\r\n update: 'series:unfocusNodeAdjacency'\r\n }, function () { });\n\n var actionInfo = {\r\n type: 'graphRoam',\r\n event: 'graphRoam',\r\n update: 'none'\r\n };\r\n registerAction(actionInfo, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', query: payload\r\n }, function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var res = updateCenterAndZoom(coordSys, payload);\r\n seriesModel.setCenter\r\n && seriesModel.setCenter(res.center);\r\n seriesModel.setZoom\r\n && seriesModel.setZoom(res.zoom);\r\n });\r\n });\n\n function categoryFilter (ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n ecModel.eachSeriesByType('graph', function (graphSeries) {\r\n var categoriesData = graphSeries.getCategoriesData();\r\n var graph = graphSeries.getGraph();\r\n var data = graph.data;\r\n var categoryNames = categoriesData.mapArray(categoriesData.getName);\r\n data.filterSelf(function (idx) {\r\n var model = data.getItemModel(idx);\r\n var category = model.getShallow('category');\r\n if (category != null) {\r\n if (typeof category === 'number') {\r\n category = categoryNames[category];\r\n }\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(category)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n });\r\n }\n\n function categoryVisual (ecModel) {\r\n var paletteScope = {};\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var categoriesData = seriesModel.getCategoriesData();\r\n var data = seriesModel.getData();\r\n var categoryNameIdxMap = {};\r\n categoriesData.each(function (idx) {\r\n var name = categoriesData.getName(idx);\r\n categoryNameIdxMap['ec-' + name] = idx;\r\n var itemModel = categoriesData.getItemModel(idx);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (!style.fill) {\r\n style.fill = seriesModel.getColorFromPalette(name, paletteScope);\r\n }\r\n categoriesData.setItemVisual(idx, 'style', style);\r\n var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\r\n for (var i = 0; i < symbolVisualList.length; i++) {\r\n var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\r\n if (symbolVisual != null) {\r\n categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\r\n }\r\n }\r\n });\r\n if (categoriesData.count()) {\r\n data.each(function (idx) {\r\n var model = data.getItemModel(idx);\r\n var categoryIdx = model.getShallow('category');\r\n if (categoryIdx != null) {\r\n if (typeof categoryIdx === 'string') {\r\n categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\r\n }\r\n var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\r\n var style = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(style, categoryStyle);\r\n var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\r\n for (var i = 0; i < visualList.length; i++) {\r\n data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\n\n function normalize$2(a) {\r\n if (!(a instanceof Array)) {\r\n a = [a, a];\r\n }\r\n return a;\r\n }\r\n function edgeVisual (ecModel) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var graph = seriesModel.getGraph();\r\n var edgeData = seriesModel.getEdgeData();\r\n var symbolType = normalize$2(seriesModel.get('edgeSymbol'));\r\n var symbolSize = normalize$2(seriesModel.get('edgeSymbolSize'));\r\n edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\r\n edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\r\n edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\r\n edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\r\n edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\r\n edgeData.each(function (idx) {\r\n var itemModel = edgeData.getItemModel(idx);\r\n var edge = graph.getEdgeByIndex(idx);\r\n var symbolType = normalize$2(itemModel.getShallow('symbol', true));\r\n var symbolSize = normalize$2(itemModel.getShallow('symbolSize', true));\r\n var style = itemModel.getModel('lineStyle').getLineStyle();\r\n var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n switch (existsStyle.stroke) {\r\n case 'source': {\r\n var nodeStyle = edge.node1.getVisual('style');\r\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\r\n break;\r\n }\r\n case 'target': {\r\n var nodeStyle = edge.node2.getVisual('style');\r\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\r\n break;\r\n }\r\n }\r\n symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\r\n symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\r\n symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\r\n symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\r\n });\r\n });\r\n }\n\n function simpleLayout(seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n var graph = seriesModel.getGraph();\r\n graph.eachNode(function (node) {\r\n var model = node.getModel();\r\n node.setLayout([+model.get('x'), +model.get('y')]);\r\n });\r\n simpleLayoutEdge(graph);\r\n }\r\n function simpleLayoutEdge(graph) {\r\n graph.eachEdge(function (edge, idx) {\r\n var curveness = edge.getModel().get(['lineStyle', 'curveness']) || 0;\r\n var p1 = clone$1(edge.node1.getLayout());\r\n var p2 = clone$1(edge.node2.getLayout());\r\n var points = [p1, p2];\r\n if (+curveness) {\r\n points.push([\r\n (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness,\r\n (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness\r\n ]);\r\n }\r\n edge.setLayout(points);\r\n });\r\n }\n\n function simpleLayout$1 (ecModel, api) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var layout = seriesModel.get('layout');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n var data_1 = seriesModel.getData();\r\n var dimensions_1 = [];\r\n each(coordSys.dimensions, function (coordDim) {\r\n dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\r\n });\r\n for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\r\n var value = [];\r\n var hasValue = false;\r\n for (var i = 0; i < dimensions_1.length; i++) {\r\n var val = data_1.get(dimensions_1[i], dataIndex);\r\n if (!isNaN(val)) {\r\n hasValue = true;\r\n }\r\n value.push(val);\r\n }\r\n if (hasValue) {\r\n data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\r\n }\r\n else {\r\n data_1.setItemLayout(dataIndex, [NaN, NaN]);\r\n }\r\n }\r\n simpleLayoutEdge(data_1.graph);\r\n }\r\n else if (!layout || layout === 'none') {\r\n simpleLayout(seriesModel);\r\n }\r\n });\r\n }\n\n var PI$6 = Math.PI;\r\n var _symbolRadiansHalf = [];\r\n function circularLayout(seriesModel, basedOn) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n var rect = coordSys.getBoundingRect();\r\n var nodeData = seriesModel.getData();\r\n var graph = nodeData.graph;\r\n var cx = rect.width / 2 + rect.x;\r\n var cy = rect.height / 2 + rect.y;\r\n var r = Math.min(rect.width, rect.height) / 2;\r\n var count = nodeData.count();\r\n nodeData.setLayout({\r\n cx: cx,\r\n cy: cy\r\n });\r\n if (!count) {\r\n return;\r\n }\r\n _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\r\n graph.eachEdge(function (edge) {\r\n var curveness = edge.getModel().get(['lineStyle', 'curveness']) || 0;\r\n var p1 = clone$1(edge.node1.getLayout());\r\n var p2 = clone$1(edge.node2.getLayout());\r\n var cp1;\r\n var x12 = (p1[0] + p2[0]) / 2;\r\n var y12 = (p1[1] + p2[1]) / 2;\r\n if (+curveness) {\r\n curveness *= 3;\r\n cp1 = [\r\n cx * curveness + x12 * (1 - curveness),\r\n cy * curveness + y12 * (1 - curveness)\r\n ];\r\n }\r\n edge.setLayout([p1, p2, cp1]);\r\n });\r\n }\r\n var _layoutNodesBasedOn = {\r\n value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\r\n var angle = 0;\r\n var sum = nodeData.getSum('value');\r\n var unitAngle = Math.PI * 2 / (sum || count);\r\n graph.eachNode(function (node) {\r\n var value = node.getValue('value');\r\n var radianHalf = unitAngle * (sum ? value : 1) / 2;\r\n angle += radianHalf;\r\n node.setLayout([\r\n r * Math.cos(angle) + cx,\r\n r * Math.sin(angle) + cy\r\n ]);\r\n angle += radianHalf;\r\n });\r\n },\r\n symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\r\n var sumRadian = 0;\r\n _symbolRadiansHalf.length = count;\r\n var nodeScale = getNodeGlobalScale(seriesModel);\r\n graph.eachNode(function (node) {\r\n var symbolSize = getSymbolSize(node);\r\n isNaN(symbolSize) && (symbolSize = 2);\r\n symbolSize < 0 && (symbolSize = 0);\r\n symbolSize *= nodeScale;\r\n var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\r\n isNaN(symbolRadianHalf) && (symbolRadianHalf = PI$6 / 2);\r\n _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\r\n sumRadian += symbolRadianHalf * 2;\r\n });\r\n var halfRemainRadian = (2 * PI$6 - sumRadian) / count / 2;\r\n var angle = 0;\r\n graph.eachNode(function (node) {\r\n var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\r\n angle += radianHalf;\r\n node.setLayout([\r\n r * Math.cos(angle) + cx,\r\n r * Math.sin(angle) + cy\r\n ]);\r\n angle += radianHalf;\r\n });\r\n }\r\n };\n\n function circularLayout$1 (ecModel) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n if (seriesModel.get('layout') === 'circular') {\r\n circularLayout(seriesModel, 'symbolSize');\r\n }\r\n });\r\n }\n\n var scaleAndAdd$2 = scaleAndAdd;\r\n function forceLayout(inNodes, inEdges, opts) {\r\n var nodes = inNodes;\r\n var edges = inEdges;\r\n var rect = opts.rect;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var center = [rect.x + width / 2, rect.y + height / 2];\r\n var gravity = opts.gravity == null ? 0.1 : opts.gravity;\r\n for (var i = 0; i < nodes.length; i++) {\r\n var n = nodes[i];\r\n if (!n.p) {\r\n n.p = create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\r\n }\r\n n.pp = clone$1(n.p);\r\n n.edges = null;\r\n }\r\n var initialFriction = opts.friction == null ? 0.6 : opts.friction;\r\n var friction = initialFriction;\r\n var beforeStepCallback;\r\n var afterStepCallback;\r\n return {\r\n warmUp: function () {\r\n friction = initialFriction * 0.8;\r\n },\r\n setFixed: function (idx) {\r\n nodes[idx].fixed = true;\r\n },\r\n setUnfixed: function (idx) {\r\n nodes[idx].fixed = false;\r\n },\r\n beforeStep: function (cb) {\r\n beforeStepCallback = cb;\r\n },\r\n afterStep: function (cb) {\r\n afterStepCallback = cb;\r\n },\r\n step: function (cb) {\r\n beforeStepCallback && beforeStepCallback(nodes, edges);\r\n var v12 = [];\r\n var nLen = nodes.length;\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n if (e.ignoreForceLayout) {\r\n continue;\r\n }\r\n var n1 = e.n1;\r\n var n2 = e.n2;\r\n sub(v12, n2.p, n1.p);\r\n var d = len(v12) - e.d;\r\n var w = n2.w / (n1.w + n2.w);\r\n if (isNaN(w)) {\r\n w = 0;\r\n }\r\n normalize(v12, v12);\r\n !n1.fixed && scaleAndAdd$2(n1.p, n1.p, v12, w * d * friction);\r\n !n2.fixed && scaleAndAdd$2(n2.p, n2.p, v12, -(1 - w) * d * friction);\r\n }\r\n for (var i = 0; i < nLen; i++) {\r\n var n = nodes[i];\r\n if (!n.fixed) {\r\n sub(v12, center, n.p);\r\n scaleAndAdd$2(n.p, n.p, v12, gravity * friction);\r\n }\r\n }\r\n for (var i = 0; i < nLen; i++) {\r\n var n1 = nodes[i];\r\n for (var j = i + 1; j < nLen; j++) {\r\n var n2 = nodes[j];\r\n sub(v12, n2.p, n1.p);\r\n var d = len(v12);\r\n if (d === 0) {\r\n set(v12, Math.random() - 0.5, Math.random() - 0.5);\r\n d = 1;\r\n }\r\n var repFact = (n1.rep + n2.rep) / d / d;\r\n !n1.fixed && scaleAndAdd$2(n1.pp, n1.pp, v12, repFact);\r\n !n2.fixed && scaleAndAdd$2(n2.pp, n2.pp, v12, -repFact);\r\n }\r\n }\r\n var v = [];\r\n for (var i = 0; i < nLen; i++) {\r\n var n = nodes[i];\r\n if (!n.fixed) {\r\n sub(v, n.p, n.pp);\r\n scaleAndAdd$2(n.p, n.p, v, friction);\r\n copy(n.pp, n.p);\r\n }\r\n }\r\n friction = friction * 0.992;\r\n var finished = friction < 0.01;\r\n afterStepCallback && afterStepCallback(nodes, edges, finished);\r\n cb && cb(finished);\r\n }\r\n };\r\n }\n\n function forceLayout$1 (ecModel) {\r\n ecModel.eachSeriesByType('graph', function (graphSeries) {\r\n var coordSys = graphSeries.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n if (graphSeries.get('layout') === 'force') {\r\n var preservedPoints_1 = graphSeries.preservedPoints || {};\r\n var graph_1 = graphSeries.getGraph();\r\n var nodeData_1 = graph_1.data;\r\n var edgeData = graph_1.edgeData;\r\n var forceModel = graphSeries.getModel('force');\r\n var initLayout = forceModel.get('initLayout');\r\n if (graphSeries.preservedPoints) {\r\n nodeData_1.each(function (idx) {\r\n var id = nodeData_1.getId(idx);\r\n nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\r\n });\r\n }\r\n else if (!initLayout || initLayout === 'none') {\r\n simpleLayout(graphSeries);\r\n }\r\n else if (initLayout === 'circular') {\r\n circularLayout(graphSeries, 'value');\r\n }\r\n var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\r\n var edgeDataExtent_1 = edgeData.getDataExtent('value');\r\n var repulsion = forceModel.get('repulsion');\r\n var edgeLength = forceModel.get('edgeLength');\r\n var repulsionArr_1 = isArray(repulsion)\r\n ? repulsion : [repulsion, repulsion];\r\n var edgeLengthArr_1 = isArray(edgeLength)\r\n ? edgeLength : [edgeLength, edgeLength];\r\n edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\r\n var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\r\n var point = nodeData_1.getItemLayout(idx);\r\n var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\r\n if (isNaN(rep)) {\r\n rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\r\n }\r\n return {\r\n w: rep,\r\n rep: rep,\r\n fixed: nodeData_1.getItemModel(idx).get('fixed'),\r\n p: (!point || isNaN(point[0]) || isNaN(point[1])) ? null : point\r\n };\r\n });\r\n var edges = edgeData.mapArray('value', function (value, idx) {\r\n var edge = graph_1.getEdgeByIndex(idx);\r\n var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\r\n if (isNaN(d)) {\r\n d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\r\n }\r\n var edgeModel = edge.getModel();\r\n return {\r\n n1: nodes_1[edge.node1.dataIndex],\r\n n2: nodes_1[edge.node2.dataIndex],\r\n d: d,\r\n curveness: edgeModel.get(['lineStyle', 'curveness']) || 0,\r\n ignoreForceLayout: edgeModel.get('ignoreForceLayout')\r\n };\r\n });\r\n var rect = coordSys.getBoundingRect();\r\n var forceInstance = forceLayout(nodes_1, edges, {\r\n rect: rect,\r\n gravity: forceModel.get('gravity'),\r\n friction: forceModel.get('friction')\r\n });\r\n forceInstance.beforeStep(function (nodes, edges) {\r\n for (var i = 0, l = nodes.length; i < l; i++) {\r\n if (nodes[i].fixed) {\r\n copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\r\n }\r\n }\r\n });\r\n forceInstance.afterStep(function (nodes, edges, stopped) {\r\n for (var i = 0, l = nodes.length; i < l; i++) {\r\n if (!nodes[i].fixed) {\r\n graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\r\n }\r\n preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\r\n }\r\n for (var i = 0, l = edges.length; i < l; i++) {\r\n var e = edges[i];\r\n var edge = graph_1.getEdgeByIndex(i);\r\n var p1 = e.n1.p;\r\n var p2 = e.n2.p;\r\n var points = edge.getLayout();\r\n points = points ? points.slice() : [];\r\n points[0] = points[0] || [];\r\n points[1] = points[1] || [];\r\n copy(points[0], p1);\r\n copy(points[1], p2);\r\n if (+e.curveness) {\r\n points[2] = [\r\n (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness,\r\n (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness\r\n ];\r\n }\r\n edge.setLayout(points);\r\n }\r\n });\r\n graphSeries.forceLayout = forceInstance;\r\n graphSeries.preservedPoints = preservedPoints_1;\r\n forceInstance.step();\r\n }\r\n else {\r\n graphSeries.forceLayout = null;\r\n }\r\n });\r\n }\n\n function getViewRect$2(seriesModel, api, aspect) {\r\n var option = extend(seriesModel.getBoxLayoutParams(), {\r\n aspect: aspect\r\n });\r\n return getLayoutRect(option, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function createView (ecModel, api) {\r\n var viewList = [];\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var coordSysType = seriesModel.get('coordinateSystem');\r\n if (!coordSysType || coordSysType === 'view') {\r\n var data_1 = seriesModel.getData();\r\n var positions = data_1.mapArray(function (idx) {\r\n var itemModel = data_1.getItemModel(idx);\r\n return [+itemModel.get('x'), +itemModel.get('y')];\r\n });\r\n var min = [];\r\n var max = [];\r\n fromPoints(positions, min, max);\r\n if (max[0] - min[0] === 0) {\r\n max[0] += 1;\r\n min[0] -= 1;\r\n }\r\n if (max[1] - min[1] === 0) {\r\n max[1] += 1;\r\n min[1] -= 1;\r\n }\r\n var aspect = (max[0] - min[0]) / (max[1] - min[1]);\r\n var viewRect = getViewRect$2(seriesModel, api, aspect);\r\n if (isNaN(aspect)) {\r\n min = [viewRect.x, viewRect.y];\r\n max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\r\n }\r\n var bbWidth = max[0] - min[0];\r\n var bbHeight = max[1] - min[1];\r\n var viewWidth = viewRect.width;\r\n var viewHeight = viewRect.height;\r\n var viewCoordSys = seriesModel.coordinateSystem = new View();\r\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\r\n viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\r\n viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\r\n viewCoordSys.setCenter(seriesModel.get('center'));\r\n viewCoordSys.setZoom(seriesModel.get('zoom'));\r\n viewList.push(viewCoordSys);\r\n }\r\n });\r\n return viewList;\r\n }\n\n registerProcessor(categoryFilter);\r\n registerVisual(categoryVisual);\r\n registerVisual(edgeVisual);\r\n registerLayout(simpleLayout$1);\r\n registerLayout(PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout$1);\r\n registerLayout(forceLayout$1);\r\n registerCoordinateSystem('graphView', {\r\n dimensions: View.dimensions,\r\n create: createView\r\n });\n\n var GaugeSeriesModel = (function (_super) {\r\n __extends(GaugeSeriesModel, _super);\r\n function GaugeSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GaugeSeriesModel.type;\r\n return _this;\r\n }\r\n GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, ['value']);\r\n };\r\n GaugeSeriesModel.type = 'series.gauge';\r\n GaugeSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n center: ['50%', '50%'],\r\n legendHoverLink: true,\r\n radius: '75%',\r\n startAngle: 225,\r\n endAngle: -45,\r\n clockwise: true,\r\n min: 0,\r\n max: 100,\r\n splitNumber: 10,\r\n axisLine: {\r\n show: true,\r\n lineStyle: {\r\n color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']],\r\n width: 30\r\n }\r\n },\r\n splitLine: {\r\n show: true,\r\n length: 30,\r\n lineStyle: {\r\n color: '#eee',\r\n width: 2,\r\n type: 'solid'\r\n }\r\n },\r\n axisTick: {\r\n show: true,\r\n splitNumber: 5,\r\n length: 8,\r\n lineStyle: {\r\n color: '#eee',\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n distance: 5,\r\n color: 'auto'\r\n },\r\n pointer: {\r\n show: true,\r\n length: '80%',\r\n width: 8\r\n },\r\n itemStyle: {\r\n color: 'auto'\r\n },\r\n title: {\r\n show: true,\r\n offsetCenter: [0, '-40%'],\r\n color: '#333',\r\n fontSize: 15\r\n },\r\n detail: {\r\n show: true,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 0,\r\n borderColor: '#ccc',\r\n width: 100,\r\n height: null,\r\n padding: [5, 10],\r\n offsetCenter: [0, '40%'],\r\n color: 'auto',\r\n fontSize: 30\r\n }\r\n };\r\n return GaugeSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(GaugeSeriesModel);\n\n var PointerShape = (function () {\r\n function PointerShape() {\r\n this.angle = 0;\r\n this.width = 10;\r\n this.r = 10;\r\n this.x = 0;\r\n this.y = 0;\r\n }\r\n return PointerShape;\r\n }());\r\n var PointerPath = (function (_super) {\r\n __extends(PointerPath, _super);\r\n function PointerPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'pointer';\r\n return _this;\r\n }\r\n PointerPath.prototype.getDefaultShape = function () {\r\n return new PointerShape();\r\n };\r\n PointerPath.prototype.buildPath = function (ctx, shape) {\r\n var mathCos = Math.cos;\r\n var mathSin = Math.sin;\r\n var r = shape.r;\r\n var width = shape.width;\r\n var angle = shape.angle;\r\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\r\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\r\n angle = shape.angle - Math.PI / 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\r\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\r\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\r\n ctx.lineTo(x, y);\r\n };\r\n return PointerPath;\r\n }(Path));\n\n function parsePosition(seriesModel, api) {\r\n var center = seriesModel.get('center');\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], api.getWidth());\r\n var cy = parsePercent$2(center[1], api.getHeight());\r\n var r = parsePercent$2(seriesModel.get('radius'), size / 2);\r\n return {\r\n cx: cx,\r\n cy: cy,\r\n r: r\r\n };\r\n }\r\n function formatLabel(value, labelFormatter) {\r\n var label = value == null ? '' : (value + '');\r\n if (labelFormatter) {\r\n if (typeof labelFormatter === 'string') {\r\n label = labelFormatter.replace('{value}', label);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n label = labelFormatter(value);\r\n }\r\n }\r\n return label;\r\n }\r\n var PI2$7 = Math.PI * 2;\r\n var GaugeView = (function (_super) {\r\n __extends(GaugeView, _super);\r\n function GaugeView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GaugeView.type;\r\n return _this;\r\n }\r\n GaugeView.prototype.render = function (seriesModel, ecModel, api) {\r\n this.group.removeAll();\r\n var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\r\n var posInfo = parsePosition(seriesModel, api);\r\n this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\r\n };\r\n GaugeView.prototype.dispose = function () { };\r\n GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\r\n var group = this.group;\r\n var axisLineModel = seriesModel.getModel('axisLine');\r\n var lineStyleModel = axisLineModel.getModel('lineStyle');\r\n var clockwise = seriesModel.get('clockwise');\r\n var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\r\n var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\r\n var angleRangeSpan = (endAngle - startAngle) % PI2$7;\r\n var prevEndAngle = startAngle;\r\n var axisLineWidth = lineStyleModel.get('width');\r\n var showAxis = axisLineModel.get('show');\r\n for (var i = 0; showAxis && i < colorList.length; i++) {\r\n var percent = Math.min(Math.max(colorList[i][0], 0), 1);\r\n endAngle = startAngle + angleRangeSpan * percent;\r\n var sector = new Sector({\r\n shape: {\r\n startAngle: prevEndAngle,\r\n endAngle: endAngle,\r\n cx: posInfo.cx,\r\n cy: posInfo.cy,\r\n clockwise: clockwise,\r\n r0: posInfo.r - axisLineWidth,\r\n r: posInfo.r\r\n },\r\n silent: true\r\n });\r\n sector.setStyle({\r\n fill: colorList[i][1]\r\n });\r\n sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\r\n group.add(sector);\r\n prevEndAngle = endAngle;\r\n }\r\n var getColor = function (percent) {\r\n if (percent <= 0) {\r\n return colorList[0][1];\r\n }\r\n var i;\r\n for (i = 0; i < colorList.length; i++) {\r\n if (colorList[i][0] >= percent\r\n && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\r\n return colorList[i][1];\r\n }\r\n }\r\n return colorList[i - 1][1];\r\n };\r\n if (!clockwise) {\r\n var tmp = startAngle;\r\n startAngle = endAngle;\r\n endAngle = tmp;\r\n }\r\n this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\r\n this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\r\n this._renderTitle(seriesModel, ecModel, api, getColor, posInfo);\r\n this._renderDetail(seriesModel, ecModel, api, getColor, posInfo);\r\n };\r\n GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\r\n var group = this.group;\r\n var cx = posInfo.cx;\r\n var cy = posInfo.cy;\r\n var r = posInfo.r;\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n var splitLineModel = seriesModel.getModel('splitLine');\r\n var tickModel = seriesModel.getModel('axisTick');\r\n var labelModel = seriesModel.getModel('axisLabel');\r\n var splitNumber = seriesModel.get('splitNumber');\r\n var subSplitNumber = tickModel.get('splitNumber');\r\n var splitLineLen = parsePercent$2(splitLineModel.get('length'), r);\r\n var tickLen = parsePercent$2(tickModel.get('length'), r);\r\n var angle = startAngle;\r\n var step = (endAngle - startAngle) / splitNumber;\r\n var subStep = step / subSplitNumber;\r\n var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\r\n var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\r\n var unitX;\r\n var unitY;\r\n for (var i = 0; i <= splitNumber; i++) {\r\n unitX = Math.cos(angle);\r\n unitY = Math.sin(angle);\r\n if (splitLineModel.get('show')) {\r\n var splitLine = new Line({\r\n shape: {\r\n x1: unitX * r + cx,\r\n y1: unitY * r + cy,\r\n x2: unitX * (r - splitLineLen) + cx,\r\n y2: unitY * (r - splitLineLen) + cy\r\n },\r\n style: splitLineStyle,\r\n silent: true\r\n });\r\n if (splitLineStyle.stroke === 'auto') {\r\n splitLine.setStyle({\r\n stroke: getColor(i / splitNumber)\r\n });\r\n }\r\n group.add(splitLine);\r\n }\r\n if (labelModel.get('show')) {\r\n var label = formatLabel(round$1(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\r\n var distance = labelModel.get('distance');\r\n var autoColor = getColor(i / splitNumber);\r\n group.add(new ZRText({\r\n style: createTextStyle(labelModel, {\r\n text: label,\r\n x: unitX * (r - splitLineLen - distance) + cx,\r\n y: unitY * (r - splitLineLen - distance) + cy,\r\n verticalAlign: unitY < -0.4 ? 'top' : (unitY > 0.4 ? 'bottom' : 'middle'),\r\n align: unitX < -0.4 ? 'left' : (unitX > 0.4 ? 'right' : 'center')\r\n }, {\r\n inheritColor: autoColor\r\n }),\r\n silent: true\r\n }));\r\n }\r\n if (tickModel.get('show') && i !== splitNumber) {\r\n for (var j = 0; j <= subSplitNumber; j++) {\r\n unitX = Math.cos(angle);\r\n unitY = Math.sin(angle);\r\n var tickLine = new Line({\r\n shape: {\r\n x1: unitX * r + cx,\r\n y1: unitY * r + cy,\r\n x2: unitX * (r - tickLen) + cx,\r\n y2: unitY * (r - tickLen) + cy\r\n },\r\n silent: true,\r\n style: tickLineStyle\r\n });\r\n if (tickLineStyle.stroke === 'auto') {\r\n tickLine.setStyle({\r\n stroke: getColor((i + j / subSplitNumber) / splitNumber)\r\n });\r\n }\r\n group.add(tickLine);\r\n angle += subStep;\r\n }\r\n angle -= subStep;\r\n }\r\n else {\r\n angle += step;\r\n }\r\n }\r\n };\r\n GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n if (!seriesModel.get(['pointer', 'show'])) {\r\n oldData && oldData.eachItemGraphicEl(function (el) {\r\n group.remove(el);\r\n });\r\n return;\r\n }\r\n var valueExtent = [+seriesModel.get('min'), +seriesModel.get('max')];\r\n var angleExtent = [startAngle, endAngle];\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var pointer = new PointerPath({\r\n shape: {\r\n angle: startAngle\r\n }\r\n });\r\n initProps(pointer, {\r\n shape: {\r\n angle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true)\r\n }\r\n }, seriesModel);\r\n group.add(pointer);\r\n data.setItemGraphicEl(idx, pointer);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var pointer = oldData.getItemGraphicEl(oldIdx);\r\n updateProps(pointer, {\r\n shape: {\r\n angle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true)\r\n }\r\n }, seriesModel);\r\n group.add(pointer);\r\n data.setItemGraphicEl(newIdx, pointer);\r\n })\r\n .remove(function (idx) {\r\n var pointer = oldData.getItemGraphicEl(idx);\r\n group.remove(pointer);\r\n })\r\n .execute();\r\n data.eachItemGraphicEl(function (pointer, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var pointerModel = itemModel.getModel('pointer');\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n pointer.setShape({\r\n x: posInfo.cx,\r\n y: posInfo.cy,\r\n width: parsePercent$2(pointerModel.get('width'), posInfo.r),\r\n r: parsePercent$2(pointerModel.get('length'), posInfo.r)\r\n });\r\n pointer.useStyle(itemModel.getModel('itemStyle').getItemStyle());\r\n if (pointer.style.fill === 'auto') {\r\n pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\r\n }\r\n setStatesStylesFromModel(pointer, itemModel);\r\n enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n });\r\n this._data = data;\r\n };\r\n GaugeView.prototype._renderTitle = function (seriesModel, ecModel, api, getColor, posInfo) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var titleModel = seriesModel.getModel('title');\r\n if (titleModel.get('show')) {\r\n var offsetCenter = titleModel.get('offsetCenter');\r\n var x = posInfo.cx + parsePercent$2(offsetCenter[0], posInfo.r);\r\n var y = posInfo.cy + parsePercent$2(offsetCenter[1], posInfo.r);\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n var value = seriesModel.getData().get(valueDim, 0);\r\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\r\n this.group.add(new ZRText({\r\n silent: true,\r\n style: createTextStyle(titleModel, {\r\n x: x,\r\n y: y,\r\n text: data.getName(0),\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n }, { inheritColor: autoColor })\r\n }));\r\n }\r\n };\r\n GaugeView.prototype._renderDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\r\n var detailModel = seriesModel.getModel('detail');\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n if (detailModel.get('show')) {\r\n var offsetCenter = detailModel.get('offsetCenter');\r\n var x = posInfo.cx + parsePercent$2(offsetCenter[0], posInfo.r);\r\n var y = posInfo.cy + parsePercent$2(offsetCenter[1], posInfo.r);\r\n var width = parsePercent$2(detailModel.get('width'), posInfo.r);\r\n var height = parsePercent$2(detailModel.get('height'), posInfo.r);\r\n var data = seriesModel.getData();\r\n var value = data.get(data.mapDimension('value'), 0);\r\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\r\n this.group.add(new ZRText({\r\n silent: true,\r\n style: createTextStyle(detailModel, {\r\n x: x,\r\n y: y,\r\n text: formatLabel(value, detailModel.get('formatter')),\r\n width: isNaN(width) ? null : width,\r\n height: isNaN(height) ? null : height,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n }, { inheritColor: autoColor })\r\n }));\r\n }\r\n };\r\n GaugeView.type = 'gauge';\r\n return GaugeView;\r\n }(ChartView));\r\n ChartView.registerClass(GaugeView);\n\n var FunnelSeriesModel = (function (_super) {\r\n __extends(FunnelSeriesModel, _super);\r\n function FunnelSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = FunnelSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n FunnelSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueDim = data.mapDimension('value');\r\n var sum = data.getSum(valueDim);\r\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n FunnelSeriesModel.type = 'series.funnel';\r\n FunnelSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n left: 80,\r\n top: 60,\r\n right: 80,\r\n bottom: 60,\r\n minSize: '0%',\r\n maxSize: '100%',\r\n sort: 'descending',\r\n gap: 0,\r\n funnelAlign: 'center',\r\n label: {\r\n show: true,\r\n position: 'outer'\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 20,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n itemStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return FunnelSeriesModel;\r\n }(SeriesModel));\r\n ComponentModel.registerClass(FunnelSeriesModel);\n\n var opacityAccessPath = ['itemStyle', 'opacity'];\r\n var FunnelPiece = (function (_super) {\r\n __extends(FunnelPiece, _super);\r\n function FunnelPiece(data, idx) {\r\n var _this = _super.call(this) || this;\r\n var polygon = _this;\r\n var labelLine = new Polyline();\r\n var text = new ZRText();\r\n polygon.setTextContent(text);\r\n _this.setTextGuideLine(labelLine);\r\n _this.updateData(data, idx, true);\r\n return _this;\r\n }\r\n FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\r\n var polygon = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var layout = data.getItemLayout(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var opacity = itemModel.get(opacityAccessPath);\r\n opacity = opacity == null ? 1 : opacity;\r\n polygon.useStyle(data.getItemVisual(idx, 'style'));\r\n polygon.style.lineJoin = 'round';\r\n if (firstCreate) {\r\n polygon.setShape({\r\n points: layout.points\r\n });\r\n polygon.style.opacity = 0;\r\n initProps(polygon, {\r\n style: {\r\n opacity: opacity\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n updateProps(polygon, {\r\n style: {\r\n opacity: opacity\r\n },\r\n shape: {\r\n points: layout.points\r\n }\r\n }, seriesModel, idx);\r\n }\r\n setStatesStylesFromModel(polygon, itemModel);\r\n this._updateLabel(data, idx);\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n FunnelPiece.prototype._updateLabel = function (data, idx) {\r\n var polygon = this;\r\n var labelLine = this.getTextGuideLine();\r\n var labelText = polygon.getTextContent();\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var layout = data.getItemLayout(idx);\r\n var labelLayout = layout.label;\r\n var visualColor = data.getItemVisual(idx, 'style').fill;\r\n setLabelStyle(labelText, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n defaultText: data.getName(idx)\r\n }, { normal: {\r\n align: labelLayout.textAlign,\r\n verticalAlign: labelLayout.verticalAlign\r\n } });\r\n polygon.setTextConfig({\r\n local: true,\r\n inside: !!labelLayout.inside,\r\n insideStroke: visualColor,\r\n outsideFill: visualColor\r\n });\r\n var linePoints = labelLayout.linePoints;\r\n labelLine.setShape({\r\n points: linePoints\r\n });\r\n polygon.textGuideLineConfig = {\r\n anchor: linePoints ? new Point(linePoints[0][0], linePoints[0][1]) : null\r\n };\r\n updateProps(labelText, {\r\n style: {\r\n x: labelLayout.x,\r\n y: labelLayout.y\r\n }\r\n }, seriesModel, idx);\r\n labelText.attr({\r\n rotation: labelLayout.rotation,\r\n originX: labelLayout.x,\r\n originY: labelLayout.y,\r\n z2: 10\r\n });\r\n setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor\r\n });\r\n };\r\n return FunnelPiece;\r\n }(Polygon));\r\n var FunnelView = (function (_super) {\r\n __extends(FunnelView, _super);\r\n function FunnelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = FunnelView.type;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n FunnelView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var funnelPiece = new FunnelPiece(data, idx);\r\n data.setItemGraphicEl(idx, funnelPiece);\r\n group.add(funnelPiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piece = oldData.getItemGraphicEl(oldIdx);\r\n piece.updateData(data, newIdx);\r\n group.add(piece);\r\n data.setItemGraphicEl(newIdx, piece);\r\n })\r\n .remove(function (idx) {\r\n var piece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piece, seriesModel, idx);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n FunnelView.prototype.remove = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n FunnelView.prototype.dispose = function () { };\r\n FunnelView.type = 'funnel';\r\n return FunnelView;\r\n }(ChartView));\r\n ChartView.registerClass(FunnelView);\n\n function getViewRect$3(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function getSortedIndices(data, sort) {\r\n var valueDim = data.mapDimension('value');\r\n var valueArr = data.mapArray(valueDim, function (val) {\r\n return val;\r\n });\r\n var indices = [];\r\n var isAscending = sort === 'ascending';\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n indices[i] = i;\r\n }\r\n if (typeof sort === 'function') {\r\n indices.sort(sort);\r\n }\r\n else if (sort !== 'none') {\r\n indices.sort(function (a, b) {\r\n return isAscending\r\n ? valueArr[a] - valueArr[b]\r\n : valueArr[b] - valueArr[a];\r\n });\r\n }\r\n return indices;\r\n }\r\n function labelLayout$1(data) {\r\n data.each(function (idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var layout = data.getItemLayout(idx);\r\n var points = layout.points;\r\n var isLabelInside = labelPosition === 'inner'\r\n || labelPosition === 'inside' || labelPosition === 'center'\r\n || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\r\n var textAlign;\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n if (isLabelInside) {\r\n if (labelPosition === 'insideLeft') {\r\n textX = (points[0][0] + points[3][0]) / 2 + 5;\r\n textY = (points[0][1] + points[3][1]) / 2;\r\n textAlign = 'left';\r\n }\r\n else if (labelPosition === 'insideRight') {\r\n textX = (points[1][0] + points[2][0]) / 2 - 5;\r\n textY = (points[1][1] + points[2][1]) / 2;\r\n textAlign = 'right';\r\n }\r\n else {\r\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\r\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\r\n textAlign = 'center';\r\n }\r\n linePoints = [\r\n [textX, textY], [textX, textY]\r\n ];\r\n }\r\n else {\r\n var x1 = void 0;\r\n var y1 = void 0;\r\n var x2 = void 0;\r\n var labelLineLen = labelLineModel.get('length');\r\n if (labelPosition === 'left') {\r\n x1 = (points[3][0] + points[0][0]) / 2;\r\n y1 = (points[3][1] + points[0][1]) / 2;\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n else if (labelPosition === 'right') {\r\n x1 = (points[1][0] + points[2][0]) / 2;\r\n y1 = (points[1][1] + points[2][1]) / 2;\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'left';\r\n }\r\n else if (labelPosition === 'rightTop') {\r\n x1 = points[1][0];\r\n y1 = points[1][1];\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'top';\r\n }\r\n else if (labelPosition === 'rightBottom') {\r\n x1 = points[2][0];\r\n y1 = points[2][1];\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'bottom';\r\n }\r\n else if (labelPosition === 'leftTop') {\r\n x1 = points[0][0];\r\n y1 = points[1][1];\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n else if (labelPosition === 'leftBottom') {\r\n x1 = points[3][0];\r\n y1 = points[2][1];\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n else {\r\n x1 = (points[1][0] + points[2][0]) / 2;\r\n y1 = (points[1][1] + points[2][1]) / 2;\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'left';\r\n }\r\n var y2 = y1;\r\n linePoints = [[x1, y1], [x2, y2]];\r\n textY = y2;\r\n }\r\n layout.label = {\r\n linePoints: linePoints,\r\n x: textX,\r\n y: textY,\r\n verticalAlign: 'middle',\r\n textAlign: textAlign,\r\n inside: isLabelInside\r\n };\r\n });\r\n }\r\n function funnelLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var sort = seriesModel.get('sort');\r\n var viewRect = getViewRect$3(seriesModel, api);\r\n var indices = getSortedIndices(data, sort);\r\n var sizeExtent = [\r\n parsePercent$2(seriesModel.get('minSize'), viewRect.width),\r\n parsePercent$2(seriesModel.get('maxSize'), viewRect.width)\r\n ];\r\n var dataExtent = data.getDataExtent(valueDim);\r\n var min = seriesModel.get('min');\r\n var max = seriesModel.get('max');\r\n if (min == null) {\r\n min = Math.min(dataExtent[0], 0);\r\n }\r\n if (max == null) {\r\n max = dataExtent[1];\r\n }\r\n var funnelAlign = seriesModel.get('funnelAlign');\r\n var gap = seriesModel.get('gap');\r\n var itemHeight = (viewRect.height - gap * (data.count() - 1)) / data.count();\r\n var y = viewRect.y;\r\n var getLinePoints = function (idx, offY) {\r\n var val = data.get(valueDim, idx) || 0;\r\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\r\n var x0;\r\n switch (funnelAlign) {\r\n case 'left':\r\n x0 = viewRect.x;\r\n break;\r\n case 'center':\r\n x0 = viewRect.x + (viewRect.width - itemWidth) / 2;\r\n break;\r\n case 'right':\r\n x0 = viewRect.x + viewRect.width - itemWidth;\r\n break;\r\n }\r\n return [\r\n [x0, offY],\r\n [x0 + itemWidth, offY]\r\n ];\r\n };\r\n if (sort === 'ascending') {\r\n itemHeight = -itemHeight;\r\n gap = -gap;\r\n y += viewRect.height;\r\n indices = indices.reverse();\r\n }\r\n for (var i = 0; i < indices.length; i++) {\r\n var idx = indices[i];\r\n var nextIdx = indices[i + 1];\r\n var itemModel = data.getItemModel(idx);\r\n var height = itemModel.get(['itemStyle', 'height']);\r\n if (height == null) {\r\n height = itemHeight;\r\n }\r\n else {\r\n height = parsePercent$2(height, viewRect.height);\r\n if (sort === 'ascending') {\r\n height = -height;\r\n }\r\n }\r\n var start = getLinePoints(idx, y);\r\n var end = getLinePoints(nextIdx, y + height);\r\n y += height + gap;\r\n data.setItemLayout(idx, {\r\n points: start.concat(end.slice().reverse())\r\n });\r\n }\r\n labelLayout$1(data);\r\n });\r\n }\n\n registerLayout(funnelLayout);\r\n registerProcessor(dataFilter('funnel'));\n\n function parallelPreprocessor (option) {\r\n createParallelIfNeeded(option);\r\n mergeAxisOptionFromParallel(option);\r\n }\r\n function createParallelIfNeeded(option) {\r\n if (option.parallel) {\r\n return;\r\n }\r\n var hasParallelSeries = false;\r\n each(option.series, function (seriesOpt) {\r\n if (seriesOpt && seriesOpt.type === 'parallel') {\r\n hasParallelSeries = true;\r\n }\r\n });\r\n if (hasParallelSeries) {\r\n option.parallel = [{}];\r\n }\r\n }\r\n function mergeAxisOptionFromParallel(option) {\r\n var axes = normalizeToArray(option.parallelAxis);\r\n each(axes, function (axisOption) {\r\n if (!isObject(axisOption)) {\r\n return;\r\n }\r\n var parallelIndex = axisOption.parallelIndex || 0;\r\n var parallelOption = normalizeToArray(option.parallel)[parallelIndex];\r\n if (parallelOption && parallelOption.parallelAxisDefault) {\r\n merge(axisOption, parallelOption.parallelAxisDefault, false);\r\n }\r\n });\r\n }\n\n var ParallelAxis = (function (_super) {\r\n __extends(ParallelAxis, _super);\r\n function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n _this.axisIndex = axisIndex;\r\n return _this;\r\n }\r\n ParallelAxis.prototype.isHorizontal = function () {\r\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\r\n };\r\n return ParallelAxis;\r\n }(Axis));\n\n function sliderMove (delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\r\n delta = delta || 0;\r\n var extentSpan = extent[1] - extent[0];\r\n if (minSpan != null) {\r\n minSpan = restrict(minSpan, [0, extentSpan]);\r\n }\r\n if (maxSpan != null) {\r\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\r\n }\r\n if (handleIndex === 'all') {\r\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\r\n handleSpan = restrict(handleSpan, [0, extentSpan]);\r\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\r\n handleIndex = 0;\r\n }\r\n handleEnds[0] = restrict(handleEnds[0], extent);\r\n handleEnds[1] = restrict(handleEnds[1], extent);\r\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\r\n handleEnds[handleIndex] += delta;\r\n var extentMinSpan = minSpan || 0;\r\n var realExtent = extent.slice();\r\n originalDistSign.sign < 0 ? (realExtent[0] += extentMinSpan) : (realExtent[1] -= extentMinSpan);\r\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\r\n var currDistSign;\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\r\n }\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (maxSpan != null && currDistSign.span > maxSpan) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\r\n }\r\n return handleEnds;\r\n }\r\n function getSpanSign(handleEnds, handleIndex) {\r\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\r\n return { span: Math.abs(dist), sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 };\r\n }\r\n function restrict(value, extend) {\r\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\r\n }\n\n var each$6 = each;\r\n var mathMin$6 = Math.min;\r\n var mathMax$6 = Math.max;\r\n var mathFloor$1 = Math.floor;\r\n var mathCeil$1 = Math.ceil;\r\n var round$2 = round$1;\r\n var PI$7 = Math.PI;\r\n var Parallel = (function () {\r\n function Parallel(parallelModel, ecModel, api) {\r\n this.type = 'parallel';\r\n this._axesMap = createHashMap();\r\n this._axesLayout = {};\r\n this.dimensions = parallelModel.dimensions;\r\n this._model = parallelModel;\r\n this._init(parallelModel, ecModel, api);\r\n }\r\n Parallel.prototype._init = function (parallelModel, ecModel, api) {\r\n var dimensions = parallelModel.dimensions;\r\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\r\n each$6(dimensions, function (dim, idx) {\r\n var axisIndex = parallelAxisIndex[idx];\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.coordinateSystem = axisModel.coordinateSystem = this;\r\n }, this);\r\n };\r\n Parallel.prototype.update = function (ecModel, api) {\r\n this._updateAxesFromSeries(this._model, ecModel);\r\n };\r\n Parallel.prototype.containPoint = function (point) {\r\n var layoutInfo = this._makeLayoutInfo();\r\n var axisBase = layoutInfo.axisBase;\r\n var layoutBase = layoutInfo.layoutBase;\r\n var pixelDimIndex = layoutInfo.pixelDimIndex;\r\n var pAxis = point[1 - pixelDimIndex];\r\n var pLayout = point[pixelDimIndex];\r\n return pAxis >= axisBase\r\n && pAxis <= axisBase + layoutInfo.axisLength\r\n && pLayout >= layoutBase\r\n && pLayout <= layoutBase + layoutInfo.layoutLength;\r\n };\r\n Parallel.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!parallelModel.contains(seriesModel, ecModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n each$6(this.dimensions, function (dim) {\r\n var axis = this._axesMap.get(dim);\r\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\r\n niceScaleExtent(axis.scale, axis.model);\r\n }, this);\r\n }, this);\r\n };\r\n Parallel.prototype.resize = function (parallelModel, api) {\r\n this._rect = getLayoutRect(parallelModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._layoutAxes();\r\n };\r\n Parallel.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Parallel.prototype._makeLayoutInfo = function () {\r\n var parallelModel = this._model;\r\n var rect = this._rect;\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n var layout = parallelModel.get('layout');\r\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\r\n var layoutLength = rect[wh[pixelDimIndex]];\r\n var layoutExtent = [0, layoutLength];\r\n var axisCount = this.dimensions.length;\r\n var axisExpandWidth = restrict$1(parallelModel.get('axisExpandWidth'), layoutExtent);\r\n var axisExpandCount = restrict$1(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\r\n var axisExpandable = parallelModel.get('axisExpandable')\r\n && axisCount > 3\r\n && axisCount > axisExpandCount\r\n && axisExpandCount > 1\r\n && axisExpandWidth > 0\r\n && layoutLength > 0;\r\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\r\n var winSize;\r\n if (!axisExpandWindow) {\r\n winSize = restrict$1(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\r\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor$1(axisCount / 2);\r\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\r\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\r\n }\r\n else {\r\n winSize = restrict$1(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\r\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\r\n }\r\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\r\n axisCollapseWidth < 3 && (axisCollapseWidth = 0);\r\n var winInnerIndices = [\r\n mathFloor$1(round$2(axisExpandWindow[0] / axisExpandWidth, 1)) + 1,\r\n mathCeil$1(round$2(axisExpandWindow[1] / axisExpandWidth, 1)) - 1\r\n ];\r\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\r\n return {\r\n layout: layout,\r\n pixelDimIndex: pixelDimIndex,\r\n layoutBase: rect[xy[pixelDimIndex]],\r\n layoutLength: layoutLength,\r\n axisBase: rect[xy[1 - pixelDimIndex]],\r\n axisLength: rect[wh[1 - pixelDimIndex]],\r\n axisExpandable: axisExpandable,\r\n axisExpandWidth: axisExpandWidth,\r\n axisCollapseWidth: axisCollapseWidth,\r\n axisExpandWindow: axisExpandWindow,\r\n axisCount: axisCount,\r\n winInnerIndices: winInnerIndices,\r\n axisExpandWindow0Pos: axisExpandWindow0Pos\r\n };\r\n };\r\n Parallel.prototype._layoutAxes = function () {\r\n var rect = this._rect;\r\n var axes = this._axesMap;\r\n var dimensions = this.dimensions;\r\n var layoutInfo = this._makeLayoutInfo();\r\n var layout = layoutInfo.layout;\r\n axes.each(function (axis) {\r\n var axisExtent = [0, layoutInfo.axisLength];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\r\n });\r\n each$6(dimensions, function (dim, idx) {\r\n var posInfo = (layoutInfo.axisExpandable\r\n ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\r\n var positionTable = {\r\n horizontal: {\r\n x: posInfo.position,\r\n y: layoutInfo.axisLength\r\n },\r\n vertical: {\r\n x: 0,\r\n y: posInfo.position\r\n }\r\n };\r\n var rotationTable = {\r\n horizontal: PI$7 / 2,\r\n vertical: 0\r\n };\r\n var position = [\r\n positionTable[layout].x + rect.x,\r\n positionTable[layout].y + rect.y\r\n ];\r\n var rotation = rotationTable[layout];\r\n var transform = create$1();\r\n rotate(transform, transform, rotation);\r\n translate(transform, transform, position);\r\n this._axesLayout[dim] = {\r\n position: position,\r\n rotation: rotation,\r\n transform: transform,\r\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\r\n axisLabelShow: posInfo.axisLabelShow,\r\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\r\n tickDirection: 1,\r\n labelDirection: 1\r\n };\r\n }, this);\r\n };\r\n Parallel.prototype.getAxis = function (dim) {\r\n return this._axesMap.get(dim);\r\n };\r\n Parallel.prototype.dataToPoint = function (value, dim) {\r\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\r\n };\r\n Parallel.prototype.eachActiveState = function (data, callback, start, end) {\r\n start == null && (start = 0);\r\n end == null && (end = data.count());\r\n var axesMap = this._axesMap;\r\n var dimensions = this.dimensions;\r\n var dataDimensions = [];\r\n var axisModels = [];\r\n each(dimensions, function (axisDim) {\r\n dataDimensions.push(data.mapDimension(axisDim));\r\n axisModels.push(axesMap.get(axisDim).model);\r\n });\r\n var hasActiveSet = this.hasAxisBrushed();\r\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\r\n var activeState = void 0;\r\n if (!hasActiveSet) {\r\n activeState = 'normal';\r\n }\r\n else {\r\n activeState = 'active';\r\n var values = data.getValues(dataDimensions, dataIndex);\r\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\r\n var state = axisModels[j].getActiveState(values[j]);\r\n if (state === 'inactive') {\r\n activeState = 'inactive';\r\n break;\r\n }\r\n }\r\n }\r\n callback(activeState, dataIndex);\r\n }\r\n };\r\n Parallel.prototype.hasAxisBrushed = function () {\r\n var dimensions = this.dimensions;\r\n var axesMap = this._axesMap;\r\n var hasActiveSet = false;\r\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\r\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\r\n hasActiveSet = true;\r\n }\r\n }\r\n return hasActiveSet;\r\n };\r\n Parallel.prototype.axisCoordToPoint = function (coord, dim) {\r\n var axisLayout = this._axesLayout[dim];\r\n return applyTransform$1([coord, 0], axisLayout.transform);\r\n };\r\n Parallel.prototype.getAxisLayout = function (dim) {\r\n return clone(this._axesLayout[dim]);\r\n };\r\n Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\r\n var layoutInfo = this._makeLayoutInfo();\r\n var pixelDimIndex = layoutInfo.pixelDimIndex;\r\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\r\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\r\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\r\n if (!this.containPoint(point)) {\r\n return { behavior: 'none', axisExpandWindow: axisExpandWindow };\r\n }\r\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\r\n var delta;\r\n var behavior = 'slide';\r\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\r\n var triggerArea = this._model.get('axisExpandSlideTriggerArea');\r\n var useJump = triggerArea[0] != null;\r\n if (axisCollapseWidth) {\r\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\r\n behavior = 'jump';\r\n delta = pointCoord - winSize * triggerArea[2];\r\n }\r\n else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\r\n behavior = 'jump';\r\n delta = pointCoord - winSize * (1 - triggerArea[2]);\r\n }\r\n else {\r\n (delta = pointCoord - winSize * triggerArea[1]) >= 0\r\n && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0\r\n && (delta = 0);\r\n }\r\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\r\n delta\r\n ? sliderMove(delta, axisExpandWindow, extent, 'all')\r\n : (behavior = 'none');\r\n }\r\n else {\r\n var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\r\n var pos = extent[1] * pointCoord / winSize2;\r\n axisExpandWindow = [mathMax$6(0, pos - winSize2 / 2)];\r\n axisExpandWindow[1] = mathMin$6(extent[1], axisExpandWindow[0] + winSize2);\r\n axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\r\n }\r\n return {\r\n axisExpandWindow: axisExpandWindow,\r\n behavior: behavior\r\n };\r\n };\r\n return Parallel;\r\n }());\r\n function restrict$1(len, extent) {\r\n return mathMin$6(mathMax$6(len, extent[0]), extent[1]);\r\n }\r\n function layoutAxisWithoutExpand(axisIndex, layoutInfo) {\r\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\r\n return {\r\n position: step * axisIndex,\r\n axisNameAvailableWidth: step,\r\n axisLabelShow: true\r\n };\r\n }\r\n function layoutAxisWithExpand(axisIndex, layoutInfo) {\r\n var layoutLength = layoutInfo.layoutLength;\r\n var axisExpandWidth = layoutInfo.axisExpandWidth;\r\n var axisCount = layoutInfo.axisCount;\r\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\r\n var winInnerIndices = layoutInfo.winInnerIndices;\r\n var position;\r\n var axisNameAvailableWidth = axisCollapseWidth;\r\n var axisLabelShow = false;\r\n var nameTruncateMaxWidth;\r\n if (axisIndex < winInnerIndices[0]) {\r\n position = axisIndex * axisCollapseWidth;\r\n nameTruncateMaxWidth = axisCollapseWidth;\r\n }\r\n else if (axisIndex <= winInnerIndices[1]) {\r\n position = layoutInfo.axisExpandWindow0Pos\r\n + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\r\n axisNameAvailableWidth = axisExpandWidth;\r\n axisLabelShow = true;\r\n }\r\n else {\r\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\r\n nameTruncateMaxWidth = axisCollapseWidth;\r\n }\r\n return {\r\n position: position,\r\n axisNameAvailableWidth: axisNameAvailableWidth,\r\n axisLabelShow: axisLabelShow,\r\n nameTruncateMaxWidth: nameTruncateMaxWidth\r\n };\r\n }\n\n function create$2(ecModel, api) {\r\n var coordSysList = [];\r\n ecModel.eachComponent('parallel', function (parallelModel, idx) {\r\n var coordSys = new Parallel(parallelModel, ecModel, api);\r\n coordSys.name = 'parallel_' + idx;\r\n coordSys.resize(parallelModel, api);\r\n parallelModel.coordinateSystem = coordSys;\r\n coordSys.model = parallelModel;\r\n coordSysList.push(coordSys);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'parallel') {\r\n var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\r\n seriesModel.coordinateSystem = parallelModel.coordinateSystem;\r\n }\r\n });\r\n return coordSysList;\r\n }\r\n CoordinateSystemManager.register('parallel', { create: create$2 });\n\n var ParallelAxisModel = (function (_super) {\r\n __extends(ParallelAxisModel, _super);\r\n function ParallelAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelAxisModel.type;\r\n _this.activeIntervals = [];\r\n return _this;\r\n }\r\n ParallelAxisModel.prototype.getAreaSelectStyle = function () {\r\n return makeStyleMapper([\r\n ['fill', 'color'],\r\n ['lineWidth', 'borderWidth'],\r\n ['stroke', 'borderColor'],\r\n ['width', 'width'],\r\n ['opacity', 'opacity']\r\n ])(this.getModel('areaSelectStyle'));\r\n };\r\n ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\r\n var activeIntervals = this.activeIntervals = clone(intervals);\r\n if (activeIntervals) {\r\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\r\n asc(activeIntervals[i]);\r\n }\r\n }\r\n };\r\n ParallelAxisModel.prototype.getActiveState = function (value) {\r\n var activeIntervals = this.activeIntervals;\r\n if (!activeIntervals.length) {\r\n return 'normal';\r\n }\r\n if (value == null || isNaN(+value)) {\r\n return 'inactive';\r\n }\r\n if (activeIntervals.length === 1) {\r\n var interval = activeIntervals[0];\r\n if (interval[0] <= value && value <= interval[1]) {\r\n return 'active';\r\n }\r\n }\r\n else {\r\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\r\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\r\n return 'active';\r\n }\r\n }\r\n }\r\n return 'inactive';\r\n };\r\n return ParallelAxisModel;\r\n }(ComponentModel));\r\n var defaultOption$1 = {\r\n type: 'value',\r\n areaSelectStyle: {\r\n width: 20,\r\n borderWidth: 1,\r\n borderColor: 'rgba(160,197,232)',\r\n color: 'rgba(160,197,232)',\r\n opacity: 0.3\r\n },\r\n realtime: true,\r\n z: 10\r\n };\r\n ComponentModel.registerClass(ParallelAxisModel);\r\n mixin(ParallelAxisModel, AxisModelCommonMixin);\r\n axisModelCreator('parallel', ParallelAxisModel, defaultOption$1);\n\n var ParallelModel = (function (_super) {\r\n __extends(ParallelModel, _super);\r\n function ParallelModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelModel.type;\r\n return _this;\r\n }\r\n ParallelModel.prototype.init = function () {\r\n _super.prototype.init.apply(this, arguments);\r\n this.mergeOption({});\r\n };\r\n ParallelModel.prototype.mergeOption = function (newOption) {\r\n var thisOption = this.option;\r\n newOption && merge(thisOption, newOption, true);\r\n this._initDimensions();\r\n };\r\n ParallelModel.prototype.contains = function (model, ecModel) {\r\n var parallelIndex = model.get('parallelIndex');\r\n return parallelIndex != null\r\n && ecModel.getComponent('parallel', parallelIndex) === this;\r\n };\r\n ParallelModel.prototype.setAxisExpand = function (opt) {\r\n each([\r\n 'axisExpandable',\r\n 'axisExpandCenter',\r\n 'axisExpandCount',\r\n 'axisExpandWidth',\r\n 'axisExpandWindow'\r\n ], function (name) {\r\n if (opt.hasOwnProperty(name)) {\r\n this.option[name] = opt[name];\r\n }\r\n }, this);\r\n };\r\n ParallelModel.prototype._initDimensions = function () {\r\n var dimensions = this.dimensions = [];\r\n var parallelAxisIndex = this.parallelAxisIndex = [];\r\n var axisModels = filter(this.ecModel.queryComponents({ mainType: 'parallelAxis' }), function (axisModel) {\r\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\r\n }, this);\r\n each(axisModels, function (axisModel) {\r\n dimensions.push('dim' + axisModel.get('dim'));\r\n parallelAxisIndex.push(axisModel.componentIndex);\r\n });\r\n };\r\n ParallelModel.type = 'parallel';\r\n ParallelModel.dependencies = ['parallelAxis'];\r\n ParallelModel.layoutMode = 'box';\r\n ParallelModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n left: 80,\r\n top: 60,\r\n right: 80,\r\n bottom: 60,\r\n layout: 'horizontal',\r\n axisExpandable: false,\r\n axisExpandCenter: null,\r\n axisExpandCount: 0,\r\n axisExpandWidth: 50,\r\n axisExpandRate: 17,\r\n axisExpandDebounce: 50,\r\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\r\n axisExpandTriggerOn: 'click',\r\n parallelAxisDefault: null\r\n };\r\n return ParallelModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ParallelModel);\n\n var actionInfo$1 = {\r\n type: 'axisAreaSelect',\r\n event: 'axisAreaSelected'\r\n };\r\n registerAction(actionInfo$1, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'parallelAxis', query: payload }, function (parallelAxisModel) {\r\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\r\n });\r\n });\r\n registerAction('parallelAxisExpand', function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'parallel', query: payload }, function (parallelModel) {\r\n parallelModel.setAxisExpand(payload);\r\n });\r\n });\n\n var BRUSH_PANEL_GLOBAL = true;\r\n var mathMin$7 = Math.min;\r\n var mathMax$7 = Math.max;\r\n var mathPow$2 = Math.pow;\r\n var COVER_Z = 10000;\r\n var UNSELECT_THRESHOLD = 6;\r\n var MIN_RESIZE_LINE_WIDTH = 6;\r\n var MUTEX_RESOURCE_KEY = 'globalPan';\r\n var DIRECTION_MAP = {\r\n w: [0, 0],\r\n e: [0, 1],\r\n n: [1, 0],\r\n s: [1, 1]\r\n };\r\n var CURSOR_MAP = {\r\n w: 'ew',\r\n e: 'ew',\r\n n: 'ns',\r\n s: 'ns',\r\n ne: 'nesw',\r\n sw: 'nesw',\r\n nw: 'nwse',\r\n se: 'nwse'\r\n };\r\n var DEFAULT_BRUSH_OPT = {\r\n brushStyle: {\r\n lineWidth: 2,\r\n stroke: 'rgba(210,219,238,0.3)',\r\n fill: '#D2DBEE'\r\n },\r\n transformable: true,\r\n brushMode: 'single',\r\n removeOnClick: false\r\n };\r\n var baseUID = 0;\r\n var BrushController = (function (_super) {\r\n __extends(BrushController, _super);\r\n function BrushController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._track = [];\r\n _this._covers = [];\r\n _this._handlers = {};\r\n if (__DEV__) {\r\n assert(zr);\r\n }\r\n _this._zr = zr;\r\n _this.group = new Group();\r\n _this._uid = 'brushController_' + baseUID++;\r\n each(pointerHandlers, function (handler, eventName) {\r\n this._handlers[eventName] = bind(handler, this);\r\n }, _this);\r\n return _this;\r\n }\r\n BrushController.prototype.enableBrush = function (brushOption) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n this._brushType && this._doDisableBrush();\r\n brushOption.brushType && this._doEnableBrush(brushOption);\r\n return this;\r\n };\r\n BrushController.prototype._doEnableBrush = function (brushOption) {\r\n var zr = this._zr;\r\n if (!this._enableGlobalPan) {\r\n take(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n }\r\n each(this._handlers, function (handler, eventName) {\r\n zr.on(eventName, handler);\r\n });\r\n this._brushType = brushOption.brushType;\r\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\r\n };\r\n BrushController.prototype._doDisableBrush = function () {\r\n var zr = this._zr;\r\n release(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n each(this._handlers, function (handler, eventName) {\r\n zr.off(eventName, handler);\r\n });\r\n this._brushType = this._brushOption = null;\r\n };\r\n BrushController.prototype.setPanels = function (panelOpts) {\r\n if (panelOpts && panelOpts.length) {\r\n var panels_1 = this._panels = {};\r\n each(panelOpts, function (panelOpts) {\r\n panels_1[panelOpts.panelId] = clone(panelOpts);\r\n });\r\n }\r\n else {\r\n this._panels = null;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.mount = function (opt) {\r\n opt = opt || {};\r\n if (__DEV__) {\r\n this._mounted = true;\r\n }\r\n this._enableGlobalPan = opt.enableGlobalPan;\r\n var thisGroup = this.group;\r\n this._zr.add(thisGroup);\r\n thisGroup.attr({\r\n x: opt.x || 0,\r\n y: opt.y || 0,\r\n rotation: opt.rotation || 0,\r\n scaleX: opt.scaleX || 1,\r\n scaleY: opt.scaleY || 1\r\n });\r\n this._transform = thisGroup.getLocalTransform();\r\n return this;\r\n };\r\n BrushController.prototype.updateCovers = function (coverConfigList) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n coverConfigList = map(coverConfigList, function (coverConfig) {\r\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\r\n });\r\n var tmpIdPrefix = '\\0-brush-index-';\r\n var oldCovers = this._covers;\r\n var newCovers = this._covers = [];\r\n var controller = this;\r\n var creatingCover = this._creatingCover;\r\n (new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey))\r\n .add(addOrUpdate)\r\n .update(addOrUpdate)\r\n .remove(remove)\r\n .execute();\r\n return this;\r\n function getKey(brushOption, index) {\r\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index)\r\n + '-' + brushOption.brushType;\r\n }\r\n function oldGetKey(cover, index) {\r\n return getKey(cover.__brushOption, index);\r\n }\r\n function addOrUpdate(newIndex, oldIndex) {\r\n var newBrushInternal = coverConfigList[newIndex];\r\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\r\n newCovers[newIndex] = oldCovers[oldIndex];\r\n }\r\n else {\r\n var cover = newCovers[newIndex] = oldIndex != null\r\n ? (oldCovers[oldIndex].__brushOption = newBrushInternal,\r\n oldCovers[oldIndex])\r\n : endCreating(controller, createCover(controller, newBrushInternal));\r\n updateCoverAfterCreation(controller, cover);\r\n }\r\n }\r\n function remove(oldIndex) {\r\n if (oldCovers[oldIndex] !== creatingCover) {\r\n controller.group.remove(oldCovers[oldIndex]);\r\n }\r\n }\r\n };\r\n BrushController.prototype.unmount = function () {\r\n if (__DEV__) {\r\n if (!this._mounted) {\r\n return;\r\n }\r\n }\r\n this.enableBrush(false);\r\n clearCovers(this);\r\n this._zr.remove(this.group);\r\n if (__DEV__) {\r\n this._mounted = false;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.dispose = function () {\r\n this.unmount();\r\n this.off();\r\n };\r\n return BrushController;\r\n }(Eventful));\r\n function createCover(controller, brushOption) {\r\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\r\n cover.__brushOption = brushOption;\r\n updateZ(cover, brushOption);\r\n controller.group.add(cover);\r\n return cover;\r\n }\r\n function endCreating(controller, creatingCover) {\r\n var coverRenderer = getCoverRenderer(creatingCover);\r\n if (coverRenderer.endCreating) {\r\n coverRenderer.endCreating(controller, creatingCover);\r\n updateZ(creatingCover, creatingCover.__brushOption);\r\n }\r\n return creatingCover;\r\n }\r\n function updateCoverShape(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\r\n }\r\n function updateZ(cover, brushOption) {\r\n var z = brushOption.z;\r\n z == null && (z = COVER_Z);\r\n cover.traverse(function (el) {\r\n el.z = z;\r\n el.z2 = z;\r\n });\r\n }\r\n function updateCoverAfterCreation(controller, cover) {\r\n getCoverRenderer(cover).updateCommon(controller, cover);\r\n updateCoverShape(controller, cover);\r\n }\r\n function getCoverRenderer(cover) {\r\n return coverRenderers[cover.__brushOption.brushType];\r\n }\r\n function getPanelByPoint(controller, e, localCursorPoint) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panel;\r\n var transform = controller._transform;\r\n each(panels, function (pn) {\r\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\r\n });\r\n return panel;\r\n }\r\n function getPanelByCover(controller, cover) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panelId = cover.__brushOption.panelId;\r\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\r\n }\r\n function clearCovers(controller) {\r\n var covers = controller._covers;\r\n var originalLength = covers.length;\r\n each(covers, function (cover) {\r\n controller.group.remove(cover);\r\n }, controller);\r\n covers.length = 0;\r\n return !!originalLength;\r\n }\r\n function trigger$1(controller, opt) {\r\n var areas = map(controller._covers, function (cover) {\r\n var brushOption = cover.__brushOption;\r\n var range = clone(brushOption.range);\r\n return {\r\n brushType: brushOption.brushType,\r\n panelId: brushOption.panelId,\r\n range: range\r\n };\r\n });\r\n controller.trigger('brush', {\r\n areas: areas,\r\n isEnd: !!opt.isEnd,\r\n removeOnClick: !!opt.removeOnClick\r\n });\r\n }\r\n function shouldShowCover(controller) {\r\n var track = controller._track;\r\n if (!track.length) {\r\n return false;\r\n }\r\n var p2 = track[track.length - 1];\r\n var p1 = track[0];\r\n var dx = p2[0] - p1[0];\r\n var dy = p2[1] - p1[1];\r\n var dist = mathPow$2(dx * dx + dy * dy, 0.5);\r\n return dist > UNSELECT_THRESHOLD;\r\n }\r\n function getTrackEnds(track) {\r\n var tail = track.length - 1;\r\n tail < 0 && (tail = 0);\r\n return [track[0], track[tail]];\r\n }\r\n function createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\r\n var cover = new Group();\r\n cover.add(new Rect({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true,\r\n draggable: true,\r\n cursor: 'move',\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n each(edgeNameSequences, function (nameSequence) {\r\n cover.add(new Rect({\r\n name: nameSequence.join(''),\r\n style: { opacity: 0 },\r\n draggable: true,\r\n silent: true,\r\n invisible: true,\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n });\r\n return cover;\r\n }\r\n function updateBaseRect(controller, cover, localRange, brushOption) {\r\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\r\n var handleSize = mathMax$7(lineWidth, MIN_RESIZE_LINE_WIDTH);\r\n var x = localRange[0][0];\r\n var y = localRange[1][0];\r\n var xa = x - lineWidth / 2;\r\n var ya = y - lineWidth / 2;\r\n var x2 = localRange[0][1];\r\n var y2 = localRange[1][1];\r\n var x2a = x2 - handleSize + lineWidth / 2;\r\n var y2a = y2 - handleSize + lineWidth / 2;\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var widtha = width + lineWidth;\r\n var heighta = height + lineWidth;\r\n updateRectShape(controller, cover, 'main', x, y, width, height);\r\n if (brushOption.transformable) {\r\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\r\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\r\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\r\n }\r\n }\r\n function updateCommon(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n var transformable = brushOption.transformable;\r\n var mainEl = cover.childAt(0);\r\n mainEl.useStyle(makeStyle(brushOption));\r\n mainEl.attr({\r\n silent: !transformable,\r\n cursor: transformable ? 'move' : 'default'\r\n });\r\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\r\n var el = cover.childOfName(nameSequence.join(''));\r\n var globalDir = nameSequence.length === 1\r\n ? getGlobalDirection1(controller, nameSequence[0])\r\n : getGlobalDirection2(controller, nameSequence);\r\n el && el.attr({\r\n silent: !transformable,\r\n invisible: !transformable,\r\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\r\n });\r\n });\r\n }\r\n function updateRectShape(controller, cover, name, x, y, w, h) {\r\n var el = cover.childOfName(name);\r\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\r\n }\r\n function makeStyle(brushOption) {\r\n return defaults({ strokeNoScale: true }, brushOption.brushStyle);\r\n }\r\n function formatRectRange(x, y, x2, y2) {\r\n var min = [mathMin$7(x, x2), mathMin$7(y, y2)];\r\n var max = [mathMax$7(x, x2), mathMax$7(y, y2)];\r\n return [\r\n [min[0], max[0]],\r\n [min[1], max[1]]\r\n ];\r\n }\r\n function getTransform$1(controller) {\r\n return getTransform(controller.group);\r\n }\r\n function getGlobalDirection1(controller, localDirName) {\r\n var map = { w: 'left', e: 'right', n: 'top', s: 'bottom' };\r\n var inverseMap = { left: 'w', right: 'e', top: 'n', bottom: 's' };\r\n var dir = transformDirection(map[localDirName], getTransform$1(controller));\r\n return inverseMap[dir];\r\n }\r\n function getGlobalDirection2(controller, localDirNameSeq) {\r\n var globalDir = [\r\n getGlobalDirection1(controller, localDirNameSeq[0]),\r\n getGlobalDirection1(controller, localDirNameSeq[1])\r\n ];\r\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\r\n return globalDir.join('');\r\n }\r\n function driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\r\n var brushOption = cover.__brushOption;\r\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(dirNameSequence, function (dirName) {\r\n var ind = DIRECTION_MAP[dirName];\r\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\r\n });\r\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function driftPolygon(controller, cover, dx, dy) {\r\n var range = cover.__brushOption.range;\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(range, function (point) {\r\n point[0] += localDelta[0];\r\n point[1] += localDelta[1];\r\n });\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function toLocalDelta(controller, dx, dy) {\r\n var thisGroup = controller.group;\r\n var localD = thisGroup.transformCoordToLocal(dx, dy);\r\n var localZero = thisGroup.transformCoordToLocal(0, 0);\r\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\r\n }\r\n function clipByPanel(controller, cover, data) {\r\n var panel = getPanelByCover(controller, cover);\r\n return (panel && panel !== BRUSH_PANEL_GLOBAL)\r\n ? panel.clipPath(data, controller._transform)\r\n : clone(data);\r\n }\r\n function pointsToRect(points) {\r\n var xmin = mathMin$7(points[0][0], points[1][0]);\r\n var ymin = mathMin$7(points[0][1], points[1][1]);\r\n var xmax = mathMax$7(points[0][0], points[1][0]);\r\n var ymax = mathMax$7(points[0][1], points[1][1]);\r\n return {\r\n x: xmin,\r\n y: ymin,\r\n width: xmax - xmin,\r\n height: ymax - ymin\r\n };\r\n }\r\n function resetCursor(controller, e, localCursorPoint) {\r\n if (!controller._brushType\r\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\r\n return;\r\n }\r\n var zr = controller._zr;\r\n var covers = controller._covers;\r\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\r\n if (!controller._dragging) {\r\n for (var i = 0; i < covers.length; i++) {\r\n var brushOption = covers[i].__brushOption;\r\n if (currPanel\r\n && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId)\r\n && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\r\n return;\r\n }\r\n }\r\n }\r\n currPanel && zr.setCursorStyle('crosshair');\r\n }\r\n function preventDefault(e) {\r\n var rawE = e.event;\r\n rawE.preventDefault && rawE.preventDefault();\r\n }\r\n function mainShapeContain(cover, x, y) {\r\n return cover.childOfName('main').contain(x, y);\r\n }\r\n function updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\r\n var creatingCover = controller._creatingCover;\r\n var panel = controller._creatingPanel;\r\n var thisBrushOption = controller._brushOption;\r\n var eventParams;\r\n controller._track.push(localCursorPoint.slice());\r\n if (shouldShowCover(controller) || creatingCover) {\r\n if (panel && !creatingCover) {\r\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\r\n var brushOption = clone(thisBrushOption);\r\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\r\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\r\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\r\n controller._covers.push(creatingCover);\r\n }\r\n if (creatingCover) {\r\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\r\n var coverBrushOption = creatingCover.__brushOption;\r\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\r\n if (isEnd) {\r\n endCreating(controller, creatingCover);\r\n coverRenderer.updateCommon(controller, creatingCover);\r\n }\r\n updateCoverShape(controller, creatingCover);\r\n eventParams = { isEnd: isEnd };\r\n }\r\n }\r\n else if (isEnd\r\n && thisBrushOption.brushMode === 'single'\r\n && thisBrushOption.removeOnClick) {\r\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\r\n eventParams = { isEnd: isEnd, removeOnClick: true };\r\n }\r\n }\r\n return eventParams;\r\n }\r\n function determineBrushType(brushType, panel) {\r\n if (brushType === 'auto') {\r\n if (__DEV__) {\r\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\r\n }\r\n return panel.defaultBrushType;\r\n }\r\n return brushType;\r\n }\r\n var pointerHandlers = {\r\n mousedown: function (e) {\r\n if (this._dragging) {\r\n handleDragEnd(this, e);\r\n }\r\n else if (!e.target || !e.target.draggable) {\r\n preventDefault(e);\r\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\r\n this._creatingCover = null;\r\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\r\n if (panel) {\r\n this._dragging = true;\r\n this._track = [localCursorPoint.slice()];\r\n }\r\n }\r\n },\r\n mousemove: function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\r\n resetCursor(this, e, localCursorPoint);\r\n if (this._dragging) {\r\n preventDefault(e);\r\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\r\n eventParams && trigger$1(this, eventParams);\r\n }\r\n },\r\n mouseup: function (e) {\r\n handleDragEnd(this, e);\r\n }\r\n };\r\n function handleDragEnd(controller, e) {\r\n if (controller._dragging) {\r\n preventDefault(e);\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\r\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\r\n controller._dragging = false;\r\n controller._track = [];\r\n controller._creatingCover = null;\r\n eventParams && trigger$1(controller, eventParams);\r\n }\r\n }\r\n function isOutsideZrArea(controller, x, y) {\r\n var zr = controller._zr;\r\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\r\n }\r\n var coverRenderers = {\r\n lineX: getLineRenderer(0),\r\n lineY: getLineRenderer(1),\r\n rect: {\r\n createCover: function (controller, brushOption) {\r\n function returnInput(range) {\r\n return range;\r\n }\r\n return createBaseRectCover({\r\n toRectRange: returnInput,\r\n fromRectRange: returnInput\r\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n updateBaseRect(controller, cover, localRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n },\r\n polygon: {\r\n createCover: function (controller, brushOption) {\r\n var cover = new Group();\r\n cover.add(new Polyline({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true\r\n }));\r\n return cover;\r\n },\r\n getCreatingRange: function (localTrack) {\r\n return localTrack;\r\n },\r\n endCreating: function (controller, cover) {\r\n cover.remove(cover.childAt(0));\r\n cover.add(new Polygon({\r\n name: 'main',\r\n draggable: true,\r\n drift: curry(driftPolygon, controller, cover),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n cover.childAt(0).setShape({\r\n points: clipByPanel(controller, cover, localRange)\r\n });\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n }\r\n };\r\n function getLineRenderer(xyIndex) {\r\n return {\r\n createCover: function (controller, brushOption) {\r\n return createBaseRectCover({\r\n toRectRange: function (range) {\r\n var rectRange = [range, [0, 100]];\r\n xyIndex && rectRange.reverse();\r\n return rectRange;\r\n },\r\n fromRectRange: function (rectRange) {\r\n return rectRange[xyIndex];\r\n }\r\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n var min = mathMin$7(ends[0][xyIndex], ends[1][xyIndex]);\r\n var max = mathMax$7(ends[0][xyIndex], ends[1][xyIndex]);\r\n return [min, max];\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n var otherExtent;\r\n var panel = getPanelByCover(controller, cover);\r\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\r\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\r\n }\r\n else {\r\n var zr = controller._zr;\r\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\r\n }\r\n var rectRange = [localRange, otherExtent];\r\n xyIndex && rectRange.reverse();\r\n updateBaseRect(controller, cover, rectRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n };\r\n }\n\n function makeRectPanelClipPath(rect) {\r\n rect = normalizeRect(rect);\r\n return function (localPoints) {\r\n return clipPointsByRect(localPoints, rect);\r\n };\r\n }\r\n function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\r\n rect = normalizeRect(rect);\r\n return function (xyIndex) {\r\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\r\n var brushWidth = idx ? rect.width : rect.height;\r\n var base = idx ? rect.x : rect.y;\r\n return [base, base + (brushWidth || 0)];\r\n };\r\n }\r\n function makeRectIsTargetByCursor(rect, api, targetModel) {\r\n var boundingRect = normalizeRect(rect);\r\n return function (e, localCursorPoint) {\r\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1])\r\n && !onIrrelevantElement(e, api, targetModel);\r\n };\r\n }\r\n function normalizeRect(rect) {\r\n return BoundingRect.create(rect);\r\n }\n\n var elementList = ['axisLine', 'axisTickLabel', 'axisName'];\r\n var ParallelAxisView = (function (_super) {\r\n __extends(ParallelAxisView, _super);\r\n function ParallelAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelAxisView.type;\r\n return _this;\r\n }\r\n ParallelAxisView.prototype.init = function (ecModel, api) {\r\n _super.prototype.init.apply(this, arguments);\r\n (this._brushController = new BrushController(api.getZr()))\r\n .on('brush', bind(this._onBrush, this));\r\n };\r\n ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\r\n return;\r\n }\r\n this.axisModel = axisModel;\r\n this.api = api;\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var coordSysModel = getCoordSysModel(axisModel, ecModel);\r\n var coordSys = coordSysModel.coordinateSystem;\r\n var areaSelectStyle = axisModel.getAreaSelectStyle();\r\n var areaWidth = areaSelectStyle.width;\r\n var dim = axisModel.axis.dim;\r\n var axisLayout = coordSys.getAxisLayout(dim);\r\n var builderOpt = extend({ strokeContainThreshold: areaWidth }, axisLayout);\r\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\r\n each(elementList, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n };\r\n ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\r\n var extent = axisModel.axis.getExtent();\r\n var extentLen = extent[1] - extent[0];\r\n var extra = Math.min(30, Math.abs(extentLen) * 0.1);\r\n var rect = BoundingRect.create({\r\n x: extent[0],\r\n y: -areaWidth / 2,\r\n width: extentLen,\r\n height: areaWidth\r\n });\r\n rect.x -= extra;\r\n rect.width += 2 * extra;\r\n this._brushController\r\n .mount({\r\n enableGlobalPan: true,\r\n rotation: builderOpt.rotation,\r\n x: builderOpt.position[0],\r\n y: builderOpt.position[1]\r\n })\r\n .setPanels([{\r\n panelId: 'pl',\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect, 0)\r\n }])\r\n .enableBrush({\r\n brushType: 'lineX',\r\n brushStyle: areaSelectStyle,\r\n removeOnClick: true\r\n })\r\n .updateCovers(getCoverInfoList(axisModel));\r\n };\r\n ParallelAxisView.prototype._onBrush = function (eventParam) {\r\n var coverInfoList = eventParam.areas;\r\n var axisModel = this.axisModel;\r\n var axis = axisModel.axis;\r\n var intervals = map(coverInfoList, function (coverInfo) {\r\n return [\r\n axis.coordToData(coverInfo.range[0], true),\r\n axis.coordToData(coverInfo.range[1], true)\r\n ];\r\n });\r\n if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\r\n this.api.dispatchAction({\r\n type: 'axisAreaSelect',\r\n parallelAxisId: axisModel.id,\r\n intervals: intervals\r\n });\r\n }\r\n };\r\n ParallelAxisView.prototype.dispose = function () {\r\n this._brushController.dispose();\r\n };\r\n ParallelAxisView.type = 'parallelAxis';\r\n return ParallelAxisView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ParallelAxisView);\r\n function fromAxisAreaSelect(axisModel, ecModel, payload) {\r\n return payload\r\n && payload.type === 'axisAreaSelect'\r\n && ecModel.findComponents({ mainType: 'parallelAxis', query: payload })[0] === axisModel;\r\n }\r\n function getCoverInfoList(axisModel) {\r\n var axis = axisModel.axis;\r\n return map(axisModel.activeIntervals, function (interval) {\r\n return {\r\n brushType: 'lineX',\r\n panelId: 'pl',\r\n range: [\r\n axis.dataToCoord(interval[0], true),\r\n axis.dataToCoord(interval[1], true)\r\n ]\r\n };\r\n });\r\n }\r\n function getCoordSysModel(axisModel, ecModel) {\r\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\r\n }\n\n var CLICK_THRESHOLD = 5;\r\n var ParallelView = (function (_super) {\r\n __extends(ParallelView, _super);\r\n function ParallelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelView.type;\r\n return _this;\r\n }\r\n ParallelView.prototype.render = function (parallelModel, ecModel, api) {\r\n this._model = parallelModel;\r\n this._api = api;\r\n if (!this._handlers) {\r\n this._handlers = {};\r\n each(handlers, function (handler, eventName) {\r\n api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\r\n }, this);\r\n }\r\n createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\r\n };\r\n ParallelView.prototype.dispose = function (ecModel, api) {\r\n each(this._handlers, function (handler, eventName) {\r\n api.getZr().off(eventName, handler);\r\n });\r\n this._handlers = null;\r\n };\r\n ParallelView.prototype._throttledDispatchExpand = function (opt) {\r\n this._dispatchExpand(opt);\r\n };\r\n ParallelView.prototype._dispatchExpand = function (opt) {\r\n opt && this._api.dispatchAction(extend({ type: 'parallelAxisExpand' }, opt));\r\n };\r\n ParallelView.type = 'parallel';\r\n return ParallelView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ParallelView);\r\n var handlers = {\r\n mousedown: function (e) {\r\n if (checkTrigger(this, 'click')) {\r\n this._mouseDownPoint = [e.offsetX, e.offsetY];\r\n }\r\n },\r\n mouseup: function (e) {\r\n var mouseDownPoint = this._mouseDownPoint;\r\n if (checkTrigger(this, 'click') && mouseDownPoint) {\r\n var point = [e.offsetX, e.offsetY];\r\n var dist = Math.pow(mouseDownPoint[0] - point[0], 2)\r\n + Math.pow(mouseDownPoint[1] - point[1], 2);\r\n if (dist > CLICK_THRESHOLD) {\r\n return;\r\n }\r\n var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\r\n result.behavior !== 'none' && this._dispatchExpand({\r\n axisExpandWindow: result.axisExpandWindow\r\n });\r\n }\r\n this._mouseDownPoint = null;\r\n },\r\n mousemove: function (e) {\r\n if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\r\n return;\r\n }\r\n var model = this._model;\r\n var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\r\n var behavior = result.behavior;\r\n behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\r\n this._throttledDispatchExpand(behavior === 'none'\r\n ? null\r\n : {\r\n axisExpandWindow: result.axisExpandWindow,\r\n animation: behavior === 'jump' ? null : {\r\n duration: 0\r\n }\r\n });\r\n }\r\n };\r\n function checkTrigger(view, triggerOn) {\r\n var model = view._model;\r\n return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\r\n }\r\n registerPreprocessor(parallelPreprocessor);\n\n var ParallelSeriesModel = (function (_super) {\r\n __extends(ParallelSeriesModel, _super);\r\n function ParallelSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelSeriesModel.type;\r\n _this.visualStyleAccessPath = 'lineStyle';\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: bind(makeDefaultEncode, null, this)\r\n });\r\n };\r\n ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\r\n var coordSys = this.coordinateSystem;\r\n var data = this.getData();\r\n var indices = [];\r\n coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\r\n if (activeState === theActiveState) {\r\n indices.push(data.getRawIndex(dataIndex));\r\n }\r\n });\r\n return indices;\r\n };\r\n ParallelSeriesModel.type = 'series.parallel';\r\n ParallelSeriesModel.dependencies = ['parallel'];\r\n ParallelSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'parallel',\r\n parallelIndex: 0,\r\n label: {\r\n show: false\r\n },\r\n inactiveOpacity: 0.05,\r\n activeOpacity: 1,\r\n lineStyle: {\r\n width: 1,\r\n opacity: 0.45,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n label: {\r\n show: false\r\n }\r\n },\r\n progressive: 500,\r\n smooth: false,\r\n animationEasing: 'linear'\r\n };\r\n return ParallelSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ParallelSeriesModel);\r\n function makeDefaultEncode(seriesModel) {\r\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n if (!parallelModel) {\r\n return;\r\n }\r\n var encodeDefine = {};\r\n each(parallelModel.dimensions, function (axisDim) {\r\n var dataDimIndex = convertDimNameToNumber(axisDim);\r\n encodeDefine[axisDim] = dataDimIndex;\r\n });\r\n return encodeDefine;\r\n }\r\n function convertDimNameToNumber(dimName) {\r\n return +dimName.replace('dim', '');\r\n }\n\n var DEFAULT_SMOOTH = 0.3;\r\n var ParallelView$1 = (function (_super) {\r\n __extends(ParallelView, _super);\r\n function ParallelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelView.type;\r\n _this._dataGroup = new Group();\r\n _this._initialized = false;\r\n return _this;\r\n }\r\n ParallelView.prototype.init = function () {\r\n this.group.add(this._dataGroup);\r\n };\r\n ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var dataGroup = this._dataGroup;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var dimensions = coordSys.dimensions;\r\n var seriesScope = makeSeriesScope$2(seriesModel);\r\n data.diff(oldData)\r\n .add(add)\r\n .update(update)\r\n .remove(remove)\r\n .execute();\r\n function add(newDataIndex) {\r\n var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\r\n updateElCommon(line, data, newDataIndex, seriesScope);\r\n }\r\n function update(newDataIndex, oldDataIndex) {\r\n var line = oldData.getItemGraphicEl(oldDataIndex);\r\n var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\r\n data.setItemGraphicEl(newDataIndex, line);\r\n updateProps(line, { shape: { points: points } }, seriesModel, newDataIndex);\r\n updateElCommon(line, data, newDataIndex, seriesScope);\r\n }\r\n function remove(oldDataIndex) {\r\n var line = oldData.getItemGraphicEl(oldDataIndex);\r\n dataGroup.remove(line);\r\n }\r\n if (!this._initialized) {\r\n this._initialized = true;\r\n var clipPath = createGridClipShape(coordSys, seriesModel, function () {\r\n setTimeout(function () {\r\n dataGroup.removeClipPath();\r\n });\r\n });\r\n dataGroup.setClipPath(clipPath);\r\n }\r\n this._data = data;\r\n };\r\n ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this._initialized = true;\r\n this._data = null;\r\n this._dataGroup.removeAll();\r\n };\r\n ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var dimensions = coordSys.dimensions;\r\n var seriesScope = makeSeriesScope$2(seriesModel);\r\n for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\r\n var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\r\n line.incremental = true;\r\n updateElCommon(line, data, dataIndex, seriesScope);\r\n }\r\n };\r\n ParallelView.prototype.remove = function () {\r\n this._dataGroup && this._dataGroup.removeAll();\r\n this._data = null;\r\n };\r\n ParallelView.type = 'parallel';\r\n return ParallelView;\r\n }(ChartView));\r\n function createGridClipShape(coordSys, seriesModel, cb) {\r\n var parallelModel = coordSys.model;\r\n var rect = coordSys.getRect();\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n }\r\n });\r\n var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\r\n rectEl.setShape(dim, 0);\r\n initProps(rectEl, {\r\n shape: {\r\n width: rect.width,\r\n height: rect.height\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n function createLinePoints(data, dataIndex, dimensions, coordSys) {\r\n var points = [];\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimName = dimensions[i];\r\n var value = data.get(data.mapDimension(dimName), dataIndex);\r\n if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\r\n points.push(coordSys.dataToPoint(value, dimName));\r\n }\r\n }\r\n return points;\r\n }\r\n function addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\r\n var points = createLinePoints(data, dataIndex, dimensions, coordSys);\r\n var line = new Polyline({\r\n shape: { points: points },\r\n z2: 10\r\n });\r\n dataGroup.add(line);\r\n data.setItemGraphicEl(dataIndex, line);\r\n return line;\r\n }\r\n function makeSeriesScope$2(seriesModel) {\r\n var smooth = seriesModel.get('smooth', true);\r\n smooth === true && (smooth = DEFAULT_SMOOTH);\r\n return {\r\n smooth: smooth != null ? +smooth : DEFAULT_SMOOTH\r\n };\r\n }\r\n function updateElCommon(el, data, dataIndex, seriesScope) {\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.fill = null;\r\n seriesScope.smooth && (el.shape.smooth = seriesScope.smooth);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n setStatesStylesFromModel(el, itemModel, 'lineStyle', 'getLineStyle');\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n function isEmptyValue(val, axisType) {\r\n return axisType === 'category'\r\n ? val == null\r\n : (val == null || isNaN(val));\r\n }\r\n ChartView.registerClass(ParallelView$1);\n\n var opacityAccessPath$1 = ['lineStyle', 'opacity'];\r\n var parallelVisual = {\r\n seriesType: 'parallel',\r\n reset: function (seriesModel, ecModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var opacityMap = {\r\n normal: seriesModel.get(['lineStyle', 'opacity']),\r\n active: seriesModel.get('activeOpacity'),\r\n inactive: seriesModel.get('inactiveOpacity')\r\n };\r\n return {\r\n progress: function (params, data) {\r\n coordSys.eachActiveState(data, function (activeState, dataIndex) {\r\n var opacity = opacityMap[activeState];\r\n if (activeState === 'normal' && data.hasItemOption) {\r\n var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath$1, true);\r\n itemOpacity != null && (opacity = itemOpacity);\r\n }\r\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n existsStyle.opacity = opacity;\r\n }, params.start, params.end);\r\n }\r\n };\r\n }\r\n };\n\n registerVisual(parallelVisual);\n\n var SankeySeriesModel = (function (_super) {\r\n __extends(SankeySeriesModel, _super);\r\n function SankeySeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SankeySeriesModel.type;\r\n return _this;\r\n }\r\n SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var links = option.edges || option.links;\r\n var nodes = option.data || option.nodes;\r\n var levels = option.levels;\r\n this.levelModels = [];\r\n var levelModels = this.levelModels;\r\n for (var i = 0; i < levels.length; i++) {\r\n if (levels[i].depth != null && levels[i].depth >= 0) {\r\n levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\r\n }\r\n else {\r\n if (__DEV__) {\r\n throw new Error('levels[i].depth is mandatory and should be natural number');\r\n }\r\n }\r\n }\r\n if (nodes && links) {\r\n var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\r\n return graph.data;\r\n }\r\n function beforeLink(nodeData, edgeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var seriesModel = model.parentModel;\r\n var layout = seriesModel.getData().getItemLayout(idx);\r\n if (layout) {\r\n var nodeDepth = layout.depth;\r\n var levelModel = seriesModel.levelModels[nodeDepth];\r\n if (levelModel) {\r\n model.parentModel = levelModel;\r\n }\r\n }\r\n return model;\r\n });\r\n edgeData.wrapMethod('getItemModel', function (model, idx) {\r\n var seriesModel = model.parentModel;\r\n var edge = seriesModel.getGraph().getEdgeByIndex(idx);\r\n var layout = edge.node1.getLayout();\r\n if (layout) {\r\n var depth = layout.depth;\r\n var levelModel = seriesModel.levelModels[depth];\r\n if (levelModel) {\r\n model.parentModel = levelModel;\r\n }\r\n }\r\n return model;\r\n });\r\n }\r\n };\r\n SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\r\n var dataItem = this.option.data[dataIndex];\r\n dataItem.localX = localPosition[0];\r\n dataItem.localY = localPosition[1];\r\n };\r\n SankeySeriesModel.prototype.getGraph = function () {\r\n return this.getData().graph;\r\n };\r\n SankeySeriesModel.prototype.getEdgeData = function () {\r\n return this.getGraph().edgeData;\r\n };\r\n SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n if (dataType === 'edge') {\r\n var params = this.getDataParams(dataIndex, dataType);\r\n var rawDataOpt = params.data;\r\n if (renderMode === 'richText') {\r\n return encodeHTML(rawDataOpt.source + ' -- ' + rawDataOpt.target) + params.value;\r\n }\r\n return '
'\r\n + concatTooltipHtml(rawDataOpt.source + ' -- ' + rawDataOpt.target, params.value || '')\r\n + '
';\r\n }\r\n else if (dataType === 'node') {\r\n var node = this.getGraph().getNodeByIndex(dataIndex);\r\n var value = node.getLayout().value;\r\n var name_1 = this.getDataParams(dataIndex, dataType).data.name;\r\n if (renderMode === 'richText') {\r\n return encodeHTML(value ? name_1 : '') + ': ' + (value || '');\r\n }\r\n return '
'\r\n + concatTooltipHtml(value ? name_1 : '', value || '')\r\n + '
';\r\n }\r\n return _super.prototype.formatTooltip.call(this, dataIndex, multipleSeries, dataType, renderMode);\r\n };\r\n SankeySeriesModel.prototype.optionUpdated = function () {\r\n var option = this.option;\r\n if (option.focusNodeAdjacency === true) {\r\n option.focusNodeAdjacency = 'allEdges';\r\n }\r\n };\r\n SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\r\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\r\n if (params.value == null && dataType === 'node') {\r\n var node = this.getGraph().getNodeByIndex(dataIndex);\r\n var nodeValue = node.getLayout().value;\r\n params.value = nodeValue;\r\n }\r\n return params;\r\n };\r\n SankeySeriesModel.type = 'series.sankey';\r\n SankeySeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n left: '5%',\r\n top: '5%',\r\n right: '20%',\r\n bottom: '5%',\r\n orient: 'horizontal',\r\n nodeWidth: 20,\r\n nodeGap: 8,\r\n draggable: true,\r\n focusNodeAdjacency: false,\r\n layoutIterations: 32,\r\n label: {\r\n show: true,\r\n position: 'right',\r\n fontSize: 12\r\n },\r\n levels: [],\r\n nodeAlign: 'justify',\r\n lineStyle: {\r\n color: '#314656',\r\n opacity: 0.2,\r\n curveness: 0.5\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n opacity: 0.5\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n animationEasing: 'linear',\r\n animationDuration: 1000\r\n };\r\n return SankeySeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(SankeySeriesModel);\n\n var SankeyPathShape = (function () {\r\n function SankeyPathShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.cpx2 = 0;\r\n this.cpy2 = 0;\r\n this.extent = 0;\r\n }\r\n return SankeyPathShape;\r\n }());\r\n var SankeyPath = (function (_super) {\r\n __extends(SankeyPath, _super);\r\n function SankeyPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n SankeyPath.prototype.getDefaultShape = function () {\r\n return new SankeyPathShape();\r\n };\r\n SankeyPath.prototype.buildPath = function (ctx, shape) {\r\n var extent = shape.extent;\r\n ctx.moveTo(shape.x1, shape.y1);\r\n ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\r\n if (shape.orient === 'vertical') {\r\n ctx.lineTo(shape.x2 + extent, shape.y2);\r\n ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\r\n }\r\n else {\r\n ctx.lineTo(shape.x2, shape.y2 + extent);\r\n ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\r\n }\r\n ctx.closePath();\r\n };\r\n SankeyPath.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n SankeyPath.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n return SankeyPath;\r\n }(Path));\r\n var SankeyView = (function (_super) {\r\n __extends(SankeyView, _super);\r\n function SankeyView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SankeyView.type;\r\n _this._focusAdjacencyDisabled = false;\r\n return _this;\r\n }\r\n SankeyView.prototype.render = function (seriesModel, ecModel, api) {\r\n var sankeyView = this;\r\n var graph = seriesModel.getGraph();\r\n var group = this.group;\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var width = layoutInfo.width;\r\n var height = layoutInfo.height;\r\n var nodeData = seriesModel.getData();\r\n var edgeData = seriesModel.getData('edge');\r\n var orient = seriesModel.get('orient');\r\n this._model = seriesModel;\r\n group.removeAll();\r\n group.x = layoutInfo.x;\r\n group.y = layoutInfo.y;\r\n graph.eachEdge(function (edge) {\r\n var curve = new SankeyPath();\r\n var ecData = getECData(curve);\r\n ecData.dataIndex = edge.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n ecData.dataType = 'edge';\r\n var edgeModel = edge.getModel();\r\n var lineStyleModel = edgeModel.getModel('lineStyle');\r\n var curvature = lineStyleModel.get('curveness');\r\n var n1Layout = edge.node1.getLayout();\r\n var node1Model = edge.node1.getModel();\r\n var dragX1 = node1Model.get('localX');\r\n var dragY1 = node1Model.get('localY');\r\n var n2Layout = edge.node2.getLayout();\r\n var node2Model = edge.node2.getModel();\r\n var dragX2 = node2Model.get('localX');\r\n var dragY2 = node2Model.get('localY');\r\n var edgeLayout = edge.getLayout();\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n var cpx1;\r\n var cpy1;\r\n var cpx2;\r\n var cpy2;\r\n curve.shape.extent = Math.max(1, edgeLayout.dy);\r\n curve.shape.orient = orient;\r\n if (orient === 'vertical') {\r\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\r\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\r\n x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\r\n y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\r\n cpx1 = x1;\r\n cpy1 = y1 * (1 - curvature) + y2 * curvature;\r\n cpx2 = x2;\r\n cpy2 = y1 * curvature + y2 * (1 - curvature);\r\n }\r\n else {\r\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\r\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\r\n x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\r\n y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\r\n cpx1 = x1 * (1 - curvature) + x2 * curvature;\r\n cpy1 = y1;\r\n cpx2 = x1 * curvature + x2 * (1 - curvature);\r\n cpy2 = y2;\r\n }\r\n curve.setShape({\r\n x1: x1,\r\n y1: y1,\r\n x2: x2,\r\n y2: y2,\r\n cpx1: cpx1,\r\n cpy1: cpy1,\r\n cpx2: cpx2,\r\n cpy2: cpy2\r\n });\r\n curve.useStyle(lineStyleModel.getItemStyle());\r\n switch (curve.style.fill) {\r\n case 'source':\r\n curve.style.fill = edge.node1.getVisual('color');\r\n break;\r\n case 'target':\r\n curve.style.fill = edge.node2.getVisual('color');\r\n break;\r\n case 'gradient':\r\n var sourceColor = edge.node1.getVisual('color');\r\n var targetColor = edge.node2.getVisual('color');\r\n if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\r\n curve.style.fill = new LinearGradient(0, 0, 1, 0, [{\r\n color: sourceColor,\r\n offset: 0\r\n }, {\r\n color: targetColor,\r\n offset: 1\r\n }]);\r\n }\r\n }\r\n var emphasisModel = edgeModel.getModel('emphasis');\r\n setStatesStylesFromModel(curve, edgeModel, 'lineStyle', 'getItemStyle');\r\n group.add(curve);\r\n edgeData.setItemGraphicEl(edge.dataIndex, curve);\r\n var focus = emphasisModel.get('focus');\r\n enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\r\n getECData(curve).dataType = 'edge';\r\n });\r\n graph.eachNode(function (node) {\r\n var layout = node.getLayout();\r\n var itemModel = node.getModel();\r\n var dragX = itemModel.get('localX');\r\n var dragY = itemModel.get('localY');\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var rect = new Rect({\r\n shape: {\r\n x: dragX != null ? dragX * width : layout.x,\r\n y: dragY != null ? dragY * height : layout.y,\r\n width: layout.dx,\r\n height: layout.dy\r\n },\r\n style: itemModel.getModel('itemStyle').getItemStyle()\r\n });\r\n setLabelStyle(rect, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: node.dataIndex,\r\n defaultText: node.id\r\n });\r\n rect.disableLabelAnimation = true;\r\n rect.setStyle('fill', node.getVisual('color'));\r\n setStatesStylesFromModel(rect, itemModel);\r\n group.add(rect);\r\n nodeData.setItemGraphicEl(node.dataIndex, rect);\r\n getECData(rect).dataType = 'node';\r\n var focus = emphasisModel.get('focus');\r\n enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\r\n });\r\n nodeData.eachItemGraphicEl(function (el, dataIndex) {\r\n var itemModel = nodeData.getItemModel(dataIndex);\r\n if (itemModel.get('draggable')) {\r\n el.drift = function (dx, dy) {\r\n sankeyView._focusAdjacencyDisabled = true;\r\n this.shape.x += dx;\r\n this.shape.y += dy;\r\n this.dirty();\r\n api.dispatchAction({\r\n type: 'dragNode',\r\n seriesId: seriesModel.id,\r\n dataIndex: nodeData.getRawIndex(dataIndex),\r\n localX: this.shape.x / width,\r\n localY: this.shape.y / height\r\n });\r\n };\r\n el.ondragend = function () {\r\n sankeyView._focusAdjacencyDisabled = false;\r\n };\r\n el.draggable = true;\r\n el.cursor = 'move';\r\n }\r\n });\r\n if (!this._data && seriesModel.isAnimationEnabled()) {\r\n group.setClipPath(createGridClipShape$1(group.getBoundingRect(), seriesModel, function () {\r\n group.removeClipPath();\r\n }));\r\n }\r\n this._data = seriesModel.getData();\r\n };\r\n SankeyView.prototype.dispose = function () {\r\n };\r\n SankeyView.type = 'sankey';\r\n return SankeyView;\r\n }(ChartView));\r\n function createGridClipShape$1(rect, seriesModel, cb) {\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x - 10,\r\n y: rect.y - 10,\r\n width: 0,\r\n height: rect.height + 20\r\n }\r\n });\r\n initProps(rectEl, {\r\n shape: {\r\n width: rect.width + 20\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n ChartView.registerClass(SankeyView);\n\n registerAction({\r\n type: 'dragNode',\r\n event: 'dragnode',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n subType: 'sankey',\r\n query: payload\r\n }, function (seriesModel) {\r\n seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\r\n });\r\n });\n\n function sankeyLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\r\n var nodeWidth = seriesModel.get('nodeWidth');\r\n var nodeGap = seriesModel.get('nodeGap');\r\n var layoutInfo = getViewRect$4(seriesModel, api);\r\n seriesModel.layoutInfo = layoutInfo;\r\n var width = layoutInfo.width;\r\n var height = layoutInfo.height;\r\n var graph = seriesModel.getGraph();\r\n var nodes = graph.nodes;\r\n var edges = graph.edges;\r\n computeNodeValues(nodes);\r\n var filteredNodes = filter(nodes, function (node) {\r\n return node.getLayout().value === 0;\r\n });\r\n var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\r\n var orient = seriesModel.get('orient');\r\n var nodeAlign = seriesModel.get('nodeAlign');\r\n layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\r\n });\r\n }\r\n function getViewRect$4(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\r\n computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\r\n computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\r\n computeEdgeDepths(nodes, orient);\r\n }\r\n function computeNodeValues(nodes) {\r\n each(nodes, function (node) {\r\n var value1 = sum(node.outEdges, getEdgeValue);\r\n var value2 = sum(node.inEdges, getEdgeValue);\r\n var nodeRawValue = node.getValue() || 0;\r\n var value = Math.max(value1, value2, nodeRawValue);\r\n node.setLayout({ value: value }, true);\r\n });\r\n }\r\n function computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\r\n var remainEdges = [];\r\n var indegreeArr = [];\r\n var zeroIndegrees = [];\r\n var nextTargetNode = [];\r\n var x = 0;\r\n for (var i = 0; i < edges.length; i++) {\r\n remainEdges[i] = 1;\r\n }\r\n for (var i = 0; i < nodes.length; i++) {\r\n indegreeArr[i] = nodes[i].inEdges.length;\r\n if (indegreeArr[i] === 0) {\r\n zeroIndegrees.push(nodes[i]);\r\n }\r\n }\r\n var maxNodeDepth = -1;\r\n while (zeroIndegrees.length) {\r\n for (var idx = 0; idx < zeroIndegrees.length; idx++) {\r\n var node = zeroIndegrees[idx];\r\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\r\n var isItemDepth = item.depth != null && item.depth >= 0;\r\n if (isItemDepth && item.depth > maxNodeDepth) {\r\n maxNodeDepth = item.depth;\r\n }\r\n node.setLayout({ depth: isItemDepth ? item.depth : x }, true);\r\n orient === 'vertical'\r\n ? node.setLayout({ dy: nodeWidth }, true)\r\n : node.setLayout({ dx: nodeWidth }, true);\r\n for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\r\n var edge = node.outEdges[edgeIdx];\r\n var indexEdge = edges.indexOf(edge);\r\n remainEdges[indexEdge] = 0;\r\n var targetNode = edge.node2;\r\n var nodeIndex = nodes.indexOf(targetNode);\r\n if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\r\n nextTargetNode.push(targetNode);\r\n }\r\n }\r\n }\r\n ++x;\r\n zeroIndegrees = nextTargetNode;\r\n nextTargetNode = [];\r\n }\r\n for (var i = 0; i < remainEdges.length; i++) {\r\n if (remainEdges[i] === 1) {\r\n throw new Error('Sankey is a DAG, the original data has cycle!');\r\n }\r\n }\r\n var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\r\n if (nodeAlign && nodeAlign !== 'left') {\r\n adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\r\n }\r\n var kx = orient === 'vertical'\r\n ? (height - nodeWidth) / maxDepth\r\n : (width - nodeWidth) / maxDepth;\r\n scaleNodeBreadths(nodes, kx, orient);\r\n }\r\n function isNodeDepth(node) {\r\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\r\n return item.depth != null && item.depth >= 0;\r\n }\r\n function adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\r\n if (nodeAlign === 'right') {\r\n var nextSourceNode = [];\r\n var remainNodes = nodes;\r\n var nodeHeight = 0;\r\n while (remainNodes.length) {\r\n for (var i = 0; i < remainNodes.length; i++) {\r\n var node = remainNodes[i];\r\n node.setLayout({ skNodeHeight: nodeHeight }, true);\r\n for (var j = 0; j < node.inEdges.length; j++) {\r\n var edge = node.inEdges[j];\r\n if (nextSourceNode.indexOf(edge.node1) < 0) {\r\n nextSourceNode.push(edge.node1);\r\n }\r\n }\r\n }\r\n remainNodes = nextSourceNode;\r\n nextSourceNode = [];\r\n ++nodeHeight;\r\n }\r\n each(nodes, function (node) {\r\n if (!isNodeDepth(node)) {\r\n node.setLayout({ depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight) }, true);\r\n }\r\n });\r\n }\r\n else if (nodeAlign === 'justify') {\r\n moveSinksRight(nodes, maxDepth);\r\n }\r\n }\r\n function moveSinksRight(nodes, maxDepth) {\r\n each(nodes, function (node) {\r\n if (!isNodeDepth(node) && !node.outEdges.length) {\r\n node.setLayout({ depth: maxDepth }, true);\r\n }\r\n });\r\n }\r\n function scaleNodeBreadths(nodes, kx, orient) {\r\n each(nodes, function (node) {\r\n var nodeDepth = node.getLayout().depth * kx;\r\n orient === 'vertical'\r\n ? node.setLayout({ y: nodeDepth }, true)\r\n : node.setLayout({ x: nodeDepth }, true);\r\n });\r\n }\r\n function computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\r\n var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\r\n initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n for (var alpha = 1; iterations > 0; iterations--) {\r\n alpha *= 0.99;\r\n relaxRightToLeft(nodesByBreadth, alpha, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n relaxLeftToRight(nodesByBreadth, alpha, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n }\r\n }\r\n function prepareNodesByBreadth(nodes, orient) {\r\n var nodesByBreadth = [];\r\n var keyAttr = orient === 'vertical' ? 'y' : 'x';\r\n var groupResult = groupData(nodes, function (node) {\r\n return node.getLayout()[keyAttr];\r\n });\r\n groupResult.keys.sort(function (a, b) {\r\n return a - b;\r\n });\r\n each(groupResult.keys, function (key) {\r\n nodesByBreadth.push(groupResult.buckets.get(key));\r\n });\r\n return nodesByBreadth;\r\n }\r\n function initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\r\n var minKy = Infinity;\r\n each(nodesByBreadth, function (nodes) {\r\n var n = nodes.length;\r\n var sum = 0;\r\n each(nodes, function (node) {\r\n sum += node.getLayout().value;\r\n });\r\n var ky = orient === 'vertical'\r\n ? (width - (n - 1) * nodeGap) / sum\r\n : (height - (n - 1) * nodeGap) / sum;\r\n if (ky < minKy) {\r\n minKy = ky;\r\n }\r\n });\r\n each(nodesByBreadth, function (nodes) {\r\n each(nodes, function (node, i) {\r\n var nodeDy = node.getLayout().value * minKy;\r\n if (orient === 'vertical') {\r\n node.setLayout({ x: i }, true);\r\n node.setLayout({ dx: nodeDy }, true);\r\n }\r\n else {\r\n node.setLayout({ y: i }, true);\r\n node.setLayout({ dy: nodeDy }, true);\r\n }\r\n });\r\n });\r\n each(edges, function (edge) {\r\n var edgeDy = +edge.getValue() * minKy;\r\n edge.setLayout({ dy: edgeDy }, true);\r\n });\r\n }\r\n function resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\r\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\r\n each(nodesByBreadth, function (nodes) {\r\n nodes.sort(function (a, b) {\r\n return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\r\n });\r\n var nodeX;\r\n var node;\r\n var dy;\r\n var y0 = 0;\r\n var n = nodes.length;\r\n var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\r\n for (var i = 0; i < n; i++) {\r\n node = nodes[i];\r\n dy = y0 - node.getLayout()[keyAttr];\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] + dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n }\r\n y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\r\n }\r\n var viewWidth = orient === 'vertical' ? width : height;\r\n dy = y0 - nodeGap - viewWidth;\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] - dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n y0 = nodeX;\r\n for (var i = n - 2; i >= 0; --i) {\r\n node = nodes[i];\r\n dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] - dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n }\r\n y0 = node.getLayout()[keyAttr];\r\n }\r\n }\r\n });\r\n }\r\n function relaxRightToLeft(nodesByBreadth, alpha, orient) {\r\n each(nodesByBreadth.slice().reverse(), function (nodes) {\r\n each(nodes, function (node) {\r\n if (node.outEdges.length) {\r\n var y = sum(node.outEdges, weightedTarget, orient)\r\n / sum(node.outEdges, getEdgeValue);\r\n if (isNaN(y)) {\r\n var len = node.outEdges.length;\r\n y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\r\n }\r\n if (orient === 'vertical') {\r\n var nodeX = node.getLayout().x + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ x: nodeX }, true);\r\n }\r\n else {\r\n var nodeY = node.getLayout().y + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ y: nodeY }, true);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n function weightedTarget(edge, orient) {\r\n return center$1(edge.node2, orient) * edge.getValue();\r\n }\r\n function centerTarget(edge, orient) {\r\n return center$1(edge.node2, orient);\r\n }\r\n function weightedSource(edge, orient) {\r\n return center$1(edge.node1, orient) * edge.getValue();\r\n }\r\n function centerSource(edge, orient) {\r\n return center$1(edge.node1, orient);\r\n }\r\n function center$1(node, orient) {\r\n return orient === 'vertical'\r\n ? node.getLayout().x + node.getLayout().dx / 2\r\n : node.getLayout().y + node.getLayout().dy / 2;\r\n }\r\n function getEdgeValue(edge) {\r\n return edge.getValue();\r\n }\r\n function sum(array, cb, orient) {\r\n var sum = 0;\r\n var len = array.length;\r\n var i = -1;\r\n while (++i < len) {\r\n var value = +cb(array[i], orient);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n return sum;\r\n }\r\n function relaxLeftToRight(nodesByBreadth, alpha, orient) {\r\n each(nodesByBreadth, function (nodes) {\r\n each(nodes, function (node) {\r\n if (node.inEdges.length) {\r\n var y = sum(node.inEdges, weightedSource, orient)\r\n / sum(node.inEdges, getEdgeValue);\r\n if (isNaN(y)) {\r\n var len = node.inEdges.length;\r\n y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\r\n }\r\n if (orient === 'vertical') {\r\n var nodeX = node.getLayout().x + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ x: nodeX }, true);\r\n }\r\n else {\r\n var nodeY = node.getLayout().y + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ y: nodeY }, true);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n function computeEdgeDepths(nodes, orient) {\r\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\r\n each(nodes, function (node) {\r\n node.outEdges.sort(function (a, b) {\r\n return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\r\n });\r\n node.inEdges.sort(function (a, b) {\r\n return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\r\n });\r\n });\r\n each(nodes, function (node) {\r\n var sy = 0;\r\n var ty = 0;\r\n each(node.outEdges, function (edge) {\r\n edge.setLayout({ sy: sy }, true);\r\n sy += edge.getLayout().dy;\r\n });\r\n each(node.inEdges, function (edge) {\r\n edge.setLayout({ ty: ty }, true);\r\n ty += edge.getLayout().dy;\r\n });\r\n });\r\n }\n\n function sankeyVisual (ecModel) {\r\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\r\n var graph = seriesModel.getGraph();\r\n var nodes = graph.nodes;\r\n if (nodes.length) {\r\n var minValue_1 = Infinity;\r\n var maxValue_1 = -Infinity;\r\n each(nodes, function (node) {\r\n var nodeValue = node.getLayout().value;\r\n if (nodeValue < minValue_1) {\r\n minValue_1 = nodeValue;\r\n }\r\n if (nodeValue > maxValue_1) {\r\n maxValue_1 = nodeValue;\r\n }\r\n });\r\n each(nodes, function (node) {\r\n var mapping = new VisualMapping({\r\n type: 'color',\r\n mappingMethod: 'linear',\r\n dataExtent: [minValue_1, maxValue_1],\r\n visual: seriesModel.get('color')\r\n });\r\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\r\n var customColor = node.getModel().get(['itemStyle', 'color']);\r\n if (customColor != null) {\r\n node.setVisual('color', customColor);\r\n node.setVisual('style', { fill: customColor });\r\n }\r\n else {\r\n node.setVisual('color', mapValueToColor);\r\n node.setVisual('style', { fill: mapValueToColor });\r\n }\r\n });\r\n }\r\n });\r\n }\n\n registerLayout(sankeyLayout);\r\n registerVisual(sankeyVisual);\n\n var WhiskerBoxCommonMixin = (function () {\r\n function WhiskerBoxCommonMixin() {\r\n }\r\n WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\r\n var ordinalMeta;\r\n var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\r\n var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\r\n var xAxisType = xAxisModel.get('type');\r\n var yAxisType = yAxisModel.get('type');\r\n var addOrdinal;\r\n if (xAxisType === 'category') {\r\n option.layout = 'horizontal';\r\n ordinalMeta = xAxisModel.getOrdinalMeta();\r\n addOrdinal = true;\r\n }\r\n else if (yAxisType === 'category') {\r\n option.layout = 'vertical';\r\n ordinalMeta = yAxisModel.getOrdinalMeta();\r\n addOrdinal = true;\r\n }\r\n else {\r\n option.layout = option.layout || 'horizontal';\r\n }\r\n var coordDims = ['x', 'y'];\r\n var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\r\n var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\r\n var otherAxisDim = coordDims[1 - baseAxisDimIndex];\r\n var axisModels = [xAxisModel, yAxisModel];\r\n var baseAxisType = axisModels[baseAxisDimIndex].get('type');\r\n var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\r\n var data = option.data;\r\n if (data && addOrdinal) {\r\n var newOptionData_1 = [];\r\n each(data, function (item, index) {\r\n var newItem;\r\n if (isArray(item)) {\r\n newItem = item.slice();\r\n item.unshift(index);\r\n }\r\n else if (isArray(item.value)) {\r\n newItem = item.value.slice();\r\n item.value.unshift(index);\r\n }\r\n else {\r\n newItem = item;\r\n }\r\n newOptionData_1.push(newItem);\r\n });\r\n option.data = newOptionData_1;\r\n }\r\n var defaultValueDimensions = this.defaultValueDimensions;\r\n var coordDimensions = [{\r\n name: baseAxisDim,\r\n type: getDimensionTypeByAxis(baseAxisType),\r\n ordinalMeta: ordinalMeta,\r\n otherDims: {\r\n tooltip: false,\r\n itemName: 0\r\n },\r\n dimsDef: ['base']\r\n }, {\r\n name: otherAxisDim,\r\n type: getDimensionTypeByAxis(otherAxisType),\r\n dimsDef: defaultValueDimensions.slice()\r\n }];\r\n return createListSimply(this, {\r\n coordDimensions: coordDimensions,\r\n dimensionsCount: defaultValueDimensions.length + 1,\r\n encodeDefaulter: curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\r\n });\r\n };\r\n WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\r\n var dim = this._baseAxisDim;\r\n return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\r\n };\r\n return WhiskerBoxCommonMixin;\r\n }());\n\n var BoxplotSeriesModel = (function (_super) {\r\n __extends(BoxplotSeriesModel, _super);\r\n function BoxplotSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BoxplotSeriesModel.type;\r\n _this.defaultValueDimensions = [\r\n { name: 'min', defaultTooltip: true },\r\n { name: 'Q1', defaultTooltip: true },\r\n { name: 'median', defaultTooltip: true },\r\n { name: 'Q3', defaultTooltip: true },\r\n { name: 'max', defaultTooltip: true }\r\n ];\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n BoxplotSeriesModel.type = 'series.boxplot';\r\n BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\r\n BoxplotSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n layout: null,\r\n boxWidth: [7, 50],\r\n itemStyle: {\r\n color: '#fff',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n scale: true,\r\n itemStyle: {\r\n borderWidth: 2,\r\n shadowBlur: 5,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0,0,0,0.2)'\r\n }\r\n },\r\n animationDuration: 800\r\n };\r\n return BoxplotSeriesModel;\r\n }(SeriesModel));\r\n mixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\r\n SeriesModel.registerClass(BoxplotSeriesModel);\n\n var BoxplotView = (function (_super) {\r\n __extends(BoxplotView, _super);\r\n function BoxplotView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BoxplotView.type;\r\n return _this;\r\n }\r\n BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var group = this.group;\r\n var oldData = this._data;\r\n if (!this._data) {\r\n group.removeAll();\r\n }\r\n var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (data.hasValue(newIdx)) {\r\n var itemLayout = data.getItemLayout(newIdx);\r\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (!data.hasValue(newIdx)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (!symbolEl) {\r\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\r\n }\r\n else {\r\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && group.remove(el);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n BoxplotView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var data = this._data;\r\n this._data = null;\r\n data && data.eachItemGraphicEl(function (el) {\r\n el && group.remove(el);\r\n });\r\n };\r\n BoxplotView.type = 'boxplot';\r\n return BoxplotView;\r\n }(ChartView));\r\n var BoxPathShape = (function () {\r\n function BoxPathShape() {\r\n }\r\n return BoxPathShape;\r\n }());\r\n var BoxPath = (function (_super) {\r\n __extends(BoxPath, _super);\r\n function BoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'boxplotBoxPath';\r\n return _this;\r\n }\r\n BoxPath.prototype.getDefaultShape = function () {\r\n return new BoxPathShape();\r\n };\r\n BoxPath.prototype.buildPath = function (ctx, shape) {\r\n var ends = shape.points;\r\n var i = 0;\r\n ctx.moveTo(ends[i][0], ends[i][1]);\r\n i++;\r\n for (; i < 4; i++) {\r\n ctx.lineTo(ends[i][0], ends[i][1]);\r\n }\r\n ctx.closePath();\r\n for (; i < ends.length; i++) {\r\n ctx.moveTo(ends[i][0], ends[i][1]);\r\n i++;\r\n ctx.lineTo(ends[i][0], ends[i][1]);\r\n }\r\n };\r\n return BoxPath;\r\n }(Path));\r\n function createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\r\n var ends = itemLayout.ends;\r\n var el = new BoxPath({\r\n shape: {\r\n points: isInit\r\n ? transInit(ends, constDim, itemLayout)\r\n : ends\r\n }\r\n });\r\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\r\n return el;\r\n }\r\n function updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\r\n var seriesModel = data.hostModel;\r\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\r\n updateMethod(el, { shape: { points: itemLayout.ends } }, seriesModel, dataIndex);\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.strokeNoScale = true;\r\n el.z2 = 100;\r\n var itemModel = data.getItemModel(dataIndex);\r\n setStatesStylesFromModel(el, itemModel);\r\n enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\r\n }\r\n function transInit(points, dim, itemLayout) {\r\n return map(points, function (point) {\r\n point = point.slice();\r\n point[dim] = itemLayout.initBaseline;\r\n return point;\r\n });\r\n }\r\n ChartView.registerClass(BoxplotView);\n\n function boxplotVisual (ecModel, api) {\r\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n });\r\n }\n\n var each$7 = each;\r\n function boxplotLayout (ecModel) {\r\n var groupResult = groupSeriesByAxis(ecModel);\r\n each$7(groupResult, function (groupItem) {\r\n var seriesModels = groupItem.seriesModels;\r\n if (!seriesModels.length) {\r\n return;\r\n }\r\n calculateBase(groupItem);\r\n each$7(seriesModels, function (seriesModel, idx) {\r\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\r\n });\r\n });\r\n }\r\n function groupSeriesByAxis(ecModel) {\r\n var result = [];\r\n var axisList = [];\r\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\r\n var baseAxis = seriesModel.getBaseAxis();\r\n var idx = indexOf(axisList, baseAxis);\r\n if (idx < 0) {\r\n idx = axisList.length;\r\n axisList[idx] = baseAxis;\r\n result[idx] = {\r\n axis: baseAxis,\r\n seriesModels: []\r\n };\r\n }\r\n result[idx].seriesModels.push(seriesModel);\r\n });\r\n return result;\r\n }\r\n function calculateBase(groupItem) {\r\n var extent;\r\n var baseAxis = groupItem.axis;\r\n var seriesModels = groupItem.seriesModels;\r\n var seriesCount = seriesModels.length;\r\n var boxWidthList = groupItem.boxWidthList = [];\r\n var boxOffsetList = groupItem.boxOffsetList = [];\r\n var boundList = [];\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else {\r\n var maxDataCount_1 = 0;\r\n each$7(seriesModels, function (seriesModel) {\r\n maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\r\n });\r\n extent = baseAxis.getExtent(),\r\n Math.abs(extent[1] - extent[0]) / maxDataCount_1;\r\n }\r\n each$7(seriesModels, function (seriesModel) {\r\n var boxWidthBound = seriesModel.get('boxWidth');\r\n if (!isArray(boxWidthBound)) {\r\n boxWidthBound = [boxWidthBound, boxWidthBound];\r\n }\r\n boundList.push([\r\n parsePercent$2(boxWidthBound[0], bandWidth) || 0,\r\n parsePercent$2(boxWidthBound[1], bandWidth) || 0\r\n ]);\r\n });\r\n var availableWidth = bandWidth * 0.8 - 2;\r\n var boxGap = availableWidth / seriesCount * 0.3;\r\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\r\n var base = boxWidth / 2 - availableWidth / 2;\r\n each$7(seriesModels, function (seriesModel, idx) {\r\n boxOffsetList.push(base);\r\n base += boxGap + boxWidth;\r\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\r\n });\r\n }\r\n function layoutSingleSeries(seriesModel, offset, boxWidth) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var data = seriesModel.getData();\r\n var halfWidth = boxWidth / 2;\r\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\r\n var vDimIdx = 1 - cDimIdx;\r\n var coordDims = ['x', 'y'];\r\n var cDim = data.mapDimension(coordDims[cDimIdx]);\r\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\r\n if (cDim == null || vDims.length < 5) {\r\n return;\r\n }\r\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\r\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\r\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\r\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\r\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\r\n var ends = [];\r\n addBodyEnd(ends, end2, false);\r\n addBodyEnd(ends, end4, true);\r\n ends.push(end1, end2, end5, end4);\r\n layEndLine(ends, end1);\r\n layEndLine(ends, end5);\r\n layEndLine(ends, median);\r\n data.setItemLayout(dataIndex, {\r\n initBaseline: median[vDimIdx],\r\n ends: ends\r\n });\r\n }\r\n function getPoint(axisDimVal, dim, dataIndex) {\r\n var val = data.get(dim, dataIndex);\r\n var p = [];\r\n p[cDimIdx] = axisDimVal;\r\n p[vDimIdx] = val;\r\n var point;\r\n if (isNaN(axisDimVal) || isNaN(val)) {\r\n point = [NaN, NaN];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(p);\r\n point[cDimIdx] += offset;\r\n }\r\n return point;\r\n }\r\n function addBodyEnd(ends, point, start) {\r\n var point1 = point.slice();\r\n var point2 = point.slice();\r\n point1[cDimIdx] += halfWidth;\r\n point2[cDimIdx] -= halfWidth;\r\n start\r\n ? ends.push(point1, point2)\r\n : ends.push(point2, point1);\r\n }\r\n function layEndLine(ends, endCenter) {\r\n var from = endCenter.slice();\r\n var to = endCenter.slice();\r\n from[cDimIdx] -= halfWidth;\r\n to[cDimIdx] += halfWidth;\r\n ends.push(from, to);\r\n }\r\n }\n\n function prepareBoxplotData (rawData, opt) {\r\n opt = opt || {};\r\n var boxData = [];\r\n var outliers = [];\r\n var boundIQR = opt.boundIQR;\r\n var useExtreme = boundIQR === 'none' || boundIQR === 0;\r\n for (var i = 0; i < rawData.length; i++) {\r\n var ascList = asc(rawData[i].slice());\r\n var Q1 = quantile(ascList, 0.25);\r\n var Q2 = quantile(ascList, 0.5);\r\n var Q3 = quantile(ascList, 0.75);\r\n var min = ascList[0];\r\n var max = ascList[ascList.length - 1];\r\n var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\r\n var low = useExtreme\r\n ? min\r\n : Math.max(min, Q1 - bound);\r\n var high = useExtreme\r\n ? max\r\n : Math.min(max, Q3 + bound);\r\n var itemNameFormatter = opt.itemNameFormatter;\r\n var itemName = isFunction(itemNameFormatter)\r\n ? itemNameFormatter({ value: i })\r\n : isString(itemNameFormatter)\r\n ? itemNameFormatter.replace('{value}', i + '')\r\n : i + '';\r\n boxData.push([itemName, low, Q1, Q2, Q3, high]);\r\n for (var j = 0; j < ascList.length; j++) {\r\n var dataItem = ascList[j];\r\n if (dataItem < low || dataItem > high) {\r\n var outlier = [itemName, dataItem];\r\n outliers.push(outlier);\r\n }\r\n }\r\n }\r\n return {\r\n boxData: boxData,\r\n outliers: outliers\r\n };\r\n }\n\n var boxplotTransform = {\r\n type: 'echarts:boxplot',\r\n transform: function transform(params) {\r\n var source = params.source;\r\n var sourceData = source.data;\r\n if (!isArray(sourceData)\r\n || (sourceData[0] && !isArray(sourceData[0]))) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].', 'But actually', sourceData);\r\n }\r\n throwError(errMsg);\r\n }\r\n var result = prepareBoxplotData(source.data, params.config);\r\n return [{\r\n data: result.boxData\r\n }, {\r\n data: result.outliers\r\n }];\r\n }\r\n };\n\n registerVisual(boxplotVisual);\r\n registerLayout(boxplotLayout);\r\n registerTransform(boxplotTransform);\n\n var CandlestickSeriesModel = (function (_super) {\r\n __extends(CandlestickSeriesModel, _super);\r\n function CandlestickSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CandlestickSeriesModel.type;\r\n _this.defaultValueDimensions = [\r\n { name: 'open', defaultTooltip: true },\r\n { name: 'close', defaultTooltip: true },\r\n { name: 'lowest', defaultTooltip: true },\r\n { name: 'highest', defaultTooltip: true }\r\n ];\r\n return _this;\r\n }\r\n CandlestickSeriesModel.prototype.getShadowDim = function () {\r\n return 'open';\r\n };\r\n CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n var itemLayout = data.getItemLayout(dataIndex);\r\n return itemLayout && selectors.rect(itemLayout.brushRect);\r\n };\r\n CandlestickSeriesModel.type = 'series.candlestick';\r\n CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\r\n CandlestickSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n layout: null,\r\n clip: true,\r\n itemStyle: {\r\n color: '#c23531',\r\n color0: '#314656',\r\n borderWidth: 1,\r\n borderColor: '#c23531',\r\n borderColor0: '#314656'\r\n },\r\n emphasis: {\r\n scale: true,\r\n itemStyle: {\r\n borderWidth: 2\r\n }\r\n },\r\n barMaxWidth: null,\r\n barMinWidth: null,\r\n barWidth: null,\r\n large: true,\r\n largeThreshold: 600,\r\n progressive: 3e3,\r\n progressiveThreshold: 1e4,\r\n progressiveChunkMode: 'mod',\r\n animationEasing: 'linear',\r\n animationDuration: 300\r\n };\r\n return CandlestickSeriesModel;\r\n }(SeriesModel));\r\n mixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\r\n SeriesModel.registerClass(CandlestickSeriesModel);\n\n var SKIP_PROPS = ['color', 'borderColor'];\r\n var CandlestickView = (function (_super) {\r\n __extends(CandlestickView, _super);\r\n function CandlestickView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CandlestickView.type;\r\n return _this;\r\n }\r\n CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\r\n this.group.removeClipPath();\r\n this._updateDrawMode(seriesModel);\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel)\r\n : this._renderNormal(seriesModel);\r\n };\r\n CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n };\r\n CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\r\n this._isLargeDraw\r\n ? this._incrementalRenderLarge(params, seriesModel)\r\n : this._incrementalRenderNormal(params, seriesModel);\r\n };\r\n CandlestickView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n CandlestickView.prototype._renderNormal = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var isSimpleBox = data.getLayout('isSimpleBox');\r\n var needsClip = seriesModel.get('clip', true);\r\n var coord = seriesModel.coordinateSystem;\r\n var clipArea = coord.getArea && coord.getArea();\r\n if (!this._data) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (data.hasValue(newIdx)) {\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\r\n return;\r\n }\r\n var el = createNormalBox$1(itemLayout, newIdx, true);\r\n initProps(el, { shape: { points: itemLayout.ends } }, seriesModel, newIdx);\r\n setBoxCommon(el, data, newIdx, isSimpleBox);\r\n group.add(el);\r\n data.setItemGraphicEl(newIdx, el);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n if (!data.hasValue(newIdx)) {\r\n group.remove(el);\r\n return;\r\n }\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\r\n group.remove(el);\r\n return;\r\n }\r\n if (!el) {\r\n el = createNormalBox$1(itemLayout);\r\n }\r\n else {\r\n updateProps(el, {\r\n shape: {\r\n points: itemLayout.ends\r\n }\r\n }, seriesModel, newIdx);\r\n }\r\n setBoxCommon(el, data, newIdx, isSimpleBox);\r\n group.add(el);\r\n data.setItemGraphicEl(newIdx, el);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && group.remove(el);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n CandlestickView.prototype._renderLarge = function (seriesModel) {\r\n this._clear();\r\n createLarge$1(seriesModel, this.group);\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\r\n var data = seriesModel.getData();\r\n var isSimpleBox = data.getLayout('isSimpleBox');\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var itemLayout = data.getItemLayout(dataIndex);\r\n var el = createNormalBox$1(itemLayout);\r\n setBoxCommon(el, data, dataIndex, isSimpleBox);\r\n el.incremental = true;\r\n this.group.add(el);\r\n }\r\n };\r\n CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n createLarge$1(seriesModel, this.group, true);\r\n };\r\n CandlestickView.prototype.remove = function (ecModel) {\r\n this._clear();\r\n };\r\n CandlestickView.prototype._clear = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n CandlestickView.type = 'candlestick';\r\n return CandlestickView;\r\n }(ChartView));\r\n ChartView.registerClass(CandlestickView);\r\n var NormalBoxPathShape = (function () {\r\n function NormalBoxPathShape() {\r\n }\r\n return NormalBoxPathShape;\r\n }());\r\n var NormalBoxPath = (function (_super) {\r\n __extends(NormalBoxPath, _super);\r\n function NormalBoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'normalCandlestickBox';\r\n return _this;\r\n }\r\n NormalBoxPath.prototype.getDefaultShape = function () {\r\n return new NormalBoxPathShape();\r\n };\r\n NormalBoxPath.prototype.buildPath = function (ctx, shape) {\r\n var ends = shape.points;\r\n if (this.__simpleBox) {\r\n ctx.moveTo(ends[4][0], ends[4][1]);\r\n ctx.lineTo(ends[6][0], ends[6][1]);\r\n }\r\n else {\r\n ctx.moveTo(ends[0][0], ends[0][1]);\r\n ctx.lineTo(ends[1][0], ends[1][1]);\r\n ctx.lineTo(ends[2][0], ends[2][1]);\r\n ctx.lineTo(ends[3][0], ends[3][1]);\r\n ctx.closePath();\r\n ctx.moveTo(ends[4][0], ends[4][1]);\r\n ctx.lineTo(ends[5][0], ends[5][1]);\r\n ctx.moveTo(ends[6][0], ends[6][1]);\r\n ctx.lineTo(ends[7][0], ends[7][1]);\r\n }\r\n };\r\n return NormalBoxPath;\r\n }(Path));\r\n function createNormalBox$1(itemLayout, dataIndex, isInit) {\r\n var ends = itemLayout.ends;\r\n return new NormalBoxPath({\r\n shape: {\r\n points: isInit\r\n ? transInit$1(ends, itemLayout)\r\n : ends\r\n },\r\n z2: 100\r\n });\r\n }\r\n function isNormalBoxClipped(clipArea, itemLayout) {\r\n var clipped = true;\r\n for (var i = 0; i < itemLayout.ends.length; i++) {\r\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\r\n clipped = false;\r\n break;\r\n }\r\n }\r\n return clipped;\r\n }\r\n function setBoxCommon(el, data, dataIndex, isSimpleBox) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.strokeNoScale = true;\r\n el.__simpleBox = isSimpleBox;\r\n setStatesStylesFromModel(el, itemModel);\r\n }\r\n function transInit$1(points, itemLayout) {\r\n return map(points, function (point) {\r\n point = point.slice();\r\n point[1] = itemLayout.initBaseline;\r\n return point;\r\n });\r\n }\r\n var LargeBoxPathShape = (function () {\r\n function LargeBoxPathShape() {\r\n }\r\n return LargeBoxPathShape;\r\n }());\r\n var LargeBoxPath = (function (_super) {\r\n __extends(LargeBoxPath, _super);\r\n function LargeBoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeCandlestickBox';\r\n return _this;\r\n }\r\n LargeBoxPath.prototype.getDefaultShape = function () {\r\n return new LargeBoxPathShape();\r\n };\r\n LargeBoxPath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n for (var i = 0; i < points.length;) {\r\n if (this.__sign === points[i++]) {\r\n var x = points[i++];\r\n ctx.moveTo(x, points[i++]);\r\n ctx.lineTo(x, points[i++]);\r\n }\r\n else {\r\n i += 3;\r\n }\r\n }\r\n };\r\n return LargeBoxPath;\r\n }(Path));\r\n function createLarge$1(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var largePoints = data.getLayout('largePoints');\r\n var elP = new LargeBoxPath({\r\n shape: { points: largePoints },\r\n __sign: 1\r\n });\r\n group.add(elP);\r\n var elN = new LargeBoxPath({\r\n shape: { points: largePoints },\r\n __sign: -1\r\n });\r\n group.add(elN);\r\n setLargeStyle$1(1, elP, seriesModel);\r\n setLargeStyle$1(-1, elN, seriesModel);\r\n if (incremental) {\r\n elP.incremental = true;\r\n elN.incremental = true;\r\n }\r\n }\r\n function setLargeStyle$1(sign, el, seriesModel, data) {\r\n var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0'])\r\n || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\r\n var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n }\n\n function preprocessor (option) {\r\n if (!option || !isArray(option.series)) {\r\n return;\r\n }\r\n each(option.series, function (seriesItem) {\r\n if (isObject(seriesItem) && seriesItem.type === 'k') {\r\n seriesItem.type = 'candlestick';\r\n }\r\n });\r\n }\n\n var positiveBorderColorQuery = ['itemStyle', 'borderColor'];\r\n var negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\r\n var positiveColorQuery = ['itemStyle', 'color'];\r\n var negativeColorQuery = ['itemStyle', 'color0'];\r\n var candlestickVisual = {\r\n seriesType: 'candlestick',\r\n plan: createRenderPlanner(),\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n function getColor(sign, model) {\r\n return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\r\n }\r\n function getBorderColor(sign, model) {\r\n return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\r\n }\r\n var data = seriesModel.getData();\r\n data.setVisual('legendSymbol', 'roundRect');\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var isLargeRender = seriesModel.pipelineContext.large;\r\n return !isLargeRender && {\r\n progress: function (params, data) {\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var sign = data.getItemLayout(dataIndex).sign;\r\n var style = itemModel.getItemStyle();\r\n style.fill = getColor(sign, itemModel);\r\n style.stroke = getBorderColor(sign, itemModel) || style.fill;\r\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n extend(existsStyle, style);\r\n }\r\n }\r\n };\r\n }\r\n };\n\n var LargeArr$1 = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n var candlestickLayout = {\r\n seriesType: 'candlestick',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var data = seriesModel.getData();\r\n var candleWidth = calculateCandleWidth(seriesModel, data);\r\n var cDimIdx = 0;\r\n var vDimIdx = 1;\r\n var coordDims = ['x', 'y'];\r\n var cDim = data.mapDimension(coordDims[cDimIdx]);\r\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\r\n var openDim = vDims[0];\r\n var closeDim = vDims[1];\r\n var lowestDim = vDims[2];\r\n var highestDim = vDims[3];\r\n data.setLayout({\r\n candleWidth: candleWidth,\r\n isSimpleBox: candleWidth <= 1.3\r\n });\r\n if (cDim == null || vDims.length < 4) {\r\n return;\r\n }\r\n return {\r\n progress: seriesModel.pipelineContext.large\r\n ? largeProgress : normalProgress\r\n };\r\n function normalProgress(params, data) {\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var openVal = data.get(openDim, dataIndex);\r\n var closeVal = data.get(closeDim, dataIndex);\r\n var lowestVal = data.get(lowestDim, dataIndex);\r\n var highestVal = data.get(highestDim, dataIndex);\r\n var ocLow = Math.min(openVal, closeVal);\r\n var ocHigh = Math.max(openVal, closeVal);\r\n var ocLowPoint = getPoint(ocLow, axisDimVal);\r\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\r\n var lowestPoint = getPoint(lowestVal, axisDimVal);\r\n var highestPoint = getPoint(highestVal, axisDimVal);\r\n var ends = [];\r\n addBodyEnd(ends, ocHighPoint, 0);\r\n addBodyEnd(ends, ocLowPoint, 1);\r\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\r\n data.setItemLayout(dataIndex, {\r\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\r\n initBaseline: openVal > closeVal\r\n ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\r\n ends: ends,\r\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\r\n });\r\n }\r\n function getPoint(val, axisDimVal) {\r\n var p = [];\r\n p[cDimIdx] = axisDimVal;\r\n p[vDimIdx] = val;\r\n return (isNaN(axisDimVal) || isNaN(val))\r\n ? [NaN, NaN]\r\n : coordSys.dataToPoint(p);\r\n }\r\n function addBodyEnd(ends, point, start) {\r\n var point1 = point.slice();\r\n var point2 = point.slice();\r\n point1[cDimIdx] = subPixelOptimize$1(point1[cDimIdx] + candleWidth / 2, 1, false);\r\n point2[cDimIdx] = subPixelOptimize$1(point2[cDimIdx] - candleWidth / 2, 1, true);\r\n start\r\n ? ends.push(point1, point2)\r\n : ends.push(point2, point1);\r\n }\r\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\r\n var pmin = getPoint(lowestVal, axisDimVal);\r\n var pmax = getPoint(highestVal, axisDimVal);\r\n pmin[cDimIdx] -= candleWidth / 2;\r\n pmax[cDimIdx] -= candleWidth / 2;\r\n return {\r\n x: pmin[0],\r\n y: pmin[1],\r\n width: candleWidth ,\r\n height: pmax[1] - pmin[1] \r\n };\r\n }\r\n function subPixelOptimizePoint(point) {\r\n point[cDimIdx] = subPixelOptimize$1(point[cDimIdx], 1);\r\n return point;\r\n }\r\n }\r\n function largeProgress(params, data) {\r\n var points = new LargeArr$1(params.count * 4);\r\n var offset = 0;\r\n var point;\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var openVal = data.get(openDim, dataIndex);\r\n var closeVal = data.get(closeDim, dataIndex);\r\n var lowestVal = data.get(lowestDim, dataIndex);\r\n var highestVal = data.get(highestDim, dataIndex);\r\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\r\n points[offset++] = NaN;\r\n offset += 3;\r\n continue;\r\n }\r\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\r\n tmpIn[cDimIdx] = axisDimVal;\r\n tmpIn[vDimIdx] = lowestVal;\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n tmpIn[vDimIdx] = highestVal;\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n data.setLayout('largePoints', points);\r\n }\r\n }\r\n };\r\n function getSign(data, dataIndex, openVal, closeVal, closeDim) {\r\n var sign;\r\n if (openVal > closeVal) {\r\n sign = -1;\r\n }\r\n else if (openVal < closeVal) {\r\n sign = 1;\r\n }\r\n else {\r\n sign = dataIndex > 0\r\n ? (data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1)\r\n : 1;\r\n }\r\n return sign;\r\n }\r\n function calculateCandleWidth(seriesModel, data) {\r\n var baseAxis = seriesModel.getBaseAxis();\r\n var extent;\r\n var bandWidth = baseAxis.type === 'category'\r\n ? baseAxis.getBandWidth()\r\n : (extent = baseAxis.getExtent(),\r\n Math.abs(extent[1] - extent[0]) / data.count());\r\n var barMaxWidth = parsePercent$2(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\r\n var barMinWidth = parsePercent$2(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\r\n var barWidth = seriesModel.get('barWidth');\r\n return barWidth != null\r\n ? parsePercent$2(barWidth, bandWidth)\r\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\r\n }\n\n registerPreprocessor(preprocessor);\r\n registerVisual(candlestickVisual);\r\n registerLayout(candlestickLayout);\n\n var EffectScatterSeriesModel = (function (_super) {\r\n __extends(EffectScatterSeriesModel, _super);\r\n function EffectScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = EffectScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n EffectScatterSeriesModel.type = 'series.effectScatter';\r\n EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\r\n EffectScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n effectType: 'ripple',\r\n progressive: 0,\r\n showEffectOn: 'render',\r\n rippleEffect: {\r\n period: 4,\r\n scale: 2.5,\r\n brushType: 'fill'\r\n },\r\n symbolSize: 10\r\n };\r\n return EffectScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(EffectScatterSeriesModel);\n\n var EFFECT_RIPPLE_NUMBER = 3;\r\n function normalizeSymbolSize$1(symbolSize) {\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [+symbolSize, +symbolSize];\r\n }\r\n return symbolSize;\r\n }\r\n function updateRipplePath(rippleGroup, effectCfg) {\r\n var color = effectCfg.rippleEffectColor || effectCfg.color;\r\n rippleGroup.eachChild(function (ripplePath) {\r\n ripplePath.attr({\r\n z: effectCfg.z,\r\n zlevel: effectCfg.zlevel,\r\n style: {\r\n stroke: effectCfg.brushType === 'stroke' ? color : null,\r\n fill: effectCfg.brushType === 'fill' ? color : null\r\n }\r\n });\r\n });\r\n }\r\n var EffectSymbol = (function (_super) {\r\n __extends(EffectSymbol, _super);\r\n function EffectSymbol(data, idx) {\r\n var _this = _super.call(this) || this;\r\n var symbol = new Symbol(data, idx);\r\n var rippleGroup = new Group();\r\n _this.add(symbol);\r\n _this.add(rippleGroup);\r\n _this.updateData(data, idx);\r\n return _this;\r\n }\r\n EffectSymbol.prototype.stopEffectAnimation = function () {\r\n this.childAt(1).removeAll();\r\n };\r\n EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\r\n var symbolType = effectCfg.symbolType;\r\n var color = effectCfg.color;\r\n var rippleGroup = this.childAt(1);\r\n for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\r\n var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\r\n ripplePath.attr({\r\n style: {\r\n strokeNoScale: true\r\n },\r\n z2: 99,\r\n silent: true,\r\n scaleX: 0.5,\r\n scaleY: 0.5\r\n });\r\n var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\r\n ripplePath.animate('', true)\r\n .when(effectCfg.period, {\r\n scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\r\n })\r\n .delay(delay)\r\n .start();\r\n ripplePath.animateStyle(true)\r\n .when(effectCfg.period, {\r\n opacity: 0\r\n })\r\n .delay(delay)\r\n .start();\r\n rippleGroup.add(ripplePath);\r\n }\r\n updateRipplePath(rippleGroup, effectCfg);\r\n };\r\n EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\r\n var oldEffectCfg = this._effectCfg;\r\n var rippleGroup = this.childAt(1);\r\n var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\r\n for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\r\n var propName = DIFFICULT_PROPS[i];\r\n if (oldEffectCfg[propName] !== effectCfg[propName]) {\r\n this.stopEffectAnimation();\r\n this.startEffectAnimation(effectCfg);\r\n return;\r\n }\r\n }\r\n updateRipplePath(rippleGroup, effectCfg);\r\n };\r\n EffectSymbol.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n EffectSymbol.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n EffectSymbol.prototype.updateData = function (data, idx) {\r\n var _this = this;\r\n var seriesModel = data.hostModel;\r\n this.childAt(0).updateData(data, idx);\r\n var rippleGroup = this.childAt(1);\r\n var itemModel = data.getItemModel(idx);\r\n var symbolType = data.getItemVisual(idx, 'symbol');\r\n var symbolSize = normalizeSymbolSize$1(data.getItemVisual(idx, 'symbolSize'));\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var color = symbolStyle && symbolStyle.fill;\r\n rippleGroup.setScale(symbolSize);\r\n rippleGroup.traverse(function (ripplePath) {\r\n ripplePath.setStyle('fill', color);\r\n });\r\n var symbolOffset = itemModel.getShallow('symbolOffset');\r\n if (symbolOffset) {\r\n rippleGroup.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n rippleGroup.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n var effectCfg = {};\r\n effectCfg.showEffectOn = seriesModel.get('showEffectOn');\r\n effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\r\n effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\r\n effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\r\n effectCfg.effectOffset = idx / data.count();\r\n effectCfg.z = seriesModel.getShallow('z') || 0;\r\n effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\r\n effectCfg.symbolType = symbolType;\r\n effectCfg.color = color;\r\n effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\r\n this.off('mouseover').off('mouseout').off('emphasis').off('normal');\r\n if (effectCfg.showEffectOn === 'render') {\r\n this._effectCfg\r\n ? this.updateEffectAnimation(effectCfg)\r\n : this.startEffectAnimation(effectCfg);\r\n this._effectCfg = effectCfg;\r\n }\r\n else {\r\n this._effectCfg = null;\r\n this.stopEffectAnimation();\r\n this.onHoverStateChange = function (toState) {\r\n if (toState === 'emphasis') {\r\n if (effectCfg.showEffectOn !== 'render') {\r\n _this.startEffectAnimation(effectCfg);\r\n }\r\n }\r\n else if (toState === 'normal') {\r\n if (effectCfg.showEffectOn !== 'render') {\r\n _this.stopEffectAnimation();\r\n }\r\n }\r\n };\r\n }\r\n this._effectCfg = effectCfg;\r\n enableHoverEmphasis(this);\r\n };\r\n EffectSymbol.prototype.fadeOut = function (cb) {\r\n this.off('mouseover').off('mouseout');\r\n cb && cb();\r\n };\r\n return EffectSymbol;\r\n }(Group));\r\n inherits(EffectSymbol, Group);\n\n var EffectScatterView = (function (_super) {\r\n __extends(EffectScatterView, _super);\r\n function EffectScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = EffectScatterView.type;\r\n return _this;\r\n }\r\n EffectScatterView.prototype.init = function () {\r\n this._symbolDraw = new SymbolDraw(EffectSymbol);\r\n };\r\n EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var effectSymbolDraw = this._symbolDraw;\r\n effectSymbolDraw.updateData(data);\r\n this.group.add(effectSymbolDraw.group);\r\n };\r\n EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n var res = layoutPoints().reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({\r\n start: 0,\r\n end: data.count(),\r\n count: data.count()\r\n }, data);\r\n }\r\n this._symbolDraw.updateLayout();\r\n };\r\n EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.getRoamTransform) {\r\n this.group.transform = clone$2(coordSys.getRoamTransform());\r\n this.group.decomposeTransform();\r\n }\r\n };\r\n EffectScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n };\r\n EffectScatterView.type = 'effectScatter';\r\n return EffectScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(EffectScatterView);\n\n registerLayout(layoutPoints('effectScatter'));\n\n var Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\r\n var Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\r\n function compatEc2(seriesOpt) {\r\n var data = seriesOpt.data;\r\n if (data && data[0] && data[0][0] && data[0][0].coord) {\r\n if (__DEV__) {\r\n console.warn('Lines data configuration has been changed to'\r\n + ' { coords:[[1,2],[2,3]] }');\r\n }\r\n seriesOpt.data = map(data, function (itemOpt) {\r\n var coords = [\r\n itemOpt[0].coord, itemOpt[1].coord\r\n ];\r\n var target = {\r\n coords: coords\r\n };\r\n if (itemOpt[0].name) {\r\n target.fromName = itemOpt[0].name;\r\n }\r\n if (itemOpt[1].name) {\r\n target.toName = itemOpt[1].name;\r\n }\r\n return mergeAll([target, itemOpt[0], itemOpt[1]]);\r\n });\r\n }\r\n }\r\n var LinesSeriesModel = (function (_super) {\r\n __extends(LinesSeriesModel, _super);\r\n function LinesSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LinesSeriesModel.type;\r\n _this.visualStyleAccessPath = 'lineStyle';\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n LinesSeriesModel.prototype.init = function (option) {\r\n option.data = option.data || [];\r\n compatEc2(option);\r\n var result = this._processFlatCoordsArray(option.data);\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n if (result.flatCoords) {\r\n option.data = new Float32Array(result.count);\r\n }\r\n _super.prototype.init.apply(this, arguments);\r\n };\r\n LinesSeriesModel.prototype.mergeOption = function (option) {\r\n option.data = option.data || [];\r\n compatEc2(option);\r\n if (option.data) {\r\n var result = this._processFlatCoordsArray(option.data);\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n if (result.flatCoords) {\r\n option.data = new Float32Array(result.count);\r\n }\r\n }\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n LinesSeriesModel.prototype.appendData = function (params) {\r\n var result = this._processFlatCoordsArray(params.data);\r\n if (result.flatCoords) {\r\n if (!this._flatCoords) {\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n }\r\n else {\r\n this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\r\n this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\r\n }\r\n params.data = new Float32Array(result.count);\r\n }\r\n this.getRawData().appendData(params.data);\r\n };\r\n LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\r\n var itemModel = this.getData().getItemModel(idx);\r\n var coords = (itemModel.option instanceof Array)\r\n ? itemModel.option : itemModel.getShallow('coords');\r\n if (__DEV__) {\r\n if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\r\n throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\r\n }\r\n }\r\n return coords;\r\n };\r\n LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\r\n if (this._flatCoordsOffset) {\r\n return this._flatCoordsOffset[idx * 2 + 1];\r\n }\r\n else {\r\n return this._getCoordsFromItemModel(idx).length;\r\n }\r\n };\r\n LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\r\n if (this._flatCoordsOffset) {\r\n var offset = this._flatCoordsOffset[idx * 2];\r\n var len = this._flatCoordsOffset[idx * 2 + 1];\r\n for (var i = 0; i < len; i++) {\r\n out[i] = out[i] || [];\r\n out[i][0] = this._flatCoords[offset + i * 2];\r\n out[i][1] = this._flatCoords[offset + i * 2 + 1];\r\n }\r\n return len;\r\n }\r\n else {\r\n var coords = this._getCoordsFromItemModel(idx);\r\n for (var i = 0; i < coords.length; i++) {\r\n out[i] = out[i] || [];\r\n out[i][0] = coords[i][0];\r\n out[i][1] = coords[i][1];\r\n }\r\n return coords.length;\r\n }\r\n };\r\n LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\r\n var startOffset = 0;\r\n if (this._flatCoords) {\r\n startOffset = this._flatCoords.length;\r\n }\r\n if (typeof data[0] === 'number') {\r\n var len = data.length;\r\n var coordsOffsetAndLenStorage = new Uint32Arr(len);\r\n var coordsStorage = new Float64Arr(len);\r\n var coordsCursor = 0;\r\n var offsetCursor = 0;\r\n var dataCount = 0;\r\n for (var i = 0; i < len;) {\r\n dataCount++;\r\n var count = data[i++];\r\n coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\r\n coordsOffsetAndLenStorage[offsetCursor++] = count;\r\n for (var k = 0; k < count; k++) {\r\n var x = data[i++];\r\n var y = data[i++];\r\n coordsStorage[coordsCursor++] = x;\r\n coordsStorage[coordsCursor++] = y;\r\n if (i > len) {\r\n if (__DEV__) {\r\n throw new Error('Invalid data format.');\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\r\n flatCoords: coordsStorage,\r\n count: dataCount\r\n };\r\n }\r\n return {\r\n flatCoordsOffset: null,\r\n flatCoords: null,\r\n count: data.length\r\n };\r\n };\r\n LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n if (__DEV__) {\r\n var CoordSys = CoordinateSystemManager.get(option.coordinateSystem);\r\n if (!CoordSys) {\r\n throw new Error('Unkown coordinate system ' + option.coordinateSystem);\r\n }\r\n }\r\n var lineData = new List(['value'], this);\r\n lineData.hasItemOption = false;\r\n lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\r\n if (dataItem instanceof Array) {\r\n return NaN;\r\n }\r\n else {\r\n lineData.hasItemOption = true;\r\n var value = dataItem.value;\r\n if (value != null) {\r\n return value instanceof Array ? value[dimIndex] : value;\r\n }\r\n }\r\n });\r\n return lineData;\r\n };\r\n LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var itemModel = data.getItemModel(dataIndex);\r\n var name = itemModel.get('name');\r\n if (name) {\r\n return name;\r\n }\r\n var fromName = itemModel.get('fromName');\r\n var toName = itemModel.get('toName');\r\n var html = [];\r\n fromName != null && html.push(fromName);\r\n toName != null && html.push(toName);\r\n return encodeHTML(html.join(' > '));\r\n };\r\n LinesSeriesModel.prototype.preventIncremental = function () {\r\n return !!this.get(['effect', 'show']);\r\n };\r\n LinesSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 1e4 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n LinesSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 2e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n LinesSeriesModel.type = 'series.lines';\r\n LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\r\n LinesSeriesModel.defaultOption = {\r\n coordinateSystem: 'geo',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n xAxisIndex: 0,\r\n yAxisIndex: 0,\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 10],\r\n geoIndex: 0,\r\n effect: {\r\n show: false,\r\n period: 4,\r\n constantSpeed: 0,\r\n symbol: 'circle',\r\n symbolSize: 3,\r\n loop: true,\r\n trailLength: 0.2\r\n },\r\n large: false,\r\n largeThreshold: 2000,\r\n polyline: false,\r\n clip: true,\r\n label: {\r\n show: false,\r\n position: 'end'\r\n },\r\n lineStyle: {\r\n opacity: 0.5\r\n }\r\n };\r\n return LinesSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LinesSeriesModel);\n\n var EffectLine = (function (_super) {\r\n __extends(EffectLine, _super);\r\n function EffectLine(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this.add(_this.createLine(lineData, idx, seriesScope));\r\n _this._updateEffectSymbol(lineData, idx);\r\n return _this;\r\n }\r\n EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\r\n return new Line$1(lineData, idx, seriesScope);\r\n };\r\n EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\r\n var itemModel = lineData.getItemModel(idx);\r\n var effectModel = itemModel.getModel('effect');\r\n var size = effectModel.get('symbolSize');\r\n var symbolType = effectModel.get('symbol');\r\n if (!isArray(size)) {\r\n size = [size, size];\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var color = effectModel.get('color') || (lineStyle && lineStyle.stroke);\r\n var symbol = this.childAt(1);\r\n if (this._symbolType !== symbolType) {\r\n this.remove(symbol);\r\n symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\r\n symbol.z2 = 100;\r\n symbol.culling = true;\r\n this.add(symbol);\r\n }\r\n if (!symbol) {\r\n return;\r\n }\r\n symbol.setStyle('shadowColor', color);\r\n symbol.setStyle(effectModel.getItemStyle(['color']));\r\n symbol.scaleX = size[0];\r\n symbol.scaleY = size[1];\r\n symbol.setColor(color);\r\n this._symbolType = symbolType;\r\n this._symbolScale = size;\r\n this._updateEffectAnimation(lineData, effectModel, idx);\r\n };\r\n EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\r\n var symbol = this.childAt(1);\r\n if (!symbol) {\r\n return;\r\n }\r\n var self = this;\r\n var points = lineData.getItemLayout(idx);\r\n var period = effectModel.get('period') * 1000;\r\n var loop = effectModel.get('loop');\r\n var constantSpeed = effectModel.get('constantSpeed');\r\n var delayExpr = retrieve(effectModel.get('delay'), function (idx) {\r\n return idx / lineData.count() * period / 3;\r\n });\r\n symbol.ignore = true;\r\n this._updateAnimationPoints(symbol, points);\r\n if (constantSpeed > 0) {\r\n period = this._getLineLength(symbol) / constantSpeed * 1000;\r\n }\r\n if (period !== this._period || loop !== this._loop) {\r\n symbol.stopAnimation();\r\n if (period > 0) {\r\n var delayNum = void 0;\r\n if (typeof delayExpr === 'function') {\r\n delayNum = delayExpr(idx);\r\n }\r\n else {\r\n delayNum = delayExpr;\r\n }\r\n if (symbol.__t > 0) {\r\n delayNum = -period * symbol.__t;\r\n }\r\n symbol.__t = 0;\r\n var animator = symbol.animate('', loop)\r\n .when(period, {\r\n __t: 1\r\n })\r\n .delay(delayNum)\r\n .during(function () {\r\n self._updateSymbolPosition(symbol);\r\n });\r\n if (!loop) {\r\n animator.done(function () {\r\n self.remove(symbol);\r\n });\r\n }\r\n animator.start();\r\n }\r\n }\r\n this._period = period;\r\n this._loop = loop;\r\n };\r\n EffectLine.prototype._getLineLength = function (symbol) {\r\n return (dist(symbol.__p1, symbol.__cp1)\r\n + dist(symbol.__cp1, symbol.__p2));\r\n };\r\n EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\r\n symbol.__p1 = points[0];\r\n symbol.__p2 = points[1];\r\n symbol.__cp1 = points[2] || [\r\n (points[0][0] + points[1][0]) / 2,\r\n (points[0][1] + points[1][1]) / 2\r\n ];\r\n };\r\n EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\r\n this.childAt(0).updateData(lineData, idx, seriesScope);\r\n this._updateEffectSymbol(lineData, idx);\r\n };\r\n EffectLine.prototype._updateSymbolPosition = function (symbol) {\r\n var p1 = symbol.__p1;\r\n var p2 = symbol.__p2;\r\n var cp1 = symbol.__cp1;\r\n var t = symbol.__t;\r\n var pos = [symbol.x, symbol.y];\r\n var lastPos = pos.slice();\r\n var quadraticAt$1 = quadraticAt;\r\n var quadraticDerivativeAt$1 = quadraticDerivativeAt;\r\n pos[0] = quadraticAt$1(p1[0], cp1[0], p2[0], t);\r\n pos[1] = quadraticAt$1(p1[1], cp1[1], p2[1], t);\r\n var tx = quadraticDerivativeAt$1(p1[0], cp1[0], p2[0], t);\r\n var ty = quadraticDerivativeAt$1(p1[1], cp1[1], p2[1], t);\r\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\r\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\r\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\r\n symbol.scaleY = dist(lastPos, pos) * 1.05;\r\n if (t === 1) {\r\n pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\r\n pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\r\n }\r\n }\r\n else if (symbol.__lastT === 1) {\r\n symbol.scaleY = 2 * dist(p1, pos);\r\n }\r\n else {\r\n symbol.scaleY = this._symbolScale[1];\r\n }\r\n }\r\n symbol.__lastT = symbol.__t;\r\n symbol.ignore = false;\r\n symbol.x = pos[0];\r\n symbol.y = pos[1];\r\n };\r\n EffectLine.prototype.updateLayout = function (lineData, idx) {\r\n this.childAt(0).updateLayout(lineData, idx);\r\n var effectModel = lineData.getItemModel(idx).getModel('effect');\r\n this._updateEffectAnimation(lineData, effectModel, idx);\r\n };\r\n return EffectLine;\r\n }(Group));\n\n var Polyline$1 = (function (_super) {\r\n __extends(Polyline$1, _super);\r\n function Polyline$1(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createPolyline(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Polyline$1.prototype._createPolyline = function (lineData, idx, seriesScope) {\r\n var points = lineData.getItemLayout(idx);\r\n var line = new Polyline({\r\n shape: {\r\n points: points\r\n }\r\n });\r\n this.add(line);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Polyline$1.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childAt(0);\r\n var target = {\r\n shape: {\r\n points: lineData.getItemLayout(idx)\r\n }\r\n };\r\n updateProps(line, target, seriesModel, idx);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Polyline$1.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var line = this.childAt(0);\r\n var itemModel = lineData.getItemModel(idx);\r\n var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n }\r\n line.useStyle(lineData.getItemVisual(idx, 'style'));\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n var lineEmphasisState = line.ensureState('emphasis');\r\n lineEmphasisState.style = hoverLineStyle;\r\n enableHoverEmphasis(this);\r\n };\r\n Polyline$1.prototype.updateLayout = function (lineData, idx) {\r\n var polyline = this.childAt(0);\r\n polyline.setShape('points', lineData.getItemLayout(idx));\r\n };\r\n return Polyline$1;\r\n }(Group));\n\n var EffectPolyline = (function (_super) {\r\n __extends(EffectPolyline, _super);\r\n function EffectPolyline() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._lastFrame = 0;\r\n _this._lastFramePercent = 0;\r\n return _this;\r\n }\r\n EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\r\n return new Polyline$1(lineData, idx, seriesScope);\r\n };\r\n EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\r\n this._points = points;\r\n var accLenArr = [0];\r\n var len = 0;\r\n for (var i = 1; i < points.length; i++) {\r\n var p1 = points[i - 1];\r\n var p2 = points[i];\r\n len += dist(p1, p2);\r\n accLenArr.push(len);\r\n }\r\n if (len === 0) {\r\n this._length = 0;\r\n return;\r\n }\r\n for (var i = 0; i < accLenArr.length; i++) {\r\n accLenArr[i] /= len;\r\n }\r\n this._offsets = accLenArr;\r\n this._length = len;\r\n };\r\n EffectPolyline.prototype._getLineLength = function () {\r\n return this._length;\r\n };\r\n EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\r\n var t = symbol.__t;\r\n var points = this._points;\r\n var offsets = this._offsets;\r\n var len = points.length;\r\n if (!offsets) {\r\n return;\r\n }\r\n var lastFrame = this._lastFrame;\r\n var frame;\r\n if (t < this._lastFramePercent) {\r\n var start = Math.min(lastFrame + 1, len - 1);\r\n for (frame = start; frame >= 0; frame--) {\r\n if (offsets[frame] <= t) {\r\n break;\r\n }\r\n }\r\n frame = Math.min(frame, len - 2);\r\n }\r\n else {\r\n for (frame = lastFrame; frame < len; frame++) {\r\n if (offsets[frame] > t) {\r\n break;\r\n }\r\n }\r\n frame = Math.min(frame - 1, len - 2);\r\n }\r\n var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\r\n var p0 = points[frame];\r\n var p1 = points[frame + 1];\r\n symbol.x = p0[0] * (1 - p) + p * p1[0];\r\n symbol.y = p0[1] * (1 - p) + p * p1[1];\r\n var tx = p1[0] - p0[0];\r\n var ty = p1[1] - p0[1];\r\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\r\n this._lastFrame = frame;\r\n this._lastFramePercent = t;\r\n symbol.ignore = false;\r\n };\r\n return EffectPolyline;\r\n }(EffectLine));\n\n var LargeLinesPathShape = (function () {\r\n function LargeLinesPathShape() {\r\n this.polyline = false;\r\n this.curveness = 0;\r\n this.segs = [];\r\n }\r\n return LargeLinesPathShape;\r\n }());\r\n var LargeLinesPath = (function (_super) {\r\n __extends(LargeLinesPath, _super);\r\n function LargeLinesPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeLinesPath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n LargeLinesPath.prototype.getDefaultShape = function () {\r\n return new LargeLinesPathShape();\r\n };\r\n LargeLinesPath.prototype.buildPath = function (ctx, shape) {\r\n var segs = shape.segs;\r\n var curveness = shape.curveness;\r\n if (shape.polyline) {\r\n for (var i = 0; i < segs.length;) {\r\n var count = segs[i++];\r\n if (count > 0) {\r\n ctx.moveTo(segs[i++], segs[i++]);\r\n for (var k = 1; k < count; k++) {\r\n ctx.lineTo(segs[i++], segs[i++]);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < segs.length;) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n ctx.moveTo(x0, y0);\r\n if (curveness > 0) {\r\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\r\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\r\n ctx.quadraticCurveTo(x2, y2, x1, y1);\r\n }\r\n else {\r\n ctx.lineTo(x1, y1);\r\n }\r\n }\r\n }\r\n };\r\n LargeLinesPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var segs = shape.segs;\r\n var curveness = shape.curveness;\r\n var lineWidth = this.style.lineWidth;\r\n if (shape.polyline) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < segs.length;) {\r\n var count = segs[i++];\r\n if (count > 0) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n for (var k = 1; k < count; k++) {\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n }\r\n dataIndex++;\r\n }\r\n }\r\n else {\r\n var dataIndex = 0;\r\n for (var i = 0; i < segs.length;) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n if (curveness > 0) {\r\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\r\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\r\n if (containStroke$2(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n else {\r\n if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n dataIndex++;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeLinesPath;\r\n }(Path));\r\n var LargeLineDraw = (function () {\r\n function LargeLineDraw() {\r\n this.group = new Group();\r\n }\r\n LargeLineDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeLineDraw.prototype.updateData = function (data) {\r\n this.group.removeAll();\r\n var lineEl = new LargeLinesPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n lineEl.setShape({\r\n segs: data.getLayout('linesPoints')\r\n });\r\n this._setCommon(lineEl, data);\r\n this.group.add(lineEl);\r\n this._incremental = null;\r\n };\r\n LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 5e5) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\r\n var lineEl = new LargeLinesPath();\r\n lineEl.setShape({\r\n segs: data.getLayout('linesPoints')\r\n });\r\n this._setCommon(lineEl, data, !!this._incremental);\r\n if (!this._incremental) {\r\n lineEl.rectHover = true;\r\n lineEl.cursor = 'default';\r\n lineEl.__startIndex = taskParams.start;\r\n this.group.add(lineEl);\r\n }\r\n else {\r\n this._incremental.addDisplayable(lineEl, true);\r\n }\r\n };\r\n LargeLineDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\r\n var hostModel = data.hostModel;\r\n lineEl.setShape({\r\n polyline: hostModel.get('polyline'),\r\n curveness: hostModel.get(['lineStyle', 'curveness'])\r\n });\r\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\r\n lineEl.style.strokeNoScale = true;\r\n var style = data.getVisual('style');\r\n if (style && style.stroke) {\r\n lineEl.setStyle('stroke', style.stroke);\r\n }\r\n lineEl.setStyle('fill', null);\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(lineEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n lineEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex > 0) {\r\n ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\r\n }\r\n });\r\n }\r\n };\r\n LargeLineDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeLineDraw;\r\n }());\n\n var linesLayout = {\r\n seriesType: 'lines',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var isPolyline = seriesModel.get('polyline');\r\n var isLarge = seriesModel.pipelineContext.large;\r\n return {\r\n progress: function (params, lineData) {\r\n var lineCoords = [];\r\n if (isLarge) {\r\n var points = void 0;\r\n var segCount = params.end - params.start;\r\n if (isPolyline) {\r\n var totalCoordsCount = 0;\r\n for (var i = params.start; i < params.end; i++) {\r\n totalCoordsCount += seriesModel.getLineCoordsCount(i);\r\n }\r\n points = new Float32Array(segCount + totalCoordsCount * 2);\r\n }\r\n else {\r\n points = new Float32Array(segCount * 4);\r\n }\r\n var offset = 0;\r\n var pt = [];\r\n for (var i = params.start; i < params.end; i++) {\r\n var len = seriesModel.getLineCoords(i, lineCoords);\r\n if (isPolyline) {\r\n points[offset++] = len;\r\n }\r\n for (var k = 0; k < len; k++) {\r\n pt = coordSys.dataToPoint(lineCoords[k], false, pt);\r\n points[offset++] = pt[0];\r\n points[offset++] = pt[1];\r\n }\r\n }\r\n lineData.setLayout('linesPoints', points);\r\n }\r\n else {\r\n for (var i = params.start; i < params.end; i++) {\r\n var itemModel = lineData.getItemModel(i);\r\n var len = seriesModel.getLineCoords(i, lineCoords);\r\n var pts = [];\r\n if (isPolyline) {\r\n for (var j = 0; j < len; j++) {\r\n pts.push(coordSys.dataToPoint(lineCoords[j]));\r\n }\r\n }\r\n else {\r\n pts[0] = coordSys.dataToPoint(lineCoords[0]);\r\n pts[1] = coordSys.dataToPoint(lineCoords[1]);\r\n var curveness = itemModel.get(['lineStyle', 'curveness']);\r\n if (+curveness) {\r\n pts[2] = [\r\n (pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness,\r\n (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness\r\n ];\r\n }\r\n }\r\n lineData.setItemLayout(i, pts);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n };\n\n var LinesView = (function (_super) {\r\n __extends(LinesView, _super);\r\n function LinesView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LinesView.type;\r\n return _this;\r\n }\r\n LinesView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var lineDraw = this._updateLineDraw(data, seriesModel);\r\n var zlevel = seriesModel.get('zlevel');\r\n var trailLength = seriesModel.get(['effect', 'trailLength']);\r\n var zr = api.getZr();\r\n var isSvg = zr.painter.getType() === 'svg';\r\n if (!isSvg) {\r\n zr.painter.getLayer(zlevel).clear(true);\r\n }\r\n if (this._lastZlevel != null && !isSvg) {\r\n zr.configLayer(this._lastZlevel, {\r\n motionBlur: false\r\n });\r\n }\r\n if (this._showEffect(seriesModel) && trailLength) {\r\n if (__DEV__) {\r\n var notInIndividual_1 = false;\r\n ecModel.eachSeries(function (otherSeriesModel) {\r\n if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\r\n notInIndividual_1 = true;\r\n }\r\n });\r\n notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\r\n }\r\n if (!isSvg) {\r\n zr.configLayer(zlevel, {\r\n motionBlur: true,\r\n lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\r\n });\r\n }\r\n }\r\n lineDraw.updateData(data);\r\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n this._lastZlevel = zlevel;\r\n this._finished = true;\r\n };\r\n LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var lineDraw = this._updateLineDraw(data, seriesModel);\r\n lineDraw.incrementalPrepareUpdate(data);\r\n this._clearLayer(api);\r\n this._finished = false;\r\n };\r\n LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var pipelineContext = seriesModel.pipelineContext;\r\n if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = linesLayout.reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({\r\n start: 0,\r\n end: data.count(),\r\n count: data.count()\r\n }, data);\r\n }\r\n this._lineDraw.updateLayout();\r\n this._clearLayer(api);\r\n }\r\n };\r\n LinesView.prototype._updateLineDraw = function (data, seriesModel) {\r\n var lineDraw = this._lineDraw;\r\n var hasEffect = this._showEffect(seriesModel);\r\n var isPolyline = !!seriesModel.get('polyline');\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (__DEV__) {\r\n if (hasEffect && isLargeDraw) {\r\n console.warn('Large lines not support effect');\r\n }\r\n }\r\n if (!lineDraw\r\n || hasEffect !== this._hasEffet\r\n || isPolyline !== this._isPolyline\r\n || isLargeDraw !== this._isLargeDraw) {\r\n if (lineDraw) {\r\n lineDraw.remove();\r\n }\r\n lineDraw = this._lineDraw = isLargeDraw\r\n ? new LargeLineDraw()\r\n : new LineDraw(isPolyline\r\n ? (hasEffect ? EffectPolyline : Polyline$1)\r\n : (hasEffect ? EffectLine : Line$1));\r\n this._hasEffet = hasEffect;\r\n this._isPolyline = isPolyline;\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(lineDraw.group);\r\n return lineDraw;\r\n };\r\n LinesView.prototype._showEffect = function (seriesModel) {\r\n return !!seriesModel.get(['effect', 'show']);\r\n };\r\n LinesView.prototype._clearLayer = function (api) {\r\n var zr = api.getZr();\r\n var isSvg = zr.painter.getType() === 'svg';\r\n if (!isSvg && this._lastZlevel != null) {\r\n zr.painter.getLayer(this._lastZlevel).clear(true);\r\n }\r\n };\r\n LinesView.prototype.remove = function (ecModel, api) {\r\n this._lineDraw && this._lineDraw.remove();\r\n this._lineDraw = null;\r\n this._clearLayer(api);\r\n };\r\n LinesView.type = 'lines';\r\n return LinesView;\r\n }(ChartView));\r\n ChartView.registerClass(LinesView);\n\n function normalize$3(a) {\r\n if (!(a instanceof Array)) {\r\n a = [a, a];\r\n }\r\n return a;\r\n }\r\n var linesVisual = {\r\n seriesType: 'lines',\r\n reset: function (seriesModel) {\r\n var symbolType = normalize$3(seriesModel.get('symbol'));\r\n var symbolSize = normalize$3(seriesModel.get('symbolSize'));\r\n var data = seriesModel.getData();\r\n data.setVisual('fromSymbol', symbolType && symbolType[0]);\r\n data.setVisual('toSymbol', symbolType && symbolType[1]);\r\n data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\r\n data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var symbolType = normalize$3(itemModel.getShallow('symbol', true));\r\n var symbolSize = normalize$3(itemModel.getShallow('symbolSize', true));\r\n symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\r\n symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\r\n symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\r\n symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\r\n }\r\n return {\r\n dataEach: data.hasItemOption ? dataEach : null\r\n };\r\n }\r\n };\n\n registerLayout(linesLayout);\r\n registerVisual(linesVisual);\n\n var HeatmapSeriesModel = (function (_super) {\r\n __extends(HeatmapSeriesModel, _super);\r\n function HeatmapSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = HeatmapSeriesModel.type;\r\n return _this;\r\n }\r\n HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n generateCoord: 'value'\r\n });\r\n };\r\n HeatmapSeriesModel.prototype.preventIncremental = function () {\r\n var coordSysCreator = CoordinateSystemManager.get(this.get('coordinateSystem'));\r\n if (coordSysCreator && coordSysCreator.dimensions) {\r\n return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\r\n }\r\n };\r\n HeatmapSeriesModel.type = 'series.heatmap';\r\n HeatmapSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n geoIndex: 0,\r\n blurSize: 30,\r\n pointSize: 20,\r\n maxOpacity: 1,\r\n minOpacity: 0,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return HeatmapSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(HeatmapSeriesModel);\n\n var GRADIENT_LEVELS = 256;\r\n var HeatmapLayer = (function () {\r\n function HeatmapLayer() {\r\n this.blurSize = 30;\r\n this.pointSize = 20;\r\n this.maxOpacity = 1;\r\n this.minOpacity = 0;\r\n this._gradientPixels = {\r\n inRange: null,\r\n outOfRange: null\r\n };\r\n var canvas = createCanvas();\r\n this.canvas = canvas;\r\n }\r\n HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\r\n var brush = this._getBrush();\r\n var gradientInRange = this._getGradient(colorFunc, 'inRange');\r\n var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\r\n var r = this.pointSize + this.blurSize;\r\n var canvas = this.canvas;\r\n var ctx = canvas.getContext('2d');\r\n var len = data.length;\r\n canvas.width = width;\r\n canvas.height = height;\r\n for (var i = 0; i < len; ++i) {\r\n var p = data[i];\r\n var x = p[0];\r\n var y = p[1];\r\n var value = p[2];\r\n var alpha = normalize(value);\r\n ctx.globalAlpha = alpha;\r\n ctx.drawImage(brush, x - r, y - r);\r\n }\r\n if (!canvas.width || !canvas.height) {\r\n return canvas;\r\n }\r\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n var pixels = imageData.data;\r\n var offset = 0;\r\n var pixelLen = pixels.length;\r\n var minOpacity = this.minOpacity;\r\n var maxOpacity = this.maxOpacity;\r\n var diffOpacity = maxOpacity - minOpacity;\r\n while (offset < pixelLen) {\r\n var alpha = pixels[offset + 3] / 256;\r\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\r\n if (alpha > 0) {\r\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\r\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\r\n pixels[offset++] = gradient[gradientOffset];\r\n pixels[offset++] = gradient[gradientOffset + 1];\r\n pixels[offset++] = gradient[gradientOffset + 2];\r\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\r\n }\r\n else {\r\n offset += 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0);\r\n return canvas;\r\n };\r\n HeatmapLayer.prototype._getBrush = function () {\r\n var brushCanvas = this._brushCanvas || (this._brushCanvas = createCanvas());\r\n var r = this.pointSize + this.blurSize;\r\n var d = r * 2;\r\n brushCanvas.width = d;\r\n brushCanvas.height = d;\r\n var ctx = brushCanvas.getContext('2d');\r\n ctx.clearRect(0, 0, d, d);\r\n ctx.shadowOffsetX = d;\r\n ctx.shadowBlur = this.blurSize;\r\n ctx.shadowColor = '#000';\r\n ctx.beginPath();\r\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\r\n ctx.closePath();\r\n ctx.fill();\r\n return brushCanvas;\r\n };\r\n HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\r\n var gradientPixels = this._gradientPixels;\r\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\r\n var color = [0, 0, 0, 0];\r\n var off = 0;\r\n for (var i = 0; i < 256; i++) {\r\n colorFunc[state](i / 255, true, color);\r\n pixelsSingleState[off++] = color[0];\r\n pixelsSingleState[off++] = color[1];\r\n pixelsSingleState[off++] = color[2];\r\n pixelsSingleState[off++] = color[3];\r\n }\r\n return pixelsSingleState;\r\n };\r\n return HeatmapLayer;\r\n }());\n\n function getIsInPiecewiseRange(dataExtent, pieceList, selected) {\r\n var dataSpan = dataExtent[1] - dataExtent[0];\r\n pieceList = map(pieceList, function (piece) {\r\n return {\r\n interval: [\r\n (piece.interval[0] - dataExtent[0]) / dataSpan,\r\n (piece.interval[1] - dataExtent[0]) / dataSpan\r\n ]\r\n };\r\n });\r\n var len = pieceList.length;\r\n var lastIndex = 0;\r\n return function (val) {\r\n var i;\r\n for (i = lastIndex; i < len; i++) {\r\n var interval = pieceList[i].interval;\r\n if (interval[0] <= val && val <= interval[1]) {\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n if (i === len) {\r\n for (i = lastIndex - 1; i >= 0; i--) {\r\n var interval = pieceList[i].interval;\r\n if (interval[0] <= val && val <= interval[1]) {\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return i >= 0 && i < len && selected[i];\r\n };\r\n }\r\n function getIsInContinuousRange(dataExtent, range) {\r\n var dataSpan = dataExtent[1] - dataExtent[0];\r\n range = [\r\n (range[0] - dataExtent[0]) / dataSpan,\r\n (range[1] - dataExtent[0]) / dataSpan\r\n ];\r\n return function (val) {\r\n return val >= range[0] && val <= range[1];\r\n };\r\n }\r\n function isGeoCoordSys(coordSys) {\r\n var dimensions = coordSys.dimensions;\r\n return dimensions[0] === 'lng' && dimensions[1] === 'lat';\r\n }\r\n var HeatmapView = (function (_super) {\r\n __extends(HeatmapView, _super);\r\n function HeatmapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = HeatmapView.type;\r\n return _this;\r\n }\r\n HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\r\n var visualMapOfThisSeries;\r\n ecModel.eachComponent('visualMap', function (visualMap) {\r\n visualMap.eachTargetSeries(function (targetSeries) {\r\n if (targetSeries === seriesModel) {\r\n visualMapOfThisSeries = visualMap;\r\n }\r\n });\r\n });\r\n if (__DEV__) {\r\n if (!visualMapOfThisSeries) {\r\n throw new Error('Heatmap must use with visualMap');\r\n }\r\n }\r\n this.group.removeAll();\r\n this._incrementalDisplayable = null;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\r\n this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\r\n }\r\n else if (isGeoCoordSys(coordSys)) {\r\n this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\r\n }\r\n };\r\n HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys) {\r\n this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\r\n }\r\n };\r\n HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var width;\r\n var height;\r\n var xAxisExtent;\r\n var yAxisExtent;\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n if (__DEV__) {\r\n if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\r\n throw new Error('Heatmap on cartesian must have two category axes');\r\n }\r\n if (!(xAxis.onBand && yAxis.onBand)) {\r\n throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\r\n }\r\n }\r\n width = xAxis.getBandWidth();\r\n height = yAxis.getBandWidth();\r\n xAxisExtent = xAxis.scale.getExtent();\r\n yAxisExtent = yAxis.scale.getExtent();\r\n }\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\r\n var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n var labelStatesModels = getLabelStatesModels(seriesModel);\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d')\r\n ? [\r\n data.mapDimension('x'),\r\n data.mapDimension('y'),\r\n data.mapDimension('value')\r\n ]\r\n : [\r\n data.mapDimension('time'),\r\n data.mapDimension('value')\r\n ];\r\n for (var idx = start; idx < end; idx++) {\r\n var rect = void 0;\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var dataDimX = data.get(dataDims[0], idx);\r\n var dataDimY = data.get(dataDims[1], idx);\r\n if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1]\r\n || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\r\n continue;\r\n }\r\n var point = coordSys.dataToPoint([\r\n dataDimX,\r\n dataDimY\r\n ]);\r\n rect = new Rect({\r\n shape: {\r\n x: Math.floor(Math.round(point[0]) - width / 2),\r\n y: Math.floor(Math.round(point[1]) - height / 2),\r\n width: Math.ceil(width),\r\n height: Math.ceil(height)\r\n },\r\n style: data.getItemVisual(idx, 'style')\r\n });\r\n }\r\n else {\r\n if (isNaN(data.get(dataDims[1], idx))) {\r\n continue;\r\n }\r\n rect = new Rect({\r\n z2: 1,\r\n shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\r\n style: data.getItemVisual(idx, 'style')\r\n });\r\n }\r\n var itemModel = data.getItemModel(idx);\r\n if (data.hasItemOption) {\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var defaultText = '-';\r\n if (rawValue && rawValue[2] != null) {\r\n defaultText = rawValue[2] + '';\r\n }\r\n setLabelStyle(rect, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: defaultText\r\n });\r\n rect.ensureState('emphasis').style = emphasisStyle;\r\n rect.ensureState('blur').style = blurStyle;\r\n rect.ensureState('select').style = selectStyle;\r\n enableHoverEmphasis(rect, focus, blurScope);\r\n rect.incremental = incremental;\r\n if (incremental) {\r\n rect.states.emphasis.hoverLayer = true;\r\n }\r\n group.add(rect);\r\n data.setItemGraphicEl(idx, rect);\r\n }\r\n };\r\n HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\r\n var inRangeVisuals = visualMapModel.targetVisuals.inRange;\r\n var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\r\n var data = seriesModel.getData();\r\n var hmLayer = this._hmLayer || (this._hmLayer || new HeatmapLayer());\r\n hmLayer.blurSize = seriesModel.get('blurSize');\r\n hmLayer.pointSize = seriesModel.get('pointSize');\r\n hmLayer.minOpacity = seriesModel.get('minOpacity');\r\n hmLayer.maxOpacity = seriesModel.get('maxOpacity');\r\n var rect = geo.getViewRect().clone();\r\n var roamTransform = geo.getRoamTransform();\r\n rect.applyTransform(roamTransform);\r\n var x = Math.max(rect.x, 0);\r\n var y = Math.max(rect.y, 0);\r\n var x2 = Math.min(rect.width + rect.x, api.getWidth());\r\n var y2 = Math.min(rect.height + rect.y, api.getHeight());\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var dims = [\r\n data.mapDimension('lng'),\r\n data.mapDimension('lat'),\r\n data.mapDimension('value')\r\n ];\r\n var points = data.mapArray(dims, function (lng, lat, value) {\r\n var pt = geo.dataToPoint([lng, lat]);\r\n pt[0] -= x;\r\n pt[1] -= y;\r\n pt.push(value);\r\n return pt;\r\n });\r\n var dataExtent = visualMapModel.getExtent();\r\n var isInRange = visualMapModel.type === 'visualMap.continuous'\r\n ? getIsInContinuousRange(dataExtent, visualMapModel.option.range)\r\n : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\r\n hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\r\n inRange: inRangeVisuals.color.getColorMapper(),\r\n outOfRange: outOfRangeVisuals.color.getColorMapper()\r\n }, isInRange);\r\n var img = new ZRImage({\r\n style: {\r\n width: width,\r\n height: height,\r\n x: x,\r\n y: y,\r\n image: hmLayer.canvas\r\n },\r\n silent: true\r\n });\r\n this.group.add(img);\r\n };\r\n HeatmapView.type = 'heatmap';\r\n return HeatmapView;\r\n }(ChartView));\r\n ChartView.registerClass(HeatmapView);\n\n var PictorialBarSeriesModel = (function (_super) {\r\n __extends(PictorialBarSeriesModel, _super);\r\n function PictorialBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PictorialBarSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.defaultSymbol = 'roundRect';\r\n return _this;\r\n }\r\n PictorialBarSeriesModel.prototype.getInitialData = function (option) {\r\n option.stack = null;\r\n return _super.prototype.getInitialData.apply(this, arguments);\r\n };\r\n PictorialBarSeriesModel.type = 'series.pictorialBar';\r\n PictorialBarSeriesModel.dependencies = ['grid'];\r\n PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n symbol: 'circle',\r\n symbolSize: null,\r\n symbolRotate: null,\r\n symbolPosition: null,\r\n symbolOffset: null,\r\n symbolMargin: null,\r\n symbolRepeat: false,\r\n symbolRepeatDirection: 'end',\r\n symbolClip: false,\r\n symbolBoundingData: null,\r\n symbolPatternSize: 400,\r\n barGap: '-100%',\r\n progressive: 0,\r\n emphasis: {\r\n scale: false\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n });\r\n return PictorialBarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(PictorialBarSeriesModel);\n\n var BAR_BORDER_WIDTH_QUERY$1 = ['itemStyle', 'borderWidth'];\r\n var LAYOUT_ATTRS = [\r\n { xy: 'x', wh: 'width', index: 0, posDesc: ['left', 'right'] },\r\n { xy: 'y', wh: 'height', index: 1, posDesc: ['top', 'bottom'] }\r\n ];\r\n var pathForLineWidth = new Circle();\r\n var PictorialBarView = (function (_super) {\r\n __extends(PictorialBarView, _super);\r\n function PictorialBarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PictorialBarView.type;\r\n return _this;\r\n }\r\n PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var coordSysRect = cartesian.master.getRect();\r\n var opt = {\r\n ecSize: { width: api.getWidth(), height: api.getHeight() },\r\n seriesModel: seriesModel,\r\n coordSys: cartesian,\r\n coordSysExtent: [\r\n [coordSysRect.x, coordSysRect.x + coordSysRect.width],\r\n [coordSysRect.y, coordSysRect.y + coordSysRect.height]\r\n ],\r\n isHorizontal: isHorizontal,\r\n valueDim: LAYOUT_ATTRS[+isHorizontal],\r\n categoryDim: LAYOUT_ATTRS[1 - (+isHorizontal)]\r\n };\r\n data.diff(oldData)\r\n .add(function (dataIndex) {\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var itemModel = getItemModel(data, dataIndex);\r\n var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\r\n var bar = createBar(data, opt, symbolMeta);\r\n data.setItemGraphicEl(dataIndex, bar);\r\n group.add(bar);\r\n updateCommon$1(bar, opt, symbolMeta);\r\n })\r\n .update(function (newIndex, oldIndex) {\r\n var bar = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(bar);\r\n return;\r\n }\r\n var itemModel = getItemModel(data, newIndex);\r\n var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\r\n var pictorialShapeStr = getShapeStr(data, symbolMeta);\r\n if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\r\n group.remove(bar);\r\n data.setItemGraphicEl(newIndex, null);\r\n bar = null;\r\n }\r\n if (bar) {\r\n updateBar(bar, opt, symbolMeta);\r\n }\r\n else {\r\n bar = createBar(data, opt, symbolMeta, true);\r\n }\r\n data.setItemGraphicEl(newIndex, bar);\r\n bar.__pictorialSymbolMeta = symbolMeta;\r\n group.add(bar);\r\n updateCommon$1(bar, opt, symbolMeta);\r\n })\r\n .remove(function (dataIndex) {\r\n var bar = oldData.getItemGraphicEl(dataIndex);\r\n bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\r\n })\r\n .execute();\r\n this._data = data;\r\n return this.group;\r\n };\r\n PictorialBarView.prototype.remove = function (ecModel, api) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (ecModel.get('animation')) {\r\n if (data) {\r\n data.eachItemGraphicEl(function (bar) {\r\n removeBar(data, getECData(bar).dataIndex, ecModel, bar);\r\n });\r\n }\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n PictorialBarView.type = 'pictorialBar';\r\n return PictorialBarView;\r\n }(ChartView));\r\n function getSymbolMeta(data, dataIndex, itemModel, opt) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var symbolRepeat = itemModel.get('symbolRepeat');\r\n var symbolClip = itemModel.get('symbolClip');\r\n var symbolPosition = itemModel.get('symbolPosition') || 'start';\r\n var symbolRotate = itemModel.get('symbolRotate');\r\n var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\r\n var isAnimationEnabled = itemModel.isAnimationEnabled();\r\n var symbolMeta = {\r\n dataIndex: dataIndex,\r\n layout: layout,\r\n itemModel: itemModel,\r\n symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\r\n style: data.getItemVisual(dataIndex, 'style'),\r\n symbolClip: symbolClip,\r\n symbolRepeat: symbolRepeat,\r\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\r\n symbolPatternSize: symbolPatternSize,\r\n rotation: rotation,\r\n animationModel: isAnimationEnabled ? itemModel : null,\r\n hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\r\n z2: itemModel.getShallow('z', true) || 0\r\n };\r\n prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\r\n prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\r\n prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\r\n var symbolSize = symbolMeta.symbolSize;\r\n var symbolOffset = itemModel.get('symbolOffset');\r\n if (isArray(symbolOffset)) {\r\n symbolOffset = [\r\n parsePercent$2(symbolOffset[0], symbolSize[0]),\r\n parsePercent$2(symbolOffset[1], symbolSize[1])\r\n ];\r\n }\r\n prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\r\n return symbolMeta;\r\n }\r\n function prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\r\n var valueDim = opt.valueDim;\r\n var symbolBoundingData = itemModel.get('symbolBoundingData');\r\n var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\r\n var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\r\n var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\r\n var boundingLength;\r\n if (isArray(symbolBoundingData)) {\r\n var symbolBoundingExtent = [\r\n convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx,\r\n convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx\r\n ];\r\n symbolBoundingExtent[1] < symbolBoundingExtent[0] && (symbolBoundingExtent.reverse());\r\n boundingLength = symbolBoundingExtent[pxSignIdx];\r\n }\r\n else if (symbolBoundingData != null) {\r\n boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\r\n }\r\n else if (symbolRepeat) {\r\n boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\r\n }\r\n else {\r\n boundingLength = layout[valueDim.wh];\r\n }\r\n outputSymbolMeta.boundingLength = boundingLength;\r\n if (symbolRepeat) {\r\n outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\r\n }\r\n outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\r\n }\r\n function convertToCoordOnAxis(axis, value) {\r\n return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\r\n }\r\n function prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\r\n var valueDim = opt.valueDim;\r\n var categoryDim = opt.categoryDim;\r\n var categorySize = Math.abs(layout[categoryDim.wh]);\r\n var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\r\n var parsedSymbolSize;\r\n if (isArray(symbolSize)) {\r\n parsedSymbolSize = symbolSize.slice();\r\n }\r\n else {\r\n if (symbolSize == null) {\r\n parsedSymbolSize = ['100%', '100%'];\r\n }\r\n else {\r\n parsedSymbolSize = [symbolSize, symbolSize];\r\n }\r\n }\r\n parsedSymbolSize[categoryDim.index] = parsePercent$2(parsedSymbolSize[categoryDim.index], categorySize);\r\n parsedSymbolSize[valueDim.index] = parsePercent$2(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\r\n outputSymbolMeta.symbolSize = parsedSymbolSize;\r\n var symbolScale = outputSymbolMeta.symbolScale = [\r\n parsedSymbolSize[0] / symbolPatternSize,\r\n parsedSymbolSize[1] / symbolPatternSize\r\n ];\r\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\r\n }\r\n function prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\r\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY$1) || 0;\r\n if (valueLineWidth) {\r\n pathForLineWidth.attr({\r\n scaleX: symbolScale[0],\r\n scaleY: symbolScale[1],\r\n rotation: rotation\r\n });\r\n pathForLineWidth.updateTransform();\r\n valueLineWidth /= pathForLineWidth.getLineScale();\r\n valueLineWidth *= symbolScale[opt.valueDim.index];\r\n }\r\n outputSymbolMeta.valueLineWidth = valueLineWidth;\r\n }\r\n function prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\r\n var categoryDim = opt.categoryDim;\r\n var valueDim = opt.valueDim;\r\n var pxSign = outputSymbolMeta.pxSign;\r\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\r\n var pathLen = unitLength;\r\n if (symbolRepeat) {\r\n var absBoundingLength = Math.abs(boundingLength);\r\n var symbolMargin = retrieve(itemModel.get('symbolMargin'), '15%') + '';\r\n var hasEndGap = false;\r\n if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\r\n hasEndGap = true;\r\n symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\r\n }\r\n var symbolMarginNumeric = parsePercent$2(symbolMargin, symbolSize[valueDim.index]);\r\n var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\r\n var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\r\n var repeatSpecified = isNumeric(symbolRepeat);\r\n var repeatTimes = repeatSpecified\r\n ? symbolRepeat\r\n : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\r\n var mDiff = absBoundingLength - repeatTimes * unitLength;\r\n symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\r\n uLenWithMargin = unitLength + symbolMarginNumeric * 2;\r\n endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\r\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\r\n repeatTimes = repeatCutLength\r\n ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin)\r\n : 0;\r\n }\r\n pathLen = repeatTimes * uLenWithMargin - endFix;\r\n outputSymbolMeta.repeatTimes = repeatTimes;\r\n outputSymbolMeta.symbolMargin = symbolMarginNumeric;\r\n }\r\n var sizeFix = pxSign * (pathLen / 2);\r\n var pathPosition = outputSymbolMeta.pathPosition = [];\r\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\r\n pathPosition[valueDim.index] = symbolPosition === 'start'\r\n ? sizeFix\r\n : symbolPosition === 'end'\r\n ? boundingLength - sizeFix\r\n : boundingLength / 2;\r\n if (symbolOffset) {\r\n pathPosition[0] += symbolOffset[0];\r\n pathPosition[1] += symbolOffset[1];\r\n }\r\n var bundlePosition = outputSymbolMeta.bundlePosition = [];\r\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\r\n bundlePosition[valueDim.index] = layout[valueDim.xy];\r\n var barRectShape = outputSymbolMeta.barRectShape = extend({}, layout);\r\n barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\r\n barRectShape[categoryDim.wh] = layout[categoryDim.wh];\r\n var clipShape = outputSymbolMeta.clipShape = {};\r\n clipShape[categoryDim.xy] = -layout[categoryDim.xy];\r\n clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\r\n clipShape[valueDim.xy] = 0;\r\n clipShape[valueDim.wh] = layout[valueDim.wh];\r\n }\r\n function createPath(symbolMeta) {\r\n var symbolPatternSize = symbolMeta.symbolPatternSize;\r\n var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\r\n path.attr({\r\n culling: true\r\n });\r\n path.type !== 'image' && path.setStyle({\r\n strokeNoScale: true\r\n });\r\n return path;\r\n }\r\n function createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\r\n var bundle = bar.__pictorialBundle;\r\n var symbolSize = symbolMeta.symbolSize;\r\n var valueLineWidth = symbolMeta.valueLineWidth;\r\n var pathPosition = symbolMeta.pathPosition;\r\n var valueDim = opt.valueDim;\r\n var repeatTimes = symbolMeta.repeatTimes || 0;\r\n var index = 0;\r\n var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\r\n eachPath(bar, function (path) {\r\n path.__pictorialAnimationIndex = index;\r\n path.__pictorialRepeatTimes = repeatTimes;\r\n if (index < repeatTimes) {\r\n updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\r\n }\r\n else {\r\n updateAttr(path, null, { scaleX: 0, scaleY: 0 }, symbolMeta, isUpdate, function () {\r\n bundle.remove(path);\r\n });\r\n }\r\n index++;\r\n });\r\n for (; index < repeatTimes; index++) {\r\n var path = createPath(symbolMeta);\r\n path.__pictorialAnimationIndex = index;\r\n path.__pictorialRepeatTimes = repeatTimes;\r\n bundle.add(path);\r\n var target = makeTarget(index);\r\n updateAttr(path, {\r\n x: target.x,\r\n y: target.y,\r\n scaleX: 0,\r\n scaleY: 0\r\n }, {\r\n scaleX: target.scaleX,\r\n scaleY: target.scaleY,\r\n rotation: target.rotation\r\n }, symbolMeta, isUpdate);\r\n }\r\n function makeTarget(index) {\r\n var position = pathPosition.slice();\r\n var pxSign = symbolMeta.pxSign;\r\n var i = index;\r\n if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\r\n i = repeatTimes - 1 - index;\r\n }\r\n position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\r\n return {\r\n x: position[0],\r\n y: position[1],\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1],\r\n rotation: symbolMeta.rotation\r\n };\r\n }\r\n }\r\n function createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\r\n var bundle = bar.__pictorialBundle;\r\n var mainPath = bar.__pictorialMainPath;\r\n if (!mainPath) {\r\n mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\r\n bundle.add(mainPath);\r\n updateAttr(mainPath, {\r\n x: symbolMeta.pathPosition[0],\r\n y: symbolMeta.pathPosition[1],\r\n scaleX: 0,\r\n scaleY: 0,\r\n rotation: symbolMeta.rotation\r\n }, {\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1]\r\n }, symbolMeta, isUpdate);\r\n }\r\n else {\r\n updateAttr(mainPath, null, {\r\n x: symbolMeta.pathPosition[0],\r\n y: symbolMeta.pathPosition[1],\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1],\r\n rotation: symbolMeta.rotation\r\n }, symbolMeta, isUpdate);\r\n }\r\n }\r\n function createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\r\n var rectShape = extend({}, symbolMeta.barRectShape);\r\n var barRect = bar.__pictorialBarRect;\r\n if (!barRect) {\r\n barRect = bar.__pictorialBarRect = new Rect({\r\n z2: 2,\r\n shape: rectShape,\r\n silent: true,\r\n style: {\r\n stroke: 'transparent',\r\n fill: 'transparent',\r\n lineWidth: 0\r\n }\r\n });\r\n bar.add(barRect);\r\n }\r\n else {\r\n updateAttr(barRect, null, { shape: rectShape }, symbolMeta, isUpdate);\r\n }\r\n }\r\n function createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\r\n if (symbolMeta.symbolClip) {\r\n var clipPath = bar.__pictorialClipPath;\r\n var clipShape = extend({}, symbolMeta.clipShape);\r\n var valueDim = opt.valueDim;\r\n var animationModel = symbolMeta.animationModel;\r\n var dataIndex = symbolMeta.dataIndex;\r\n if (clipPath) {\r\n updateProps(clipPath, { shape: clipShape }, animationModel, dataIndex);\r\n }\r\n else {\r\n clipShape[valueDim.wh] = 0;\r\n clipPath = new Rect({ shape: clipShape });\r\n bar.__pictorialBundle.setClipPath(clipPath);\r\n bar.__pictorialClipPath = clipPath;\r\n var target = {};\r\n target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\r\n graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, { shape: target }, animationModel, dataIndex);\r\n }\r\n }\r\n }\r\n function getItemModel(data, dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n itemModel.getAnimationDelayParams = getAnimationDelayParams;\r\n itemModel.isAnimationEnabled = isAnimationEnabled;\r\n return itemModel;\r\n }\r\n function getAnimationDelayParams(path) {\r\n return {\r\n index: path.__pictorialAnimationIndex,\r\n count: path.__pictorialRepeatTimes\r\n };\r\n }\r\n function isAnimationEnabled() {\r\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\r\n }\r\n function createBar(data, opt, symbolMeta, isUpdate) {\r\n var bar = new Group();\r\n var bundle = new Group();\r\n bar.add(bundle);\r\n bar.__pictorialBundle = bundle;\r\n bundle.x = symbolMeta.bundlePosition[0];\r\n bundle.y = symbolMeta.bundlePosition[1];\r\n if (symbolMeta.symbolRepeat) {\r\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\r\n }\r\n else {\r\n createOrUpdateSingleSymbol(bar, opt, symbolMeta);\r\n }\r\n createOrUpdateBarRect(bar, symbolMeta, isUpdate);\r\n createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\r\n bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\r\n bar.__pictorialSymbolMeta = symbolMeta;\r\n return bar;\r\n }\r\n function updateBar(bar, opt, symbolMeta) {\r\n var animationModel = symbolMeta.animationModel;\r\n var dataIndex = symbolMeta.dataIndex;\r\n var bundle = bar.__pictorialBundle;\r\n updateProps(bundle, {\r\n x: symbolMeta.bundlePosition[0],\r\n y: symbolMeta.bundlePosition[1]\r\n }, animationModel, dataIndex);\r\n if (symbolMeta.symbolRepeat) {\r\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\r\n }\r\n else {\r\n createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\r\n }\r\n createOrUpdateBarRect(bar, symbolMeta, true);\r\n createOrUpdateClip(bar, opt, symbolMeta, true);\r\n }\r\n function removeBar(data, dataIndex, animationModel, bar) {\r\n var labelRect = bar.__pictorialBarRect;\r\n labelRect && (labelRect.removeTextContent());\r\n var pathes = [];\r\n eachPath(bar, function (path) {\r\n pathes.push(path);\r\n });\r\n bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\r\n bar.__pictorialClipPath && (animationModel = null);\r\n each(pathes, function (path) {\r\n removeElement(path, { scaleX: 0, scaleY: 0 }, animationModel, dataIndex, function () {\r\n bar.parent && bar.parent.remove(bar);\r\n });\r\n });\r\n data.setItemGraphicEl(dataIndex, null);\r\n }\r\n function getShapeStr(data, symbolMeta) {\r\n return [\r\n data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none',\r\n !!symbolMeta.symbolRepeat,\r\n !!symbolMeta.symbolClip\r\n ].join(':');\r\n }\r\n function eachPath(bar, cb, context) {\r\n each(bar.__pictorialBundle.children(), function (el) {\r\n el !== bar.__pictorialBarRect && cb.call(context, el);\r\n });\r\n }\r\n function updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\r\n immediateAttrs && el.attr(immediateAttrs);\r\n if (symbolMeta.symbolClip && !isUpdate) {\r\n animationAttrs && el.attr(animationAttrs);\r\n }\r\n else {\r\n animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\r\n }\r\n }\r\n function updateCommon$1(bar, opt, symbolMeta) {\r\n var dataIndex = symbolMeta.dataIndex;\r\n var itemModel = symbolMeta.itemModel;\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n var focus = emphasisModel.get('focus');\r\n var blurScope = emphasisModel.get('blurScope');\r\n eachPath(bar, function (path) {\r\n if (path instanceof ZRImage) {\r\n var pathStyle = path.style;\r\n path.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolMeta.style));\r\n }\r\n else {\r\n path.useStyle(symbolMeta.style);\r\n }\r\n var emphasisState = path.ensureState('emphasis');\r\n emphasisState.style = emphasisStyle;\r\n emphasisState.scaleX = path.scaleX * 1.1;\r\n emphasisState.scaleY = path.scaleY * 1.1;\r\n path.ensureState('blur').style = blurStyle;\r\n path.ensureState('select').style = selectStyle;\r\n cursorStyle && (path.cursor = cursorStyle);\r\n path.z2 = symbolMeta.z2;\r\n });\r\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\r\n var barRect = bar.__pictorialBarRect;\r\n setLabelStyle(barRect, getLabelStatesModels(itemModel), {\r\n labelFetcher: opt.seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\r\n inheritColor: symbolMeta.style.fill,\r\n defaultOutsidePosition: barPositionOutside\r\n });\r\n enableHoverEmphasis(bar, focus, blurScope);\r\n }\r\n function toIntTimes(times) {\r\n var roundedTimes = Math.round(times);\r\n return Math.abs(times - roundedTimes) < 1e-4\r\n ? roundedTimes\r\n : Math.ceil(times);\r\n }\r\n ChartView.registerClass(PictorialBarView);\n\n registerLayout(curry(layout, 'pictorialBar'));\n\n var SingleAxis = (function (_super) {\r\n __extends(SingleAxis, _super);\r\n function SingleAxis(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n SingleAxis.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n SingleAxis.prototype.pointToData = function (point, clamp) {\r\n return this.coordinateSystem.pointToData(point)[0];\r\n };\r\n return SingleAxis;\r\n }(Axis));\n\n var Single = (function () {\r\n function Single(axisModel, ecModel, api) {\r\n this.type = 'single';\r\n this.dimension = 'single';\r\n this.dimensions = ['single'];\r\n this.axisPointerEnabled = true;\r\n this.model = axisModel;\r\n this._init(axisModel, ecModel, api);\r\n }\r\n Single.prototype._init = function (axisModel, ecModel, api) {\r\n var dim = this.dimension;\r\n var axis = new SingleAxis(dim, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axis.orient = axisModel.get('orient');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.coordinateSystem = this;\r\n this._axis = axis;\r\n };\r\n Single.prototype.update = function (ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.coordinateSystem === this) {\r\n var data_1 = seriesModel.getData();\r\n each(data_1.mapDimensionsAll(this.dimension), function (dim) {\r\n this._axis.scale.unionExtentFromData(data_1, dim);\r\n }, this);\r\n niceScaleExtent(this._axis.scale, this._axis.model);\r\n }\r\n }, this);\r\n };\r\n Single.prototype.resize = function (axisModel, api) {\r\n this._rect = getLayoutRect({\r\n left: axisModel.get('left'),\r\n top: axisModel.get('top'),\r\n right: axisModel.get('right'),\r\n bottom: axisModel.get('bottom'),\r\n width: axisModel.get('width'),\r\n height: axisModel.get('height')\r\n }, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._adjustAxis();\r\n };\r\n Single.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Single.prototype._adjustAxis = function () {\r\n var rect = this._rect;\r\n var axis = this._axis;\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\r\n var idx = axis.reverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\r\n };\r\n Single.prototype._updateAxisTransform = function (axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var extentSum = axisExtent[0] + axisExtent[1];\r\n var isHorizontal = axis.isHorizontal();\r\n axis.toGlobalCoord = isHorizontal\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return extentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = isHorizontal\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return extentSum - coord + coordBase;\r\n };\r\n };\r\n Single.prototype.getAxis = function () {\r\n return this._axis;\r\n };\r\n Single.prototype.getBaseAxis = function () {\r\n return this._axis;\r\n };\r\n Single.prototype.getAxes = function () {\r\n return [this._axis];\r\n };\r\n Single.prototype.getTooltipAxes = function () {\r\n return {\r\n baseAxes: [this.getAxis()],\r\n otherAxes: []\r\n };\r\n };\r\n Single.prototype.containPoint = function (point) {\r\n var rect = this.getRect();\r\n var axis = this.getAxis();\r\n var orient = axis.orient;\r\n if (orient === 'horizontal') {\r\n return axis.contain(axis.toLocalCoord(point[0]))\r\n && (point[1] >= rect.y && point[1] <= (rect.y + rect.height));\r\n }\r\n else {\r\n return axis.contain(axis.toLocalCoord(point[1]))\r\n && (point[0] >= rect.y && point[0] <= (rect.y + rect.height));\r\n }\r\n };\r\n Single.prototype.pointToData = function (point) {\r\n var axis = this.getAxis();\r\n return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\r\n };\r\n Single.prototype.dataToPoint = function (val) {\r\n var axis = this.getAxis();\r\n var rect = this.getRect();\r\n var pt = [];\r\n var idx = axis.orient === 'horizontal' ? 0 : 1;\r\n if (val instanceof Array) {\r\n val = val[0];\r\n }\r\n pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\r\n pt[1 - idx] = idx === 0 ? (rect.y + rect.height / 2) : (rect.x + rect.width / 2);\r\n return pt;\r\n };\r\n Single.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$2(finder);\r\n return coordSys === this ? this.dataToPoint(value) : null;\r\n };\r\n Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$2(finder);\r\n return coordSys === this ? this.pointToData(pixel) : null;\r\n };\r\n return Single;\r\n }());\r\n function getCoordSys$2(finder) {\r\n var seriesModel = finder.seriesModel;\r\n var singleModel = finder.singleAxisModel;\r\n return singleModel && singleModel.coordinateSystem\r\n || seriesModel && seriesModel.coordinateSystem;\r\n }\n\n function create$3(ecModel, api) {\r\n var singles = [];\r\n ecModel.eachComponent('singleAxis', function (axisModel, idx) {\r\n var single = new Single(axisModel, ecModel, api);\r\n single.name = 'single_' + idx;\r\n single.resize(axisModel, api);\r\n axisModel.coordinateSystem = single;\r\n singles.push(single);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'singleAxis') {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\r\n }\r\n });\r\n return singles;\r\n }\r\n CoordinateSystemManager.register('single', {\r\n create: create$3,\r\n dimensions: Single.prototype.dimensions\r\n });\n\n function layout$2(axisModel, opt) {\r\n opt = opt || {};\r\n var single = axisModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var axisPosition = axis.position;\r\n var orient = axis.orient;\r\n var rect = single.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var positionMap = {\r\n horizontal: { top: rectBound[2], bottom: rectBound[3] },\r\n vertical: { left: rectBound[0], right: rectBound[1] }\r\n };\r\n layout.position = [\r\n orient === 'vertical'\r\n ? positionMap.vertical[axisPosition]\r\n : rectBound[0],\r\n orient === 'horizontal'\r\n ? positionMap.horizontal[axisPosition]\r\n : rectBound[3]\r\n ];\r\n var r = { horizontal: 0, vertical: 1 };\r\n layout.rotation = Math.PI / 2 * r[orient];\r\n var directionMap = { top: -1, bottom: 1, right: 1, left: -1 };\r\n layout.labelDirection = layout.tickDirection =\r\n layout.nameDirection = directionMap[axisPosition];\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotation = opt.rotate;\r\n labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\r\n layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\r\n layout.z2 = 1;\r\n return layout;\r\n }\n\n var axisBuilderAttrs$2 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs$1 = ['splitArea', 'splitLine'];\r\n var SingleAxisView = (function (_super) {\r\n __extends(SingleAxisView, _super);\r\n function SingleAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SingleAxisView.type;\r\n _this.axisPointerClass = 'SingleAxisPointer';\r\n return _this;\r\n }\r\n SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n var layout = layout$2(axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, layout);\r\n each(axisBuilderAttrs$2, axisBuilder.add, axisBuilder);\r\n group.add(this._axisGroup);\r\n group.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs$1, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders$1[name](this, this.group, this._axisGroup, axisModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n SingleAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n SingleAxisView.type = 'singleAxis';\r\n return SingleAxisView;\r\n }(AxisView));\r\n var axisElementBuilders$1 = {\r\n splitLine: function (axisView, group, axisGroup, axisModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineWidth = lineStyleModel.get('width');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var gridRect = axisModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var splitLines = [];\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n for (var i = 0; i < ticksCoords.length; ++i) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: {\r\n lineWidth: lineWidth\r\n },\r\n silent: true\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; ++i) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: {\r\n stroke: lineColors[i % lineColors.length],\r\n lineDash: lineStyleModel.getLineDash(lineWidth),\r\n lineWidth: lineWidth\r\n },\r\n silent: true\r\n }));\r\n }\r\n },\r\n splitArea: function (axisView, group, axisGroup, axisModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\r\n }\r\n };\r\n ComponentView.registerClass(SingleAxisView);\n\n var SingleAxisModel = (function (_super) {\r\n __extends(SingleAxisModel, _super);\r\n function SingleAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SingleAxisModel.type;\r\n return _this;\r\n }\r\n SingleAxisModel.prototype.getCoordSysModel = function () {\r\n return this;\r\n };\r\n SingleAxisModel.type = 'singleAxis';\r\n SingleAxisModel.layoutMode = 'box';\r\n SingleAxisModel.defaultOption = {\r\n left: '5%',\r\n top: '5%',\r\n right: '5%',\r\n bottom: '5%',\r\n type: 'value',\r\n position: 'bottom',\r\n orient: 'horizontal',\r\n axisLine: {\r\n show: true,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n tooltip: {\r\n show: true\r\n },\r\n axisTick: {\r\n show: true,\r\n length: 6,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n interval: 'auto'\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n type: 'dashed',\r\n opacity: 0.2\r\n }\r\n }\r\n };\r\n return SingleAxisModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(SingleAxisModel);\r\n mixin(SingleAxisModel, AxisModelCommonMixin.prototype);\r\n axisModelCreator('single', SingleAxisModel, SingleAxisModel.defaultOption);\n\n function findPointFromSeries (finder, ecModel) {\r\n var point = [];\r\n var seriesIndex = finder.seriesIndex;\r\n var seriesModel;\r\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\r\n return {\r\n point: []\r\n };\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, finder);\r\n if (dataIndex == null || dataIndex < 0 || isArray(dataIndex)) {\r\n return { point: [] };\r\n }\r\n var el = data.getItemGraphicEl(dataIndex);\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (seriesModel.getTooltipPosition) {\r\n point = seriesModel.getTooltipPosition(dataIndex) || [];\r\n }\r\n else if (coordSys && coordSys.dataToPoint) {\r\n if (finder.isStacked) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueAxisDim = valueAxis.dim;\r\n var baseAxisDim = baseAxis.dim;\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\r\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\r\n point = coordSys.dataToPoint(stackedData) || [];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }), dataIndex)) || [];\r\n }\r\n }\r\n else if (el) {\r\n var rect = el.getBoundingRect().clone();\r\n rect.applyTransform(el.transform);\r\n point = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n return { point: point, el: el };\r\n }\n\n var inner$c = makeInner();\r\n function axisTrigger (payload, ecModel, api) {\r\n var currTrigger = payload.currTrigger;\r\n var point = [payload.x, payload.y];\r\n var finder = payload;\r\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer')\r\n .coordSysAxesInfo;\r\n if (!coordSysAxesInfo) {\r\n return;\r\n }\r\n if (illegalPoint(point)) {\r\n point = findPointFromSeries({\r\n seriesIndex: finder.seriesIndex,\r\n dataIndex: finder.dataIndex\r\n }, ecModel).point;\r\n }\r\n var isIllegalPoint = illegalPoint(point);\r\n var inputAxesInfo = finder.axesInfo;\r\n var axesInfo = coordSysAxesInfo.axesInfo;\r\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\r\n var outputPayload = {};\r\n var showValueMap = {};\r\n var dataByCoordSys = {\r\n list: [],\r\n map: {}\r\n };\r\n var updaters = {\r\n showPointer: curry(showPointer, showValueMap),\r\n showTooltip: curry(showTooltip, dataByCoordSys)\r\n };\r\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\r\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\r\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\r\n var axis = axisInfo.axis;\r\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\r\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\r\n var val = inputAxisInfo && inputAxisInfo.value;\r\n if (val == null && !isIllegalPoint) {\r\n val = axis.pointToData(point);\r\n }\r\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\r\n }\r\n });\r\n });\r\n var linkTriggers = {};\r\n each(axesInfo, function (tarAxisInfo, tarKey) {\r\n var linkGroup = tarAxisInfo.linkGroup;\r\n if (linkGroup && !showValueMap[tarKey]) {\r\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\r\n var srcValItem = showValueMap[srcKey];\r\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\r\n var val = srcValItem.value;\r\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\r\n linkTriggers[tarAxisInfo.key] = val;\r\n }\r\n });\r\n }\r\n });\r\n each(linkTriggers, function (val, tarKey) {\r\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\r\n });\r\n updateModelActually(showValueMap, axesInfo, outputPayload);\r\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\r\n dispatchHighDownActually(axesInfo, dispatchAction, api);\r\n return outputPayload;\r\n }\r\n function processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\r\n var axis = axisInfo.axis;\r\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\r\n return;\r\n }\r\n if (!axisInfo.involveSeries) {\r\n updaters.showPointer(axisInfo, newValue);\r\n return;\r\n }\r\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var snapToValue = payloadInfo.snapToValue;\r\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\r\n extend(outputFinder, payloadBatch[0]);\r\n }\r\n if (!noSnap && axisInfo.snap) {\r\n if (axis.containData(snapToValue) && snapToValue != null) {\r\n newValue = snapToValue;\r\n }\r\n }\r\n updaters.showPointer(axisInfo, newValue, payloadBatch);\r\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\r\n }\r\n function buildPayloadsBySeries(value, axisInfo) {\r\n var axis = axisInfo.axis;\r\n var dim = axis.dim;\r\n var snapToValue = value;\r\n var payloadBatch = [];\r\n var minDist = Number.MAX_VALUE;\r\n var minDiff = -1;\r\n each(axisInfo.seriesModels, function (series, idx) {\r\n var dataDim = series.getData().mapDimensionsAll(dim);\r\n var seriesNestestValue;\r\n var dataIndices;\r\n if (series.getAxisTooltipData) {\r\n var result = series.getAxisTooltipData(dataDim, value, axis);\r\n dataIndices = result.dataIndices;\r\n seriesNestestValue = result.nestestValue;\r\n }\r\n else {\r\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\r\n if (!dataIndices.length) {\r\n return;\r\n }\r\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\r\n }\r\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\r\n return;\r\n }\r\n var diff = value - seriesNestestValue;\r\n var dist = Math.abs(diff);\r\n if (dist <= minDist) {\r\n if (dist < minDist || (diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n snapToValue = seriesNestestValue;\r\n payloadBatch.length = 0;\r\n }\r\n each(dataIndices, function (dataIndex) {\r\n payloadBatch.push({\r\n seriesIndex: series.seriesIndex,\r\n dataIndexInside: dataIndex,\r\n dataIndex: series.getData().getRawIndex(dataIndex)\r\n });\r\n });\r\n }\r\n });\r\n return {\r\n payloadBatch: payloadBatch,\r\n snapToValue: snapToValue\r\n };\r\n }\r\n function showPointer(showValueMap, axisInfo, value, payloadBatch) {\r\n showValueMap[axisInfo.key] = {\r\n value: value,\r\n payloadBatch: payloadBatch\r\n };\r\n }\r\n function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var axis = axisInfo.axis;\r\n var axisModel = axis.model;\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\r\n return;\r\n }\r\n var coordSysModel = axisInfo.coordSys.model;\r\n var coordSysKey = makeKey(coordSysModel);\r\n var coordSysItem = dataByCoordSys.map[coordSysKey];\r\n if (!coordSysItem) {\r\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\r\n coordSysId: coordSysModel.id,\r\n coordSysIndex: coordSysModel.componentIndex,\r\n coordSysType: coordSysModel.type,\r\n coordSysMainType: coordSysModel.mainType,\r\n dataByAxis: []\r\n };\r\n dataByCoordSys.list.push(coordSysItem);\r\n }\r\n coordSysItem.dataByAxis.push({\r\n axisDim: axis.dim,\r\n axisIndex: axisModel.componentIndex,\r\n axisType: axisModel.type,\r\n axisId: axisModel.id,\r\n value: value,\r\n valueLabelOpt: {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n },\r\n seriesDataIndices: payloadBatch.slice()\r\n });\r\n }\r\n function updateModelActually(showValueMap, axesInfo, outputPayload) {\r\n var outputAxesInfo = outputPayload.axesInfo = [];\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n var valItem = showValueMap[key];\r\n if (valItem) {\r\n !axisInfo.useHandle && (option.status = 'show');\r\n option.value = valItem.value;\r\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\r\n }\r\n else {\r\n !axisInfo.useHandle && (option.status = 'hide');\r\n }\r\n option.status === 'show' && outputAxesInfo.push({\r\n axisDim: axisInfo.axis.dim,\r\n axisIndex: axisInfo.axis.model.componentIndex,\r\n value: option.value\r\n });\r\n });\r\n }\r\n function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\r\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\r\n dispatchAction({ type: 'hideTip' });\r\n return;\r\n }\r\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\r\n dispatchAction({\r\n type: 'showTip',\r\n escapeConnect: true,\r\n x: point[0],\r\n y: point[1],\r\n tooltipOption: payload.tooltipOption,\r\n position: payload.position,\r\n dataIndexInside: sampleItem.dataIndexInside,\r\n dataIndex: sampleItem.dataIndex,\r\n seriesIndex: sampleItem.seriesIndex,\r\n dataByCoordSys: dataByCoordSys.list\r\n });\r\n }\r\n function dispatchHighDownActually(axesInfo, dispatchAction, api) {\r\n var zr = api.getZr();\r\n var highDownKey = 'axisPointerLastHighlights';\r\n var lastHighlights = inner$c(zr)[highDownKey] || {};\r\n var newHighlights = inner$c(zr)[highDownKey] = {};\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\r\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\r\n newHighlights[key] = batchItem;\r\n });\r\n });\r\n var toHighlight = [];\r\n var toDownplay = [];\r\n each(lastHighlights, function (batchItem, key) {\r\n !newHighlights[key] && toDownplay.push(batchItem);\r\n });\r\n each(newHighlights, function (batchItem, key) {\r\n !lastHighlights[key] && toHighlight.push(batchItem);\r\n });\r\n toDownplay.length && api.dispatchAction({\r\n type: 'downplay',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toDownplay\r\n });\r\n toHighlight.length && api.dispatchAction({\r\n type: 'highlight',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toHighlight\r\n });\r\n }\r\n function findInputAxisInfo(inputAxesInfo, axisInfo) {\r\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\r\n var inputAxisInfo = inputAxesInfo[i];\r\n if (axisInfo.axis.dim === inputAxisInfo.axisDim\r\n && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\r\n return inputAxisInfo;\r\n }\r\n }\r\n }\r\n function makeMapperParam(axisInfo) {\r\n var axisModel = axisInfo.axis.model;\r\n var item = {};\r\n var dim = item.axisDim = axisInfo.axis.dim;\r\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\r\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\r\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\r\n return item;\r\n }\r\n function illegalPoint(point) {\r\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\r\n }\n\n var inner$d = makeInner();\r\n var each$8 = each;\r\n function register(key, api, handler) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n inner$d(zr).records || (inner$d(zr).records = {});\r\n initGlobalListeners(zr, api);\r\n var record = inner$d(zr).records[key] || (inner$d(zr).records[key] = {});\r\n record.handler = handler;\r\n }\r\n function initGlobalListeners(zr, api) {\r\n if (inner$d(zr).initialized) {\r\n return;\r\n }\r\n inner$d(zr).initialized = true;\r\n useHandler('click', curry(doEnter, 'click'));\r\n useHandler('mousemove', curry(doEnter, 'mousemove'));\r\n useHandler('globalout', onLeave);\r\n function useHandler(eventType, cb) {\r\n zr.on(eventType, function (e) {\r\n var dis = makeDispatchAction(api);\r\n each$8(inner$d(zr).records, function (record) {\r\n record && cb(record, e, dis.dispatchAction);\r\n });\r\n dispatchTooltipFinally(dis.pendings, api);\r\n });\r\n }\r\n }\r\n function dispatchTooltipFinally(pendings, api) {\r\n var showLen = pendings.showTip.length;\r\n var hideLen = pendings.hideTip.length;\r\n var actuallyPayload;\r\n if (showLen) {\r\n actuallyPayload = pendings.showTip[showLen - 1];\r\n }\r\n else if (hideLen) {\r\n actuallyPayload = pendings.hideTip[hideLen - 1];\r\n }\r\n if (actuallyPayload) {\r\n actuallyPayload.dispatchAction = null;\r\n api.dispatchAction(actuallyPayload);\r\n }\r\n }\r\n function onLeave(record, e, dispatchAction) {\r\n record.handler('leave', null, dispatchAction);\r\n }\r\n function doEnter(currTrigger, record, e, dispatchAction) {\r\n record.handler(currTrigger, e, dispatchAction);\r\n }\r\n function makeDispatchAction(api) {\r\n var pendings = {\r\n showTip: [],\r\n hideTip: []\r\n };\r\n var dispatchAction = function (payload) {\r\n var pendingList = pendings[payload.type];\r\n if (pendingList) {\r\n pendingList.push(payload);\r\n }\r\n else {\r\n payload.dispatchAction = dispatchAction;\r\n api.dispatchAction(payload);\r\n }\r\n };\r\n return {\r\n dispatchAction: dispatchAction,\r\n pendings: pendings\r\n };\r\n }\r\n function unregister(key, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n var record = (inner$d(zr).records || {})[key];\r\n if (record) {\r\n inner$d(zr).records[key] = null;\r\n }\r\n }\n\n var AxisPointerView = (function (_super) {\r\n __extends(AxisPointerView, _super);\r\n function AxisPointerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerView.type;\r\n return _this;\r\n }\r\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var triggerOn = globalAxisPointerModel.get('triggerOn')\r\n || (globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click');\r\n register('axisPointer', api, function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none'\r\n && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\r\n dispatchAction({\r\n type: 'updateAxisPointer',\r\n currTrigger: currTrigger,\r\n x: e && e.offsetX,\r\n y: e && e.offsetY\r\n });\r\n }\r\n });\r\n };\r\n AxisPointerView.prototype.remove = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.prototype.dispose = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.type = 'axisPointer';\r\n return AxisPointerView;\r\n }(ComponentView));\r\n ComponentView.registerClass(AxisPointerView);\n\n var inner$e = makeInner();\r\n var clone$3 = clone;\r\n var bind$1 = bind;\r\n var BaseAxisPointer = (function () {\r\n function BaseAxisPointer() {\r\n this._dragging = false;\r\n this.animationThreshold = 15;\r\n }\r\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\r\n var value = axisPointerModel.get('value');\r\n var status = axisPointerModel.get('status');\r\n this._axisModel = axisModel;\r\n this._axisPointerModel = axisPointerModel;\r\n this._api = api;\r\n if (!forceRender\r\n && this._lastValue === value\r\n && this._lastStatus === status) {\r\n return;\r\n }\r\n this._lastValue = value;\r\n this._lastStatus = status;\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (!status || status === 'hide') {\r\n group && group.hide();\r\n handle && handle.hide();\r\n return;\r\n }\r\n group && group.show();\r\n handle && handle.show();\r\n var elOption = {};\r\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\r\n var graphicKey = elOption.graphicKey;\r\n if (graphicKey !== this._lastGraphicKey) {\r\n this.clear(api);\r\n }\r\n this._lastGraphicKey = graphicKey;\r\n var moveAnimation = this._moveAnimation =\r\n this.determineAnimation(axisModel, axisPointerModel);\r\n if (!group) {\r\n group = this._group = new Group();\r\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\r\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\r\n api.getZr().add(group);\r\n }\r\n else {\r\n var doUpdateProps = curry(updateProps$1, axisPointerModel, moveAnimation);\r\n this.updatePointerEl(group, elOption, doUpdateProps);\r\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\r\n }\r\n updateMandatoryProps(group, axisPointerModel, true);\r\n this._renderHandle(value);\r\n };\r\n BaseAxisPointer.prototype.remove = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.dispose = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\r\n var animation = axisPointerModel.get('animation');\r\n var axis = axisModel.axis;\r\n var isCategoryAxis = axis.type === 'category';\r\n var useSnap = axisPointerModel.get('snap');\r\n if (!useSnap && !isCategoryAxis) {\r\n return false;\r\n }\r\n if (animation === 'auto' || animation == null) {\r\n var animationThreshold = this.animationThreshold;\r\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\r\n return true;\r\n }\r\n if (useSnap) {\r\n var seriesDataCount = getAxisInfo(axisModel).seriesDataCount;\r\n var axisExtent = axis.getExtent();\r\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\r\n }\r\n return false;\r\n }\r\n return animation === true;\r\n };\r\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n };\r\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\r\n var pointerOption = elOption.pointer;\r\n if (pointerOption) {\r\n var pointerEl = inner$e(group).pointerEl = new graphic[pointerOption.type](clone$3(elOption.pointer));\r\n group.add(pointerEl);\r\n }\r\n };\r\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\r\n if (elOption.label) {\r\n var labelEl = inner$e(group).labelEl = new ZRText(clone$3(elOption.label));\r\n group.add(labelEl);\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\r\n var pointerEl = inner$e(group).pointerEl;\r\n if (pointerEl && elOption.pointer) {\r\n pointerEl.setStyle(elOption.pointer.style);\r\n updateProps(pointerEl, { shape: elOption.pointer.shape });\r\n }\r\n };\r\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\r\n var labelEl = inner$e(group).labelEl;\r\n if (labelEl) {\r\n labelEl.setStyle(elOption.label.style);\r\n updateProps(labelEl, {\r\n x: elOption.label.x,\r\n y: elOption.label.y\r\n });\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype._renderHandle = function (value) {\r\n if (this._dragging || !this.updateHandleTransform) {\r\n return;\r\n }\r\n var axisPointerModel = this._axisPointerModel;\r\n var zr = this._api.getZr();\r\n var handle = this._handle;\r\n var handleModel = axisPointerModel.getModel('handle');\r\n var status = axisPointerModel.get('status');\r\n if (!handleModel.get('show') || !status || status === 'hide') {\r\n handle && zr.remove(handle);\r\n this._handle = null;\r\n return;\r\n }\r\n var isInit;\r\n if (!this._handle) {\r\n isInit = true;\r\n handle = this._handle = createIcon(handleModel.get('icon'), {\r\n cursor: 'move',\r\n draggable: true,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n onmousedown: bind$1(this._onHandleDragMove, this, 0, 0),\r\n drift: bind$1(this._onHandleDragMove, this),\r\n ondragend: bind$1(this._onHandleDragEnd, this)\r\n });\r\n zr.add(handle);\r\n }\r\n updateMandatoryProps(handle, axisPointerModel, false);\r\n handle.setStyle(handleModel.getItemStyle(null, [\r\n 'color', 'borderColor', 'borderWidth', 'opacity',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ]));\r\n var handleSize = handleModel.get('size');\r\n if (!isArray(handleSize)) {\r\n handleSize = [handleSize, handleSize];\r\n }\r\n handle.scaleX = handleSize[0] / 2;\r\n handle.scaleY = handleSize[1] / 2;\r\n createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\r\n this._moveHandleToValue(value, isInit);\r\n };\r\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\r\n updateProps$1(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\r\n };\r\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n this._dragging = true;\r\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\r\n this._payloadInfo = trans;\r\n handle.stopAnimation();\r\n handle.attr(getHandleTransProps(trans));\r\n inner$e(handle).lastProp = null;\r\n this._doDispatchAxisPointer();\r\n };\r\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var payloadInfo = this._payloadInfo;\r\n var axisModel = this._axisModel;\r\n this._api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payloadInfo.cursorPoint[0],\r\n y: payloadInfo.cursorPoint[1],\r\n tooltipOption: payloadInfo.tooltipOption,\r\n axesInfo: [{\r\n axisDim: axisModel.axis.dim,\r\n axisIndex: axisModel.componentIndex\r\n }]\r\n });\r\n };\r\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\r\n this._dragging = false;\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var value = this._axisPointerModel.get('value');\r\n this._moveHandleToValue(value);\r\n this._api.dispatchAction({\r\n type: 'hideTip'\r\n });\r\n };\r\n BaseAxisPointer.prototype.clear = function (api) {\r\n this._lastValue = null;\r\n this._lastStatus = null;\r\n var zr = api.getZr();\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (zr && group) {\r\n this._lastGraphicKey = null;\r\n group && zr.remove(group);\r\n handle && zr.remove(handle);\r\n this._group = null;\r\n this._handle = null;\r\n this._payloadInfo = null;\r\n }\r\n };\r\n BaseAxisPointer.prototype.doClear = function () {\r\n };\r\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n };\r\n return BaseAxisPointer;\r\n }());\r\n function updateProps$1(animationModel, moveAnimation, el, props) {\r\n if (!propsEqual(inner$e(el).lastProp, props)) {\r\n inner$e(el).lastProp = props;\r\n moveAnimation\r\n ? updateProps(el, props, animationModel)\r\n : (el.stopAnimation(), el.attr(props));\r\n }\r\n }\r\n function propsEqual(lastProps, newProps) {\r\n if (isObject(lastProps) && isObject(newProps)) {\r\n var equals_1 = true;\r\n each(newProps, function (item, key) {\r\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\r\n });\r\n return !!equals_1;\r\n }\r\n else {\r\n return lastProps === newProps;\r\n }\r\n }\r\n function updateLabelShowHide(labelEl, axisPointerModel) {\r\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\r\n }\r\n function getHandleTransProps(trans) {\r\n return {\r\n x: trans.x || 0,\r\n y: trans.y || 0,\r\n rotation: trans.rotation || 0\r\n };\r\n }\r\n function updateMandatoryProps(group, axisPointerModel, silent) {\r\n var z = axisPointerModel.get('z');\r\n var zlevel = axisPointerModel.get('zlevel');\r\n group && group.traverse(function (el) {\r\n if (el.type !== 'group') {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n el.silent = silent;\r\n }\r\n });\r\n }\n\n function buildElStyle(axisPointerModel) {\r\n var axisPointerType = axisPointerModel.get('type');\r\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\r\n var style;\r\n if (axisPointerType === 'line') {\r\n style = styleModel.getLineStyle();\r\n style.fill = null;\r\n }\r\n else if (axisPointerType === 'shadow') {\r\n style = styleModel.getAreaStyle();\r\n style.stroke = null;\r\n }\r\n return style;\r\n }\r\n function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\r\n var value = axisPointerModel.get('value');\r\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n });\r\n var labelModel = axisPointerModel.getModel('label');\r\n var paddings = normalizeCssArray$1(labelModel.get('padding') || 0);\r\n var font = labelModel.getFont();\r\n var textRect = getBoundingRect(text, font);\r\n var position = labelPos.position;\r\n var width = textRect.width + paddings[1] + paddings[3];\r\n var height = textRect.height + paddings[0] + paddings[2];\r\n var align = labelPos.align;\r\n align === 'right' && (position[0] -= width);\r\n align === 'center' && (position[0] -= width / 2);\r\n var verticalAlign = labelPos.verticalAlign;\r\n verticalAlign === 'bottom' && (position[1] -= height);\r\n verticalAlign === 'middle' && (position[1] -= height / 2);\r\n confineInContainer(position, width, height, api);\r\n var bgColor = labelModel.get('backgroundColor');\r\n if (!bgColor || bgColor === 'auto') {\r\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n }\r\n elOption.label = {\r\n x: position[0],\r\n y: position[1],\r\n style: {\r\n text: text,\r\n textFont: font,\r\n fill: labelModel.getTextColor(),\r\n padding: paddings,\r\n backgroundColor: bgColor,\r\n borderColor: labelModel.get('borderColor') || 'transparent',\r\n borderRadius: labelModel.get('borderRadius'),\r\n borderWidth: labelModel.get('borderWidth') || 0,\r\n shadowBlur: labelModel.get('shadowBlur'),\r\n shadowColor: labelModel.get('shadowColor'),\r\n shadowOffsetX: labelModel.get('shadowOffsetX'),\r\n shadowOffsetY: labelModel.get('shadowOffsetY')\r\n },\r\n z2: 10\r\n };\r\n }\r\n function confineInContainer(position, width, height, api) {\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n position[0] = Math.min(position[0] + width, viewWidth) - width;\r\n position[1] = Math.min(position[1] + height, viewHeight) - height;\r\n position[0] = Math.max(position[0], 0);\r\n position[1] = Math.max(position[1], 0);\r\n }\r\n function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\r\n value = axis.scale.parse(value);\r\n var text = axis.scale.getLabel({\r\n value: value\r\n }, {\r\n precision: opt.precision\r\n });\r\n var formatter = opt.formatter;\r\n if (formatter) {\r\n var params_1 = {\r\n value: getAxisRawValue(axis, { value: value }),\r\n axisDimension: axis.dim,\r\n axisIndex: axis.index,\r\n seriesData: []\r\n };\r\n each(seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams && params_1.seriesData.push(dataParams);\r\n });\r\n if (isString(formatter)) {\r\n text = formatter.replace('{value}', text);\r\n }\r\n else if (isFunction(formatter)) {\r\n text = formatter(params_1);\r\n }\r\n }\r\n return text;\r\n }\r\n function getTransformedPosition(axis, value, layoutInfo) {\r\n var transform = create$1();\r\n rotate(transform, transform, layoutInfo.rotation);\r\n translate(transform, transform, layoutInfo.position);\r\n return applyTransform$1([\r\n axis.dataToCoord(value),\r\n (layoutInfo.labelOffset || 0)\r\n + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)\r\n ], transform);\r\n }\r\n function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\r\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\r\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\r\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\r\n align: textLayout.textAlign,\r\n verticalAlign: textLayout.textVerticalAlign\r\n });\r\n }\r\n function makeLineShape(p1, p2, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x1: p1[xDimIndex],\r\n y1: p1[1 - xDimIndex],\r\n x2: p2[xDimIndex],\r\n y2: p2[1 - xDimIndex]\r\n };\r\n }\r\n function makeRectShape(xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n }\r\n function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\r\n return {\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: r,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n clockwise: true\r\n };\r\n }\n\n var CartesianAxisPointer = (function (_super) {\r\n __extends(CartesianAxisPointer, _super);\r\n function CartesianAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisPointerType = axisPointerModel.get('type');\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$1(grid.model, axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$1(axisModel.axis.grid.model, axisModel, {\r\n labelInside: false\r\n });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var pos = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisExtent = axis.getGlobalExtent(true);\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var dimIndex = axis.dim === 'x' ? 0 : 1;\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n var tooltipOptions = [\r\n { verticalAlign: 'middle' },\r\n { align: 'center' }\r\n ];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: tooltipOptions[dimIndex]\r\n };\r\n };\r\n return CartesianAxisPointer;\r\n }(BaseAxisPointer));\r\n function getCartesian(grid, axis) {\r\n var opt = {};\r\n opt[axis.dim + 'AxisIndex'] = axis.index;\r\n return grid.getCartesian(opt);\r\n }\r\n var pointerShapeBuilder = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getAxisDimIndex(axis) {\r\n return axis.dim === 'x' ? 0 : 1;\r\n }\r\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n\n var AxisPointerModel = (function (_super) {\r\n __extends(AxisPointerModel, _super);\r\n function AxisPointerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerModel.type;\r\n return _this;\r\n }\r\n AxisPointerModel.type = 'axisPointer';\r\n AxisPointerModel.defaultOption = {\r\n show: 'auto',\r\n zlevel: 0,\r\n z: 50,\r\n type: 'line',\r\n snap: false,\r\n triggerTooltip: true,\r\n value: null,\r\n status: null,\r\n link: [],\r\n animation: null,\r\n animationDurationUpdate: 200,\r\n lineStyle: {\r\n color: '#B9BEC9',\r\n width: 1,\r\n type: 'dashed'\r\n },\r\n shadowStyle: {\r\n color: 'rgba(210,219,238,0.2)'\r\n },\r\n label: {\r\n show: true,\r\n formatter: null,\r\n precision: 'auto',\r\n margin: 3,\r\n color: '#fff',\r\n padding: [5, 7, 5, 7],\r\n backgroundColor: 'auto',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderRadius: 3\r\n },\r\n handle: {\r\n show: false,\r\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\r\n size: 45,\r\n margin: 50,\r\n color: '#333',\r\n shadowBlur: 3,\r\n shadowColor: '#aaa',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 2,\r\n throttle: 40\r\n }\r\n };\r\n return AxisPointerModel;\r\n }(ComponentModel));\n\n ComponentModel.registerClass(AxisPointerModel);\r\n registerPreprocessor(function (option) {\r\n if (option) {\r\n (!option.axisPointer || option.axisPointer.length === 0)\r\n && (option.axisPointer = {});\r\n var link = option.axisPointer.link;\r\n if (link && !isArray(link)) {\r\n option.axisPointer.link = [link];\r\n }\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\r\n ecModel.getComponent('axisPointer').coordSysAxesInfo =\r\n collect(ecModel, api);\r\n });\r\n registerAction({\r\n type: 'updateAxisPointer',\r\n event: 'updateAxisPointer',\r\n update: ':updateAxisPointer'\r\n }, axisTrigger);\n\n var XY = ['x', 'y'];\r\n var WH = ['width', 'height'];\r\n var SingleAxisPointer = (function (_super) {\r\n __extends(SingleAxisPointer, _super);\r\n function SingleAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var coordSys = axis.coordinateSystem;\r\n var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\r\n var pixelValue = coordSys.dataToPoint(value)[0];\r\n var axisPointerType = axisPointerModel.get('type');\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder$1[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$2(axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$2(axisModel, { labelInside: false });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var position = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: position[0],\r\n y: position[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var coordSys = axis.coordinateSystem;\r\n var dimIndex = getPointDimIndex(axis);\r\n var axisExtent = getGlobalExtent(coordSys, dimIndex);\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: {\r\n verticalAlign: 'middle'\r\n }\r\n };\r\n };\r\n return SingleAxisPointer;\r\n }(BaseAxisPointer));\r\n var pointerShapeBuilder$1 = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = axis.getBandWidth();\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getPointDimIndex(axis) {\r\n return axis.isHorizontal() ? 0 : 1;\r\n }\r\n function getGlobalExtent(coordSys, dimIndex) {\r\n var rect = coordSys.getRect();\r\n return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\r\n }\r\n AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n\n extendComponentView({\r\n type: 'single'\r\n });\n\n var DATA_NAME_INDEX = 2;\r\n var ThemeRiverSeriesModel = (function (_super) {\r\n __extends(ThemeRiverSeriesModel, _super);\r\n function ThemeRiverSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ThemeRiverSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n ThemeRiverSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n };\r\n ThemeRiverSeriesModel.prototype.fixData = function (data) {\r\n var rawDataLength = data.length;\r\n var groupResult = groupData(data, function (item) {\r\n return item[2];\r\n });\r\n var layData = [];\r\n groupResult.buckets.each(function (items, key) {\r\n layData.push({\r\n name: key,\r\n dataList: items\r\n });\r\n });\r\n var layerNum = layData.length;\r\n var largestLayer = -1;\r\n var index = -1;\r\n for (var i = 0; i < layerNum; ++i) {\r\n var len = layData[i].dataList.length;\r\n if (len > largestLayer) {\r\n largestLayer = len;\r\n index = i;\r\n }\r\n }\r\n for (var k = 0; k < layerNum; ++k) {\r\n if (k === index) {\r\n continue;\r\n }\r\n var name_1 = layData[k].name;\r\n for (var j = 0; j < largestLayer; ++j) {\r\n var timeValue = layData[index].dataList[j][0];\r\n var length_1 = layData[k].dataList.length;\r\n var keyIndex = -1;\r\n for (var l = 0; l < length_1; ++l) {\r\n var value = layData[k].dataList[l][0];\r\n if (value === timeValue) {\r\n keyIndex = l;\r\n break;\r\n }\r\n }\r\n if (keyIndex === -1) {\r\n data[rawDataLength] = [timeValue, 0, name_1];\r\n rawDataLength++;\r\n }\r\n }\r\n }\r\n return data;\r\n };\r\n ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n var axisType = singleAxisModel.get('type');\r\n var filterData = filter(option.data, function (dataItem) {\r\n return dataItem[2] !== undefined;\r\n });\r\n var data = this.fixData(filterData || []);\r\n var nameList = [];\r\n var nameMap = this.nameMap = createHashMap();\r\n var count = 0;\r\n for (var i = 0; i < data.length; ++i) {\r\n nameList.push(data[i][DATA_NAME_INDEX]);\r\n if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\r\n nameMap.set(data[i][DATA_NAME_INDEX], count);\r\n count++;\r\n }\r\n }\r\n var dimensionsInfo = createDimensions(data, {\r\n coordDimensions: ['single'],\r\n dimensionsDefine: [\r\n {\r\n name: 'time',\r\n type: getDimensionTypeByAxis(axisType)\r\n },\r\n {\r\n name: 'value',\r\n type: 'float'\r\n },\r\n {\r\n name: 'name',\r\n type: 'ordinal'\r\n }\r\n ],\r\n encodeDefine: {\r\n single: 0,\r\n value: 1,\r\n itemName: 2\r\n }\r\n });\r\n var list = new List(dimensionsInfo, this);\r\n list.initData(data);\r\n return list;\r\n };\r\n ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\r\n var data = this.getData();\r\n var lenCount = data.count();\r\n var indexArr = [];\r\n for (var i = 0; i < lenCount; ++i) {\r\n indexArr[i] = i;\r\n }\r\n var timeDim = data.mapDimension('single');\r\n var groupResult = groupData(indexArr, function (index) {\r\n return data.get('name', index);\r\n });\r\n var layerSeries = [];\r\n groupResult.buckets.each(function (items, key) {\r\n items.sort(function (index1, index2) {\r\n return data.get(timeDim, index1) - data.get(timeDim, index2);\r\n });\r\n layerSeries.push({\r\n name: key,\r\n indices: items\r\n });\r\n });\r\n return layerSeries;\r\n };\r\n ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\r\n if (!isArray(dim)) {\r\n dim = dim ? [dim] : [];\r\n }\r\n var data = this.getData();\r\n var layerSeries = this.getLayerSeries();\r\n var indices = [];\r\n var layerNum = layerSeries.length;\r\n var nestestValue;\r\n for (var i = 0; i < layerNum; ++i) {\r\n var minDist = Number.MAX_VALUE;\r\n var nearestIdx = -1;\r\n var pointNum = layerSeries[i].indices.length;\r\n for (var j = 0; j < pointNum; ++j) {\r\n var theValue = data.get(dim[0], layerSeries[i].indices[j]);\r\n var dist = Math.abs(theValue - value);\r\n if (dist <= minDist) {\r\n nestestValue = theValue;\r\n minDist = dist;\r\n nearestIdx = layerSeries[i].indices[j];\r\n }\r\n }\r\n indices.push(nearestIdx);\r\n }\r\n return { dataIndices: indices, nestestValue: nestestValue };\r\n };\r\n ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var htmlName = data.getName(dataIndex);\r\n var htmlValue = data.get(data.mapDimension('value'), dataIndex);\r\n if (isNaN(htmlValue) || htmlValue == null) {\r\n htmlValue = '-';\r\n }\r\n if (renderMode === 'richText') {\r\n return encodeHTML(htmlName) + ': ' + htmlValue;\r\n }\r\n return '
'\r\n + concatTooltipHtml(htmlName, htmlValue)\r\n + '
';\r\n };\r\n ThemeRiverSeriesModel.type = 'series.themeRiver';\r\n ThemeRiverSeriesModel.dependencies = ['singleAxis'];\r\n ThemeRiverSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'singleAxis',\r\n boundaryGap: ['10%', '10%'],\r\n singleAxisIndex: 0,\r\n animationEasing: 'linear',\r\n label: {\r\n margin: 4,\r\n show: true,\r\n position: 'left',\r\n fontSize: 11\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return ThemeRiverSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ThemeRiverSeriesModel);\n\n var ThemeRiverView = (function (_super) {\r\n __extends(ThemeRiverView, _super);\r\n function ThemeRiverView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ThemeRiverView.type;\r\n _this._layers = [];\r\n return _this;\r\n }\r\n ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var self = this;\r\n var group = this.group;\r\n var layersSeries = seriesModel.getLayerSeries();\r\n var layoutInfo = data.getLayout('layoutInfo');\r\n var rect = layoutInfo.rect;\r\n var boundaryGap = layoutInfo.boundaryGap;\r\n group.x = 0;\r\n group.y = rect.y + boundaryGap[0];\r\n function keyGetter(item) {\r\n return item.name;\r\n }\r\n var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\r\n var newLayersGroups = [];\r\n dataDiffer\r\n .add(bind(process, this, 'add'))\r\n .update(bind(process, this, 'update'))\r\n .remove(bind(process, this, 'remove'))\r\n .execute();\r\n function process(status, idx, oldIdx) {\r\n var oldLayersGroups = self._layers;\r\n if (status === 'remove') {\r\n group.remove(oldLayersGroups[idx]);\r\n return;\r\n }\r\n var points0 = [];\r\n var points1 = [];\r\n var style;\r\n var indices = layersSeries[idx].indices;\r\n var j = 0;\r\n for (; j < indices.length; j++) {\r\n var layout = data.getItemLayout(indices[j]);\r\n var x = layout.x;\r\n var y0 = layout.y0;\r\n var y = layout.y;\r\n points0.push([x, y0]);\r\n points1.push([x, y0 + y]);\r\n style = data.getItemVisual(indices[j], 'style');\r\n }\r\n var polygon;\r\n var textLayout = data.getItemLayout(indices[0]);\r\n var labelModel = seriesModel.getModel('label');\r\n var margin = labelModel.get('margin');\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n if (status === 'add') {\r\n var layerGroup = newLayersGroups[idx] = new Group();\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points0,\r\n stackedOnPoints: points1,\r\n smooth: 0.4,\r\n stackedOnSmooth: 0.4,\r\n smoothConstraint: false\r\n },\r\n z2: 0\r\n });\r\n layerGroup.add(polygon);\r\n group.add(layerGroup);\r\n if (seriesModel.isAnimationEnabled()) {\r\n polygon.setClipPath(createGridClipShape$2(polygon.getBoundingRect(), seriesModel, function () {\r\n polygon.removeClipPath();\r\n }));\r\n }\r\n }\r\n else {\r\n var layerGroup = oldLayersGroups[oldIdx];\r\n polygon = layerGroup.childAt(0);\r\n group.add(layerGroup);\r\n newLayersGroups[idx] = layerGroup;\r\n updateProps(polygon, {\r\n shape: {\r\n points: points0,\r\n stackedOnPoints: points1\r\n }\r\n }, seriesModel);\r\n }\r\n setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\r\n labelDataIndex: indices[j - 1],\r\n defaultText: data.getName(indices[j - 1]),\r\n inheritColor: style.fill\r\n }, {\r\n normal: {\r\n verticalAlign: 'middle'\r\n }\r\n });\r\n polygon.setTextConfig({\r\n position: null,\r\n local: true\r\n });\r\n var labelEl = polygon.getTextContent();\r\n if (labelEl) {\r\n labelEl.x = textLayout.x - margin;\r\n labelEl.y = textLayout.y0 + textLayout.y / 2;\r\n }\r\n polygon.useStyle(style);\r\n data.setItemGraphicEl(idx, polygon);\r\n setStatesStylesFromModel(polygon, seriesModel);\r\n enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n this._layersSeries = layersSeries;\r\n this._layers = newLayersGroups;\r\n };\r\n ThemeRiverView.type = 'themeRiver';\r\n return ThemeRiverView;\r\n }(ChartView));\r\n function createGridClipShape$2(rect, seriesModel, cb) {\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x - 10,\r\n y: rect.y - 10,\r\n width: 0,\r\n height: rect.height + 20\r\n }\r\n });\r\n initProps(rectEl, {\r\n shape: {\r\n x: rect.x - 50,\r\n width: rect.width + 100,\r\n height: rect.height + 20\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n ChartView.registerClass(ThemeRiverView);\n\n function themeRiverLayout (ecModel, api) {\r\n ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var single = seriesModel.coordinateSystem;\r\n var layoutInfo = {};\r\n var rect = single.getRect();\r\n layoutInfo.rect = rect;\r\n var boundaryGap = seriesModel.get('boundaryGap');\r\n var axis = single.getAxis();\r\n layoutInfo.boundaryGap = boundaryGap;\r\n if (axis.orient === 'horizontal') {\r\n boundaryGap[0] = parsePercent$2(boundaryGap[0], rect.height);\r\n boundaryGap[1] = parsePercent$2(boundaryGap[1], rect.height);\r\n var height = rect.height - boundaryGap[0] - boundaryGap[1];\r\n themeRiverLayout$1(data, seriesModel, height);\r\n }\r\n else {\r\n boundaryGap[0] = parsePercent$2(boundaryGap[0], rect.width);\r\n boundaryGap[1] = parsePercent$2(boundaryGap[1], rect.width);\r\n var width = rect.width - boundaryGap[0] - boundaryGap[1];\r\n themeRiverLayout$1(data, seriesModel, width);\r\n }\r\n data.setLayout('layoutInfo', layoutInfo);\r\n });\r\n }\r\n function themeRiverLayout$1(data, seriesModel, height) {\r\n if (!data.count()) {\r\n return;\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n var layerSeries = seriesModel.getLayerSeries();\r\n var timeDim = data.mapDimension('single');\r\n var valueDim = data.mapDimension('value');\r\n var layerPoints = map(layerSeries, function (singleLayer) {\r\n return map(singleLayer.indices, function (idx) {\r\n var pt = coordSys.dataToPoint(data.get(timeDim, idx));\r\n pt[1] = data.get(valueDim, idx);\r\n return pt;\r\n });\r\n });\r\n var base = computeBaseline(layerPoints);\r\n var baseLine = base.y0;\r\n var ky = height / base.max;\r\n var n = layerSeries.length;\r\n var m = layerSeries[0].indices.length;\r\n var baseY0;\r\n for (var j = 0; j < m; ++j) {\r\n baseY0 = baseLine[j] * ky;\r\n data.setItemLayout(layerSeries[0].indices[j], {\r\n layerIndex: 0,\r\n x: layerPoints[0][j][0],\r\n y0: baseY0,\r\n y: layerPoints[0][j][1] * ky\r\n });\r\n for (var i = 1; i < n; ++i) {\r\n baseY0 += layerPoints[i - 1][j][1] * ky;\r\n data.setItemLayout(layerSeries[i].indices[j], {\r\n layerIndex: i,\r\n x: layerPoints[i][j][0],\r\n y0: baseY0,\r\n y: layerPoints[i][j][1] * ky\r\n });\r\n }\r\n }\r\n }\r\n function computeBaseline(data) {\r\n var layerNum = data.length;\r\n var pointNum = data[0].length;\r\n var sums = [];\r\n var y0 = [];\r\n var max = 0;\r\n for (var i = 0; i < pointNum; ++i) {\r\n var temp = 0;\r\n for (var j = 0; j < layerNum; ++j) {\r\n temp += data[j][i][1];\r\n }\r\n if (temp > max) {\r\n max = temp;\r\n }\r\n sums.push(temp);\r\n }\r\n for (var k = 0; k < pointNum; ++k) {\r\n y0[k] = (max - sums[k]) / 2;\r\n }\r\n max = 0;\r\n for (var l = 0; l < pointNum; ++l) {\r\n var sum = sums[l] + y0[l];\r\n if (sum > max) {\r\n max = sum;\r\n }\r\n }\r\n return {\r\n y0: y0,\r\n max: max\r\n };\r\n }\n\n registerLayout(themeRiverLayout);\r\n registerProcessor(dataFilter('themeRiver'));\n\n var SunburstSeriesModel = (function (_super) {\r\n __extends(SunburstSeriesModel, _super);\r\n function SunburstSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SunburstSeriesModel.type;\r\n _this.ignoreStyleOnData = true;\r\n return _this;\r\n }\r\n SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var root = { name: option.name, children: option.data };\r\n completeTreeValue$1(root);\r\n var levels = option.levels || [];\r\n var treeOption = {\r\n levels: levels\r\n };\r\n return Tree.createTree(root, this, treeOption).data;\r\n };\r\n SunburstSeriesModel.prototype.optionUpdated = function () {\r\n this.resetViewRoot();\r\n };\r\n SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var params = _super.prototype.getDataParams.apply(this, arguments);\r\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\r\n params.treePathInfo = wrapTreePathInfo(node, this);\r\n return params;\r\n };\r\n SunburstSeriesModel.prototype.getViewRoot = function () {\r\n return this._viewRoot;\r\n };\r\n SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\r\n viewRoot\r\n ? (this._viewRoot = viewRoot)\r\n : (viewRoot = this._viewRoot);\r\n var root = this.getRawData().tree.root;\r\n if (!viewRoot\r\n || (viewRoot !== root && !root.contains(viewRoot))) {\r\n this._viewRoot = root;\r\n }\r\n };\r\n SunburstSeriesModel.type = 'series.sunburst';\r\n SunburstSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n stillShowZeroSum: true,\r\n nodeClick: 'rootToNode',\r\n renderLabelForZeroData: false,\r\n label: {\r\n rotate: 'radial',\r\n show: true,\r\n opacity: 1,\r\n align: 'center',\r\n position: 'inside',\r\n distance: 5,\r\n silent: true\r\n },\r\n itemStyle: {\r\n borderWidth: 1,\r\n borderColor: 'white',\r\n borderType: 'solid',\r\n shadowBlur: 0,\r\n shadowColor: 'rgba(0, 0, 0, 0.2)',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n emphasis: {\r\n focus: 'descendant'\r\n },\r\n blur: {\r\n itemStyle: {\r\n opacity: 0.2\r\n },\r\n label: {\r\n opacity: 0.1\r\n }\r\n },\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n data: [],\r\n levels: [],\r\n sort: 'desc'\r\n };\r\n return SunburstSeriesModel;\r\n }(SeriesModel));\r\n function completeTreeValue$1(dataNode) {\r\n var sum = 0;\r\n each(dataNode.children, function (child) {\r\n completeTreeValue$1(child);\r\n var childValue = child.value;\r\n isArray(childValue) && (childValue = childValue[0]);\r\n sum += childValue;\r\n });\r\n var thisValue = dataNode.value;\r\n if (isArray(thisValue)) {\r\n thisValue = thisValue[0];\r\n }\r\n if (thisValue == null || isNaN(thisValue)) {\r\n thisValue = sum;\r\n }\r\n if (thisValue < 0) {\r\n thisValue = 0;\r\n }\r\n isArray(dataNode.value)\r\n ? (dataNode.value[0] = thisValue)\r\n : (dataNode.value = thisValue);\r\n }\r\n SeriesModel.registerClass(SunburstSeriesModel);\n\n var DEFAULT_SECTOR_Z = 2;\r\n var DEFAULT_TEXT_Z = 4;\r\n var SunburstPiece = (function (_super) {\r\n __extends(SunburstPiece, _super);\r\n function SunburstPiece(node, seriesModel, ecModel) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = DEFAULT_SECTOR_Z;\r\n _this.textConfig = {\r\n inside: true\r\n };\r\n getECData(_this).seriesIndex = seriesModel.seriesIndex;\r\n var text = new ZRText({\r\n z2: DEFAULT_TEXT_Z,\r\n silent: node.getModel().get(['label', 'silent'])\r\n });\r\n _this.setTextContent(text);\r\n _this.updateData(true, node, seriesModel, ecModel);\r\n return _this;\r\n }\r\n SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel) {\r\n this.node = node;\r\n node.piece = this;\r\n seriesModel = seriesModel || this._seriesModel;\r\n ecModel = ecModel || this._ecModel;\r\n var sector = this;\r\n getECData(sector).dataIndex = node.dataIndex;\r\n var itemModel = node.getModel();\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = node.getLayout();\r\n var sectorShape = extend({}, layout);\r\n sectorShape.label = null;\r\n var normalStyle = node.getVisual('style');\r\n normalStyle.lineJoin = 'bevel';\r\n each(SPECIAL_STATES, function (stateName) {\r\n var state = sector.ensureState(stateName);\r\n state.style = itemModel.getModel([stateName, 'itemStyle']).getItemStyle();\r\n });\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n sector.shape.r = layout.r0;\r\n updateProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, node.dataIndex);\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel);\r\n }\r\n sector.useStyle(normalStyle);\r\n this._updateLabel(seriesModel);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._seriesModel = seriesModel || this._seriesModel;\r\n this._ecModel = ecModel || this._ecModel;\r\n var focus = emphasisModel.get('focus');\r\n var focusDataIndices = focus === 'ancestor'\r\n ? node.getAncestorsIndices()\r\n : focus === 'descendant' ? node.getDescendantIndices() : null;\r\n enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\r\n };\r\n SunburstPiece.prototype._updateLabel = function (seriesModel) {\r\n var _this = this;\r\n var itemModel = this.node.getModel();\r\n var normalLabelModel = itemModel.getModel('label');\r\n var layout = this.node.getLayout();\r\n var angle = layout.endAngle - layout.startAngle;\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var dx = Math.cos(midAngle);\r\n var dy = Math.sin(midAngle);\r\n var sector = this;\r\n var label = sector.getTextContent();\r\n var dataIndex = this.node.dataIndex;\r\n each(DISPLAY_STATES, function (stateName) {\r\n var labelStateModel = stateName === 'normal' ? itemModel.getModel('label')\r\n : itemModel.getModel([stateName, 'label']);\r\n var labelMinAngle = labelStateModel.get('minAngle') / 180 * Math.PI;\r\n var isNormal = stateName === 'normal';\r\n var state = isNormal ? label : label.ensureState(stateName);\r\n var text = seriesModel.getFormattedLabel(dataIndex, stateName);\r\n if (isNormal) {\r\n text = text || _this.node.name;\r\n }\r\n state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\r\n if (text) {\r\n state.style.text = text;\r\n }\r\n state.ignore = labelMinAngle != null && Math.abs(angle) < labelMinAngle;\r\n var labelPosition = getLabelAttr(labelStateModel, 'position');\r\n var sectorState = isNormal ? sector : sector.states[stateName];\r\n var labelColor = sectorState.style.fill;\r\n sectorState.textConfig = {\r\n outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\r\n inside: labelPosition !== 'outside'\r\n };\r\n var r;\r\n var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\r\n var textAlign = getLabelAttr(labelStateModel, 'align');\r\n if (labelPosition === 'outside') {\r\n r = layout.r + labelPadding;\r\n textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\r\n }\r\n else {\r\n if (!textAlign || textAlign === 'center') {\r\n r = (layout.r + layout.r0) / 2;\r\n textAlign = 'center';\r\n }\r\n else if (textAlign === 'left') {\r\n r = layout.r0 + labelPadding;\r\n if (midAngle > Math.PI / 2) {\r\n textAlign = 'right';\r\n }\r\n }\r\n else if (textAlign === 'right') {\r\n r = layout.r - labelPadding;\r\n if (midAngle > Math.PI / 2) {\r\n textAlign = 'left';\r\n }\r\n }\r\n }\r\n state.style.align = textAlign;\r\n state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\r\n state.x = r * dx + layout.cx;\r\n state.y = r * dy + layout.cy;\r\n var rotateType = getLabelAttr(labelStateModel, 'rotate');\r\n var rotate = 0;\r\n if (rotateType === 'radial') {\r\n rotate = -midAngle;\r\n if (rotate < -Math.PI / 2) {\r\n rotate += Math.PI;\r\n }\r\n }\r\n else if (rotateType === 'tangential') {\r\n rotate = Math.PI / 2 - midAngle;\r\n if (rotate > Math.PI / 2) {\r\n rotate -= Math.PI;\r\n }\r\n else if (rotate < -Math.PI / 2) {\r\n rotate += Math.PI;\r\n }\r\n }\r\n else if (typeof rotateType === 'number') {\r\n rotate = rotateType * Math.PI / 180;\r\n }\r\n state.rotation = rotate;\r\n });\r\n function getLabelAttr(model, name) {\r\n var stateAttr = model.get(name);\r\n if (stateAttr == null) {\r\n return normalLabelModel.get(name);\r\n }\r\n return stateAttr;\r\n }\r\n label.dirtyStyle();\r\n };\r\n return SunburstPiece;\r\n }(Sector));\n\n var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\r\n registerAction({ type: ROOT_TO_NODE_ACTION, update: 'updateView' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleRootToNode);\r\n function handleRootToNode(model, index) {\r\n var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\r\n if (targetInfo) {\r\n var originViewRoot = model.getViewRoot();\r\n if (originViewRoot) {\r\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node)\r\n ? 'rollUp' : 'drillDown';\r\n }\r\n model.resetViewRoot(targetInfo.node);\r\n }\r\n }\r\n });\r\n var HIGHLIGHT_ACTION = 'sunburstHighlight';\r\n registerAction({ type: HIGHLIGHT_ACTION, update: 'none' }, function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleHighlight);\r\n function handleHighlight(model) {\r\n var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\r\n if (targetInfo) {\r\n payload.dataIndex = targetInfo.node.dataIndex;\r\n }\r\n }\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlight', 'sunburstHighlight');\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: 'highlight'\r\n }));\r\n });\r\n var UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\r\n registerAction({ type: UNHIGHLIGHT_ACTION, update: 'updateView' }, function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'sunburstUnhighlight');\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: 'downplay'\r\n }));\r\n });\n\n var SunburstView = (function (_super) {\r\n __extends(SunburstView, _super);\r\n function SunburstView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SunburstView.type;\r\n return _this;\r\n }\r\n SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var self = this;\r\n this.seriesModel = seriesModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n var data = seriesModel.getData();\r\n var virtualRoot = data.tree.root;\r\n var newRoot = seriesModel.getViewRoot();\r\n var group = this.group;\r\n var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\r\n var newChildren = [];\r\n newRoot.eachNode(function (node) {\r\n newChildren.push(node);\r\n });\r\n var oldChildren = this._oldChildren || [];\r\n dualTravel(newChildren, oldChildren);\r\n renderRollUp(virtualRoot, newRoot);\r\n this._initEvents();\r\n this._oldChildren = newChildren;\r\n function dualTravel(newChildren, oldChildren) {\r\n if (newChildren.length === 0 && oldChildren.length === 0) {\r\n return;\r\n }\r\n new DataDiffer(oldChildren, newChildren, getKey, getKey)\r\n .add(processNode)\r\n .update(processNode)\r\n .remove(curry(processNode, null))\r\n .execute();\r\n function getKey(node) {\r\n return node.getId();\r\n }\r\n function processNode(newIdx, oldIdx) {\r\n var newNode = newIdx == null ? null : newChildren[newIdx];\r\n var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\r\n doRenderNode(newNode, oldNode);\r\n }\r\n }\r\n function doRenderNode(newNode, oldNode) {\r\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\r\n newNode = null;\r\n }\r\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\r\n if (oldNode && oldNode.piece) {\r\n if (newNode) {\r\n oldNode.piece.updateData(false, newNode, seriesModel, ecModel);\r\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\r\n }\r\n else {\r\n removeNode(oldNode);\r\n }\r\n }\r\n else if (newNode) {\r\n var piece = new SunburstPiece(newNode, seriesModel, ecModel);\r\n group.add(piece);\r\n data.setItemGraphicEl(newNode.dataIndex, piece);\r\n }\r\n }\r\n }\r\n function removeNode(node) {\r\n if (!node) {\r\n return;\r\n }\r\n if (node.piece) {\r\n group.remove(node.piece);\r\n node.piece = null;\r\n }\r\n }\r\n function renderRollUp(virtualRoot, viewRoot) {\r\n if (viewRoot.depth > 0) {\r\n if (self.virtualPiece) {\r\n self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel);\r\n }\r\n else {\r\n self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel);\r\n group.add(self.virtualPiece);\r\n }\r\n viewRoot.piece.off('click');\r\n self.virtualPiece.on('click', function (e) {\r\n self._rootToNode(viewRoot.parentNode);\r\n });\r\n }\r\n else if (self.virtualPiece) {\r\n group.remove(self.virtualPiece);\r\n self.virtualPiece = null;\r\n }\r\n }\r\n };\r\n SunburstView.prototype._initEvents = function () {\r\n var _this = this;\r\n this.group.off('click');\r\n this.group.on('click', function (e) {\r\n var targetFound = false;\r\n var viewRoot = _this.seriesModel.getViewRoot();\r\n viewRoot.eachNode(function (node) {\r\n if (!targetFound\r\n && node.piece && node.piece === e.target) {\r\n var nodeClick = node.getModel().get('nodeClick');\r\n if (nodeClick === 'rootToNode') {\r\n _this._rootToNode(node);\r\n }\r\n else if (nodeClick === 'link') {\r\n var itemModel = node.getModel();\r\n var link = itemModel.get('link');\r\n if (link) {\r\n var linkTarget = itemModel.get('target', true)\r\n || '_blank';\r\n windowOpen(link, linkTarget);\r\n }\r\n }\r\n targetFound = true;\r\n }\r\n });\r\n });\r\n };\r\n SunburstView.prototype._rootToNode = function (node) {\r\n if (node !== this.seriesModel.getViewRoot()) {\r\n this.api.dispatchAction({\r\n type: ROOT_TO_NODE_ACTION,\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: node\r\n });\r\n }\r\n };\r\n SunburstView.prototype.containPoint = function (point, seriesModel) {\r\n var treeRoot = seriesModel.getData();\r\n var itemLayout = treeRoot.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n SunburstView.type = 'sunburst';\r\n return SunburstView;\r\n }(ChartView));\r\n ChartView.registerClass(SunburstView);\n\n var RADIAN$2 = Math.PI / 180;\r\n function sunburstLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width);\r\n var cy = parsePercent$2(center[1], height);\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$2;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$2;\r\n var virtualRoot = seriesModel.getData().tree.root;\r\n var treeRoot = seriesModel.getViewRoot();\r\n var rootDepth = treeRoot.depth;\r\n var sort = seriesModel.get('sort');\r\n if (sort != null) {\r\n initChildren$1(treeRoot, sort);\r\n }\r\n var validDataCount = 0;\r\n each(treeRoot.children, function (child) {\r\n !isNaN(child.getValue()) && validDataCount++;\r\n });\r\n var sum = treeRoot.getValue();\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var renderRollupNode = treeRoot.depth > 0;\r\n var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\r\n var rPerLevel = (r - r0) / (levels || 1);\r\n var clockwise = seriesModel.get('clockwise');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var dir = clockwise ? 1 : -1;\r\n var renderNode = function (node, startAngle) {\r\n if (!node) {\r\n return;\r\n }\r\n var endAngle = startAngle;\r\n if (node !== virtualRoot) {\r\n var value = node.getValue();\r\n var angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n }\r\n endAngle = startAngle + dir * angle;\r\n var depth = node.depth - rootDepth\r\n - (renderRollupNode ? -1 : 1);\r\n var rStart = r0 + rPerLevel * depth;\r\n var rEnd = r0 + rPerLevel * (depth + 1);\r\n var itemModel = node.getModel();\r\n if (itemModel.get('r0') != null) {\r\n rStart = parsePercent$2(itemModel.get('r0'), size / 2);\r\n }\r\n if (itemModel.get('r') != null) {\r\n rEnd = parsePercent$2(itemModel.get('r'), size / 2);\r\n }\r\n node.setLayout({\r\n angle: angle,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: rStart,\r\n r: rEnd\r\n });\r\n }\r\n if (node.children && node.children.length) {\r\n var siblingAngle_1 = 0;\r\n each(node.children, function (node) {\r\n siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\r\n });\r\n }\r\n return endAngle - startAngle;\r\n };\r\n if (renderRollupNode) {\r\n var rStart = r0;\r\n var rEnd = r0 + rPerLevel;\r\n var angle = Math.PI * 2;\r\n virtualRoot.setLayout({\r\n angle: angle,\r\n startAngle: startAngle,\r\n endAngle: startAngle + angle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: rStart,\r\n r: rEnd\r\n });\r\n }\r\n renderNode(treeRoot, startAngle);\r\n });\r\n }\r\n function initChildren$1(node, sortOrder) {\r\n var children = node.children || [];\r\n node.children = sort$2(children, sortOrder);\r\n if (children.length) {\r\n each(node.children, function (child) {\r\n initChildren$1(child, sortOrder);\r\n });\r\n }\r\n }\r\n function sort$2(children, sortOrder) {\r\n if (typeof sortOrder === 'function') {\r\n return children.sort(sortOrder);\r\n }\r\n else {\r\n var isAsc_1 = sortOrder === 'asc';\r\n return children.sort(function (a, b) {\r\n var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\r\n return diff === 0\r\n ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1)\r\n : diff;\r\n });\r\n }\r\n }\n\n function sunburstVisual (ecModel) {\r\n var paletteScope = {};\r\n function pickColor(node, seriesModel, treeHeight) {\r\n var current = node;\r\n while (current && current.depth > 1) {\r\n current = current.parentNode;\r\n }\r\n var color = seriesModel.getColorFromPalette((current.name || current.dataIndex + ''), paletteScope);\r\n if (node.depth > 1 && typeof color === 'string') {\r\n color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\r\n }\r\n return color;\r\n }\r\n ecModel.eachSeriesByType('sunburst', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var tree = data.tree;\r\n tree.eachNode(function (node) {\r\n var model = node.getModel();\r\n var style = model.getModel('itemStyle').getItemStyle();\r\n if (!style.fill) {\r\n style.fill = pickColor(node, seriesModel, tree.root.height);\r\n }\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n extend(existsStyle, style);\r\n });\r\n });\r\n }\n\n registerLayout(curry(sunburstLayout, 'sunburst'));\r\n registerProcessor(curry(dataFilter, 'sunburst'));\r\n registerVisual(sunburstVisual);\n\n function dataToCoordSize(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map(['x', 'y'], function (dim, dimIdx) {\r\n var axis = this.getAxis(dim);\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n return axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n }, this);\r\n }\r\n function prepareCartesian2d (coordSys) {\r\n var rect = coordSys.master.getRect();\r\n return {\r\n coordSys: {\r\n type: 'cartesian2d',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n api: {\r\n coord: function (data) {\r\n return coordSys.dataToPoint(data);\r\n },\r\n size: bind(dataToCoordSize, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$1(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map([0, 1], function (dimIdx) {\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n var p1 = [];\r\n var p2 = [];\r\n p1[dimIdx] = val - halfSize;\r\n p2[dimIdx] = val + halfSize;\r\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\r\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\r\n }, this);\r\n }\r\n function prepareGeo (coordSys) {\r\n var rect = coordSys.getBoundingRect();\r\n return {\r\n coordSys: {\r\n type: 'geo',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height,\r\n zoom: coordSys.getZoom()\r\n },\r\n api: {\r\n coord: function (data) {\r\n return coordSys.dataToPoint(data);\r\n },\r\n size: bind(dataToCoordSize$1, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$2(dataSize, dataItem) {\r\n var axis = this.getAxis();\r\n var val = dataItem instanceof Array ? dataItem[0] : dataItem;\r\n var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\r\n return axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n }\r\n function prepareSingleAxis (coordSys) {\r\n var rect = coordSys.getRect();\r\n return {\r\n coordSys: {\r\n type: 'singleAxis',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n api: {\r\n coord: function (val) {\r\n return coordSys.dataToPoint(val);\r\n },\r\n size: bind(dataToCoordSize$2, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$3(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map(['Radius', 'Angle'], function (dim, dimIdx) {\r\n var getterName = 'get' + dim + 'Axis';\r\n var axis = this[getterName]();\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n var result = axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n if (dim === 'Angle') {\r\n result = result * Math.PI / 180;\r\n }\r\n return result;\r\n }, this);\r\n }\r\n function preparePolar (coordSys) {\r\n var radiusAxis = coordSys.getRadiusAxis();\r\n var angleAxis = coordSys.getAngleAxis();\r\n var radius = radiusAxis.getExtent();\r\n radius[0] > radius[1] && radius.reverse();\r\n return {\r\n coordSys: {\r\n type: 'polar',\r\n cx: coordSys.cx,\r\n cy: coordSys.cy,\r\n r: radius[1],\r\n r0: radius[0]\r\n },\r\n api: {\r\n coord: function (data) {\r\n var radius = radiusAxis.dataToRadius(data[0]);\r\n var angle = angleAxis.dataToAngle(data[1]);\r\n var coord = coordSys.coordToPoint([radius, angle]);\r\n coord.push(radius, angle * Math.PI / 180);\r\n return coord;\r\n },\r\n size: bind(dataToCoordSize$3, coordSys)\r\n }\r\n };\r\n }\n\n function prepareCalendar (coordSys) {\r\n var rect = coordSys.getRect();\r\n var rangeInfo = coordSys.getRangeInfo();\r\n return {\r\n coordSys: {\r\n type: 'calendar',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height,\r\n cellWidth: coordSys.getCellWidth(),\r\n cellHeight: coordSys.getCellHeight(),\r\n rangeInfo: {\r\n start: rangeInfo.start,\r\n end: rangeInfo.end,\r\n weeks: rangeInfo.weeks,\r\n dayCount: rangeInfo.allDay\r\n }\r\n },\r\n api: {\r\n coord: function (data, clamp) {\r\n return coordSys.dataToPoint(data, clamp);\r\n }\r\n }\r\n };\r\n }\n\n var deprecatedLogs = {};\r\n function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\r\n return style && (style.legacy\r\n || (style.legacy !== false\r\n && !hasOwnTextContentOption\r\n && !hasOwnTextConfig\r\n && elType !== 'tspan'\r\n && (elType === 'text' || hasOwn(style, 'text'))));\r\n }\r\n function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\r\n var srcStyle = hostStyle;\r\n var textConfig;\r\n var textContent;\r\n var textContentStyle;\r\n if (elType === 'text') {\r\n textContentStyle = srcStyle;\r\n }\r\n else {\r\n textContentStyle = {};\r\n hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\r\n hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\r\n hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\r\n hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\r\n textContent = {\r\n type: 'text',\r\n style: textContentStyle,\r\n silent: true\r\n };\r\n textConfig = {};\r\n var hasOwnPos = hasOwn(srcStyle, 'textPosition');\r\n if (isNormal) {\r\n textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\r\n }\r\n else {\r\n hasOwnPos && (textConfig.position = srcStyle.textPosition);\r\n }\r\n hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\r\n hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\r\n hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\r\n hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\r\n }\r\n convertEC4CompatibleRichItem(textContentStyle, hostStyle);\r\n each(textContentStyle.rich, function (richItem) {\r\n convertEC4CompatibleRichItem(richItem, richItem);\r\n });\r\n return {\r\n textConfig: textConfig,\r\n textContent: textContent\r\n };\r\n }\r\n function convertEC4CompatibleRichItem(out, richItem) {\r\n if (!richItem) {\r\n return;\r\n }\r\n richItem.font = richItem.textFont || richItem.font;\r\n hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\r\n hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\r\n hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\r\n hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\r\n hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\r\n hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\r\n hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\r\n hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\r\n hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\r\n hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\r\n hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\r\n hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\r\n hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\r\n hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\r\n hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\r\n }\r\n function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\r\n var out = itemStl;\r\n out.textPosition = out.textPosition || txCfg.position || 'inside';\r\n txCfg.offset != null && (out.textOffset = txCfg.offset);\r\n txCfg.rotation != null && (out.textRotation = txCfg.rotation);\r\n txCfg.distance != null && (out.textDistance = txCfg.distance);\r\n var isInside = out.textPosition.indexOf('inside') >= 0;\r\n var hostFill = itemStl.fill || '#000';\r\n convertToEC4RichItem(out, txStl);\r\n var textFillNotSet = out.textFill == null;\r\n if (isInside) {\r\n if (textFillNotSet) {\r\n out.textFill = txCfg.insideFill || '#fff';\r\n !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\r\n !out.textStroke && (out.textStroke = hostFill);\r\n out.textStrokeWidth == null && (out.textStrokeWidth = 2);\r\n }\r\n }\r\n else {\r\n if (textFillNotSet) {\r\n out.textFill = txCfg.outsideFill || hostFill;\r\n }\r\n !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\r\n }\r\n out.text = txStl.text;\r\n out.rich = txStl.rich;\r\n each(txStl.rich, function (richItem) {\r\n convertToEC4RichItem(richItem, richItem);\r\n });\r\n return out;\r\n }\r\n function convertToEC4RichItem(out, richItem) {\r\n if (!richItem) {\r\n return;\r\n }\r\n hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\r\n hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\r\n hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\r\n hasOwn(richItem, 'font') && (out.font = richItem.font);\r\n hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\r\n hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\r\n hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\r\n hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\r\n hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\r\n hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\r\n hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\r\n hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\r\n hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\r\n hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\r\n hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\r\n hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\r\n hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\r\n hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\r\n hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\r\n hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\r\n hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\r\n hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\r\n hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\r\n hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\r\n hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\r\n hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\r\n }\r\n function warnDeprecated(deprecated, insteadApproach) {\r\n if (__DEV__) {\r\n var key = deprecated + '^_^' + insteadApproach;\r\n if (!deprecatedLogs[key]) {\r\n console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\r\n deprecatedLogs[key] = true;\r\n }\r\n }\r\n }\n\n var inner$f = makeInner();\r\n var TRANSFORM_PROPS = {\r\n x: 1,\r\n y: 1,\r\n scaleX: 1,\r\n scaleY: 1,\r\n originX: 1,\r\n originY: 1,\r\n rotation: 1\r\n };\r\n var transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\r\n var STYLE_VISUAL_TYPE = {\r\n color: 'fill',\r\n borderColor: 'stroke'\r\n };\r\n var VISUAL_PROPS = {\r\n symbol: 1,\r\n symbolSize: 1,\r\n symbolKeepAspect: 1,\r\n legendSymbol: 1,\r\n visualMeta: 1,\r\n liftZ: 1\r\n };\r\n var EMPHASIS = 'emphasis';\r\n var NORMAL = 'normal';\r\n var BLUR = 'blur';\r\n var SELECT = 'select';\r\n var STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\r\n var PATH_ITEM_STYLE = {\r\n normal: ['itemStyle'],\r\n emphasis: [EMPHASIS, 'itemStyle'],\r\n blur: [BLUR, 'itemStyle'],\r\n select: [SELECT, 'itemStyle']\r\n };\r\n var PATH_LABEL = {\r\n normal: ['label'],\r\n emphasis: [EMPHASIS, 'label'],\r\n blur: [BLUR, 'label'],\r\n select: [SELECT, 'label']\r\n };\r\n var GROUP_DIFF_PREFIX = 'e\\0\\0';\r\n var attachedTxInfoTmp = {\r\n normal: {},\r\n emphasis: {},\r\n blur: {},\r\n select: {}\r\n };\r\n var LEGACY_TRANSFORM_PROPS = {\r\n position: ['x', 'y'],\r\n scale: ['scaleX', 'scaleY'],\r\n origin: ['originX', 'originY']\r\n };\r\n var prepareCustoms = {\r\n cartesian2d: prepareCartesian2d,\r\n geo: prepareGeo,\r\n singleAxis: prepareSingleAxis,\r\n polar: preparePolar,\r\n calendar: prepareCalendar\r\n };\r\n var CustomSeriesModel = (function (_super) {\r\n __extends(CustomSeriesModel, _super);\r\n function CustomSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CustomSeriesModel.type;\r\n return _this;\r\n }\r\n CustomSeriesModel.prototype.optionUpdated = function () {\r\n this.currentZLevel = this.get('zlevel', true);\r\n this.currentZ = this.get('z', true);\r\n };\r\n CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this);\r\n };\r\n CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\r\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\r\n el && (params.info = inner$f(el).info);\r\n return params;\r\n };\r\n CustomSeriesModel.type = 'series.custom';\r\n CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n CustomSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n clip: false\r\n };\r\n return CustomSeriesModel;\r\n }(SeriesModel));\r\n ComponentModel.registerClass(CustomSeriesModel);\r\n var CustomSeriesView = (function (_super) {\r\n __extends(CustomSeriesView, _super);\r\n function CustomSeriesView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CustomSeriesView.type;\r\n return _this;\r\n }\r\n CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\r\n var oldData = this._data;\r\n var data = customSeries.getData();\r\n var group = this.group;\r\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n createOrUpdateItem(null, newIdx, renderItem(newIdx, payload), customSeries, group, data);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n createOrUpdateItem(oldData.getItemGraphicEl(oldIdx), newIdx, renderItem(newIdx, payload), customSeries, group, data);\r\n })\r\n .remove(function (oldIdx) {\r\n doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\r\n })\r\n .execute();\r\n var clipPath = customSeries.get('clip', true)\r\n ? createClipPath(customSeries.coordinateSystem, false, customSeries)\r\n : null;\r\n if (clipPath) {\r\n group.setClipPath(clipPath);\r\n }\r\n else {\r\n group.removeClipPath();\r\n }\r\n this._data = data;\r\n };\r\n CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\r\n var data = customSeries.getData();\r\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\r\n function setIncrementalAndHoverLayer(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = params.start; idx < params.end; idx++) {\r\n var el = createOrUpdateItem(null, idx, renderItem(idx, payload), customSeries, this.group, data);\r\n el.traverse(setIncrementalAndHoverLayer);\r\n }\r\n };\r\n CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\r\n var elementName = query.element;\r\n if (elementName == null || targetEl.name === elementName) {\r\n return true;\r\n }\r\n while ((targetEl = targetEl.parent) && targetEl !== this.group) {\r\n if (targetEl.name === elementName) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n CustomSeriesView.type = 'custom';\r\n return CustomSeriesView;\r\n }(ChartView));\r\n ChartView.registerClass(CustomSeriesView);\r\n function createEl(elOption) {\r\n var graphicType = elOption.type;\r\n var el;\r\n if (graphicType === 'path') {\r\n var shape = elOption.shape;\r\n var pathRect = (shape.width != null && shape.height != null)\r\n ? {\r\n x: shape.x || 0,\r\n y: shape.y || 0,\r\n width: shape.width,\r\n height: shape.height\r\n }\r\n : null;\r\n var pathData = getPathData(shape);\r\n el = makePath(pathData, null, pathRect, shape.layout || 'center');\r\n inner$f(el).customPathData = pathData;\r\n }\r\n else if (graphicType === 'image') {\r\n el = new ZRImage({});\r\n inner$f(el).customImagePath = elOption.style.image;\r\n }\r\n else if (graphicType === 'text') {\r\n el = new ZRText({});\r\n }\r\n else if (graphicType === 'group') {\r\n el = new Group();\r\n }\r\n else if (graphicType === 'compoundPath') {\r\n throw new Error('\"compoundPath\" is not supported yet.');\r\n }\r\n else {\r\n var Clz = getShapeClass(graphicType);\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type \"' + graphicType + '\" can not be found.');\r\n }\r\n el = new Clz();\r\n }\r\n inner$f(el).customGraphicType = graphicType;\r\n el.name = elOption.name;\r\n el.z2EmphasisLift = 1;\r\n el.z2SelectLift = 1;\r\n return el;\r\n }\r\n function updateElNormal(el, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\r\n var transFromProps = {};\r\n var allProps = {};\r\n var elDisplayable = el.isGroup ? null : el;\r\n prepareShapeOrExtraUpdate('shape', el, elOption, allProps, transFromProps, isInit);\r\n prepareShapeOrExtraUpdate('extra', el, elOption, allProps, transFromProps, isInit);\r\n prepareTransformUpdate(el, elOption, allProps, transFromProps, isInit);\r\n var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\r\n if (txCfgOpt) {\r\n el.setTextConfig(txCfgOpt);\r\n }\r\n if (el.type === 'text' && styleOpt) {\r\n var textOptionStyle = styleOpt;\r\n hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\r\n hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\r\n }\r\n prepareStyleUpdate(el, styleOpt, transFromProps, isInit);\r\n if (elDisplayable) {\r\n styleOpt && elDisplayable.useStyle(styleOpt);\r\n var animators = elDisplayable.animators;\r\n for (var i = 0; i < animators.length; i++) {\r\n var animator = animators[i];\r\n if (animator.targetName === 'style') {\r\n animator.changeTarget(elDisplayable.style);\r\n }\r\n }\r\n hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\r\n }\r\n var userDuring = elOption.during;\r\n inner$f(el).userDuring = userDuring;\r\n var cfgDuringCall = userDuring ? bind(duringCall, { el: el, userDuring: userDuring }) : null;\r\n el.attr(allProps);\r\n var cfg = {\r\n dataIndex: dataIndex,\r\n isFrom: true,\r\n during: cfgDuringCall\r\n };\r\n isInit\r\n ? initProps(el, transFromProps, seriesModel, cfg)\r\n : updateProps(el, transFromProps, seriesModel, cfg);\r\n hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\r\n hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\r\n if (!isTextContent) {\r\n hasOwn(elOption, 'info') && (inner$f(el).info = elOption.info);\r\n }\r\n styleOpt ? el.dirty() : el.markRedraw();\r\n }\r\n function prepareShapeOrExtraUpdate(mainAttr, el, elOption, allProps, transFromProps, isInit) {\r\n var attrOpt = elOption[mainAttr];\r\n if (!attrOpt) {\r\n return;\r\n }\r\n var elPropsInAttr = el[mainAttr];\r\n var transFromPropsInAttr;\r\n var enterFrom = attrOpt.enterFrom;\r\n if (isInit && enterFrom) {\r\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\r\n var enterFromKeys = keys(enterFrom);\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n transFromPropsInAttr[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit && elPropsInAttr && attrOpt.transition) {\r\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\r\n var transitionKeys = normalizeToArray(attrOpt.transition);\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = elPropsInAttr[key];\r\n if (__DEV__) {\r\n checkTansitionRefer(key, attrOpt[key], elVal);\r\n }\r\n transFromPropsInAttr[key] = elVal;\r\n }\r\n }\r\n var allPropsInAttr = allProps[mainAttr] = {};\r\n var keysInAttr = keys(attrOpt);\r\n for (var i = 0; i < keysInAttr.length; i++) {\r\n var key = keysInAttr[i];\r\n allPropsInAttr[key] = cloneValue(attrOpt[key]);\r\n }\r\n var leaveTo = attrOpt.leaveTo;\r\n if (leaveTo) {\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\r\n var leaveToKeys = keys(leaveTo);\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n leaveToPropsInAttr[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function prepareTransformUpdate(el, elOption, allProps, transFromProps, isInit) {\r\n var enterFrom = elOption.enterFrom;\r\n if (isInit && enterFrom) {\r\n var enterFromKeys = keys(enterFrom);\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.enterFrom');\r\n }\r\n transFromProps[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit) {\r\n if (elOption.transition) {\r\n var transitionKeys = normalizeToArray(elOption.transition);\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = el[key];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.transition');\r\n checkTansitionRefer(key, elOption[key], elVal);\r\n }\r\n transFromProps[key] = elVal;\r\n }\r\n }\r\n else {\r\n setLagecyProp(elOption, transFromProps, 'position', el);\r\n setTransProp(elOption, transFromProps, 'x', el);\r\n setTransProp(elOption, transFromProps, 'y', el);\r\n }\r\n }\r\n setLagecyProp(elOption, allProps, 'position');\r\n setLagecyProp(elOption, allProps, 'scale');\r\n setLagecyProp(elOption, allProps, 'origin');\r\n setTransProp(elOption, allProps, 'x');\r\n setTransProp(elOption, allProps, 'y');\r\n setTransProp(elOption, allProps, 'scaleX');\r\n setTransProp(elOption, allProps, 'scaleY');\r\n setTransProp(elOption, allProps, 'originX');\r\n setTransProp(elOption, allProps, 'originY');\r\n setTransProp(elOption, allProps, 'rotation');\r\n var leaveTo = elOption.leaveTo;\r\n if (leaveTo) {\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToKeys = keys(leaveTo);\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.leaveTo');\r\n }\r\n leaveToProps[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function prepareStyleUpdate(el, styleOpt, transFromProps, isInit) {\r\n if (!styleOpt) {\r\n return;\r\n }\r\n var elStyle = el.style;\r\n var transFromStyleProps;\r\n var enterFrom = styleOpt.enterFrom;\r\n if (isInit && enterFrom) {\r\n var enterFromKeys = keys(enterFrom);\r\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n transFromStyleProps[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit && elStyle && styleOpt.transition) {\r\n var transitionKeys = normalizeToArray(styleOpt.transition);\r\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = elStyle[key];\r\n if (__DEV__) {\r\n checkTansitionRefer(key, styleOpt[key], elVal);\r\n }\r\n transFromStyleProps[key] = elVal;\r\n }\r\n }\r\n var leaveTo = styleOpt.leaveTo;\r\n if (leaveTo) {\r\n var leaveToKeys = keys(leaveTo);\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n leaveToStyleProps[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function checkTansitionRefer(propName, optVal, elVal) {\r\n var isArrLike = isArrayLike(optVal);\r\n assert(isArrLike || (optVal != null && isFinite(optVal)), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\r\n assert(!isArrLike || optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\r\n }\r\n function checkTransformPropRefer(key, usedIn) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. '\r\n + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\r\n }\r\n function getOrCreateLeaveToPropsFromEl(el) {\r\n var innerEl = inner$f(el);\r\n return innerEl.leaveToProps || (innerEl.leaveToProps = {});\r\n }\r\n var tmpDuringScope = {};\r\n var customDuringAPI = {\r\n setTransform: function (key, val) {\r\n if (__DEV__) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\r\n }\r\n tmpDuringScope.el[key] = val;\r\n return this;\r\n },\r\n getTransform: function (key) {\r\n if (__DEV__) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\r\n }\r\n return tmpDuringScope.el[key];\r\n },\r\n setShape: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var shape = tmpDuringScope.el.shape\r\n || (tmpDuringScope.el.shape = {});\r\n shape[key] = val;\r\n tmpDuringScope.isShapeDirty = true;\r\n return this;\r\n },\r\n getShape: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var shape = tmpDuringScope.el.shape;\r\n if (shape) {\r\n return shape[key];\r\n }\r\n },\r\n setStyle: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var style = tmpDuringScope.el.style;\r\n if (style) {\r\n style[key] = val;\r\n tmpDuringScope.isStyleDirty = true;\r\n }\r\n return this;\r\n },\r\n getStyle: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var style = tmpDuringScope.el.style;\r\n if (style) {\r\n return style[key];\r\n }\r\n },\r\n setExtra: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var extra = tmpDuringScope.el.extra\r\n || (tmpDuringScope.el.extra = {});\r\n extra[key] = val;\r\n return this;\r\n },\r\n getExtra: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var extra = tmpDuringScope.el.extra;\r\n if (extra) {\r\n return extra[key];\r\n }\r\n }\r\n };\r\n function assertNotReserved(key) {\r\n if (__DEV__) {\r\n if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\r\n throw new Error('key must not be \"' + key + '\"');\r\n }\r\n }\r\n }\r\n function duringCall() {\r\n var scope = this;\r\n var el = scope.el;\r\n if (!el) {\r\n return;\r\n }\r\n var newstUserDuring = inner$f(el).userDuring;\r\n var scopeUserDuring = scope.userDuring;\r\n if (newstUserDuring !== scopeUserDuring) {\r\n scope.el = scope.userDuring = null;\r\n return;\r\n }\r\n tmpDuringScope.el = el;\r\n tmpDuringScope.isShapeDirty = false;\r\n tmpDuringScope.isStyleDirty = false;\r\n scopeUserDuring(customDuringAPI);\r\n if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\r\n el.dirtyShape();\r\n }\r\n if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\r\n el.dirtyStyle();\r\n }\r\n }\r\n function updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\r\n var elDisplayable = el.isGroup ? null : el;\r\n var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\r\n if (elDisplayable) {\r\n var stateObj = elDisplayable.ensureState(state);\r\n if (styleOpt === false) {\r\n var existingEmphasisState = elDisplayable.getState(state);\r\n if (existingEmphasisState) {\r\n existingEmphasisState.style = null;\r\n }\r\n }\r\n else {\r\n stateObj.style = styleOpt || null;\r\n }\r\n if (txCfgOpt) {\r\n stateObj.textConfig = txCfgOpt;\r\n }\r\n setDefaultStateProxy(elDisplayable);\r\n }\r\n }\r\n function updateZ$1(el, elOption, seriesModel, attachedTxInfo) {\r\n if (el.isGroup) {\r\n return;\r\n }\r\n var elDisplayable = el;\r\n var currentZ = seriesModel.currentZ;\r\n var currentZLevel = seriesModel.currentZLevel;\r\n elDisplayable.z = currentZ;\r\n elDisplayable.zlevel = currentZLevel;\r\n var optZ2 = elOption.z2;\r\n optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\r\n for (var i = 0; i < STATES.length; i++) {\r\n updateZForEachState(elDisplayable, elOption, STATES[i]);\r\n }\r\n }\r\n function updateZForEachState(elDisplayable, elOption, state) {\r\n var isNormal = state === NORMAL;\r\n var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\r\n var optZ2 = elStateOpt ? elStateOpt.z2 : null;\r\n var stateObj;\r\n if (optZ2 != null) {\r\n stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\r\n stateObj.z2 = optZ2 || 0;\r\n }\r\n }\r\n function setLagecyProp(elOption, targetProps, legacyName, fromEl) {\r\n var legacyArr = elOption[legacyName];\r\n var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\r\n if (legacyArr) {\r\n if (fromEl) {\r\n targetProps[xyName[0]] = fromEl[xyName[0]];\r\n targetProps[xyName[1]] = fromEl[xyName[1]];\r\n }\r\n else {\r\n targetProps[xyName[0]] = legacyArr[0];\r\n targetProps[xyName[1]] = legacyArr[1];\r\n }\r\n }\r\n }\r\n function setTransProp(elOption, targetProps, name, fromEl) {\r\n if (elOption[name] != null) {\r\n targetProps[name] = fromEl ? fromEl[name] : elOption[name];\r\n }\r\n }\r\n function makeRenderItem(customSeries, data, ecModel, api) {\r\n var renderItem = customSeries.get('renderItem');\r\n var coordSys = customSeries.coordinateSystem;\r\n var prepareResult = {};\r\n if (coordSys) {\r\n if (__DEV__) {\r\n assert(renderItem, 'series.render is required.');\r\n assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\r\n }\r\n prepareResult = coordSys.prepareCustoms\r\n ? coordSys.prepareCustoms(coordSys)\r\n : prepareCustoms[coordSys.type](coordSys);\r\n }\r\n var userAPI = defaults({\r\n getWidth: api.getWidth,\r\n getHeight: api.getHeight,\r\n getZr: api.getZr,\r\n getDevicePixelRatio: api.getDevicePixelRatio,\r\n value: value,\r\n style: style,\r\n styleEmphasis: styleEmphasis,\r\n visual: visual,\r\n barLayout: barLayout,\r\n currentSeriesIndices: currentSeriesIndices,\r\n font: font\r\n }, prepareResult.api || {});\r\n var userParams = {\r\n context: {},\r\n seriesId: customSeries.id,\r\n seriesName: customSeries.name,\r\n seriesIndex: customSeries.seriesIndex,\r\n coordSys: prepareResult.coordSys,\r\n dataInsideLength: data.count(),\r\n encode: wrapEncodeDef(customSeries.getData())\r\n };\r\n var currDataIndexInside;\r\n var currItemModel;\r\n var currItemStyleModels = {};\r\n var currLabelModels = {};\r\n var seriesItemStyleModels = {};\r\n var seriesLabelModels = {};\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n seriesItemStyleModels[stateName] = customSeries\r\n .getModel(PATH_ITEM_STYLE[stateName]);\r\n seriesLabelModels[stateName] = customSeries\r\n .getModel(PATH_LABEL[stateName]);\r\n }\r\n function getItemModel(dataIndexInside) {\r\n return dataIndexInside === currDataIndexInside\r\n ? (currItemModel || (currItemModel = data.getItemModel(dataIndexInside)))\r\n : data.getItemModel(dataIndexInside);\r\n }\r\n function getItemStyleModel(dataIndexInside, state) {\r\n return !data.hasItemOption\r\n ? seriesItemStyleModels[state]\r\n : dataIndexInside === currDataIndexInside\r\n ? (currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])))\r\n : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\r\n }\r\n function getLabelModel(dataIndexInside, state) {\r\n return !data.hasItemOption\r\n ? seriesLabelModels[state]\r\n : dataIndexInside === currDataIndexInside\r\n ? (currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])))\r\n : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\r\n }\r\n return function (dataIndexInside, payload) {\r\n currDataIndexInside = dataIndexInside;\r\n currItemModel = null;\r\n currItemStyleModels = {};\r\n currLabelModels = {};\r\n return renderItem && renderItem(defaults({\r\n dataIndexInside: dataIndexInside,\r\n dataIndex: data.getRawIndex(dataIndexInside),\r\n actionType: payload ? payload.type : null\r\n }, userParams), userAPI);\r\n };\r\n function value(dim, dataIndexInside) {\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n return data.get(data.getDimension(dim || 0), dataIndexInside);\r\n }\r\n function style(userProps, dataIndexInside) {\r\n if (__DEV__) {\r\n warnDeprecated('api.style', 'Please write literal style directly instead.');\r\n }\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n var style = data.getItemVisual(dataIndexInside, 'style');\r\n var visualColor = style && style.fill;\r\n var opacity = style && style.opacity;\r\n var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\r\n visualColor != null && (itemStyle.fill = visualColor);\r\n opacity != null && (itemStyle.opacity = opacity);\r\n var opt = { inheritColor: isString(visualColor) ? visualColor : '#000' };\r\n var labelModel = getLabelModel(dataIndexInside, NORMAL);\r\n var textStyle = createTextStyle(labelModel, null, opt, false, true);\r\n textStyle.text = labelModel.getShallow('show')\r\n ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside))\r\n : null;\r\n var textConfig = createTextConfig(labelModel, opt, false);\r\n preFetchFromExtra(userProps, itemStyle);\r\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\r\n userProps && applyUserPropsAfter(itemStyle, userProps);\r\n itemStyle.legacy = true;\r\n return itemStyle;\r\n }\r\n function styleEmphasis(userProps, dataIndexInside) {\r\n if (__DEV__) {\r\n warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\r\n }\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\r\n var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\r\n var textStyle = createTextStyle(labelModel, null, null, true, true);\r\n textStyle.text = labelModel.getShallow('show')\r\n ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside))\r\n : null;\r\n var textConfig = createTextConfig(labelModel, null, true);\r\n preFetchFromExtra(userProps, itemStyle);\r\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\r\n userProps && applyUserPropsAfter(itemStyle, userProps);\r\n itemStyle.legacy = true;\r\n return itemStyle;\r\n }\r\n function applyUserPropsAfter(itemStyle, extra) {\r\n for (var key in extra) {\r\n if (hasOwn(extra, key)) {\r\n itemStyle[key] = extra[key];\r\n }\r\n }\r\n }\r\n function preFetchFromExtra(extra, itemStyle) {\r\n if (extra) {\r\n extra.textFill && (itemStyle.textFill = extra.textFill);\r\n extra.textPosition && (itemStyle.textPosition = extra.textPosition);\r\n }\r\n }\r\n function visual(visualType, dataIndexInside) {\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\r\n var style_1 = data.getItemVisual(dataIndexInside, 'style');\r\n return style_1\r\n ? style_1[STYLE_VISUAL_TYPE[visualType]]\r\n : null;\r\n }\r\n if (hasOwn(VISUAL_PROPS, visualType)) {\r\n return data.getItemVisual(dataIndexInside, visualType);\r\n }\r\n }\r\n function barLayout(opt) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var baseAxis = coordSys.getBaseAxis();\r\n return getLayoutOnAxis(defaults({ axis: baseAxis }, opt));\r\n }\r\n }\r\n function currentSeriesIndices() {\r\n return ecModel.getCurrentSeriesIndices();\r\n }\r\n function font(opt) {\r\n return getFont(opt, ecModel);\r\n }\r\n }\r\n function wrapEncodeDef(data) {\r\n var encodeDef = {};\r\n each(data.dimensions, function (dimName, dataDimIndex) {\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n if (!dimInfo.isExtraCoord) {\r\n var coordDim = dimInfo.coordDim;\r\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\r\n dataDims[dimInfo.coordDimIndex] = dataDimIndex;\r\n }\r\n });\r\n return encodeDef;\r\n }\r\n function createOrUpdateItem(el, dataIndex, elOption, seriesModel, group, data) {\r\n if (!elOption) {\r\n el && group.remove(el);\r\n return;\r\n }\r\n el = doCreateOrUpdateEl(el, dataIndex, elOption, seriesModel, group);\r\n el && data.setItemGraphicEl(dataIndex, el);\r\n enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\r\n return el;\r\n }\r\n function doCreateOrUpdateEl(el, dataIndex, elOption, seriesModel, group, isRoot) {\r\n if (__DEV__) {\r\n assert(elOption, 'should not have an null/undefined element setting');\r\n }\r\n var toBeReplacedIdx = -1;\r\n if (el && doesElNeedRecreate(el, elOption)) {\r\n toBeReplacedIdx = group.childrenRef().indexOf(el);\r\n el = null;\r\n }\r\n var isInit = !el;\r\n if (!el) {\r\n el = createEl(elOption);\r\n }\r\n else {\r\n el.clearStates();\r\n }\r\n attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt =\r\n attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt =\r\n attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt =\r\n attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\r\n attachedTxInfoTmp.isLegacy = false;\r\n doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\r\n doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\r\n updateElNormal(el, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n if (stateName !== NORMAL) {\r\n var otherStateOpt = retrieveStateOption(elOption, stateName);\r\n var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\r\n updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp);\r\n }\r\n }\r\n updateZ$1(el, elOption, seriesModel);\r\n if (elOption.type === 'group') {\r\n mergeChildren(el, dataIndex, elOption, seriesModel);\r\n }\r\n if (toBeReplacedIdx >= 0) {\r\n group.replaceAt(el, toBeReplacedIdx);\r\n }\r\n else {\r\n group.add(el);\r\n }\r\n return el;\r\n }\r\n function doesElNeedRecreate(el, elOption) {\r\n var elInner = inner$f(el);\r\n var elOptionType = elOption.type;\r\n var elOptionShape = elOption.shape;\r\n var elOptionStyle = elOption.style;\r\n return ((elOptionType != null\r\n && elOptionType !== elInner.customGraphicType)\r\n || (elOptionType === 'path'\r\n && hasOwnPathData(elOptionShape)\r\n && getPathData(elOptionShape) !== elInner.customPathData)\r\n || (elOptionType === 'image'\r\n && hasOwn(elOptionStyle, 'image')\r\n && elOptionStyle.image !== elInner.customImagePath));\r\n }\r\n function doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\r\n var clipPathOpt = elOption.clipPath;\r\n if (clipPathOpt === false) {\r\n if (el && el.getClipPath()) {\r\n el.removeClipPath();\r\n }\r\n }\r\n else if (clipPathOpt) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\r\n clipPath = null;\r\n }\r\n if (!clipPath) {\r\n clipPath = createEl(clipPathOpt);\r\n if (__DEV__) {\r\n assert(clipPath instanceof Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\r\n }\r\n el.setClipPath(clipPath);\r\n }\r\n updateElNormal(clipPath, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\r\n }\r\n }\r\n function doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\r\n if (el.isGroup) {\r\n return;\r\n }\r\n processTxInfo(elOption, null, attachedTxInfo);\r\n processTxInfo(elOption, EMPHASIS, attachedTxInfo);\r\n var txConOptNormal = attachedTxInfo.normal.conOpt;\r\n var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\r\n var txConOptBlur = attachedTxInfo.blur.conOpt;\r\n var txConOptSelect = attachedTxInfo.select.conOpt;\r\n if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\r\n var textContent = el.getTextContent();\r\n if (txConOptNormal === false) {\r\n textContent && el.removeTextContent();\r\n }\r\n else {\r\n txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || { type: 'text' };\r\n if (!textContent) {\r\n textContent = createEl(txConOptNormal);\r\n el.setTextContent(textContent);\r\n }\r\n else {\r\n textContent.clearStates();\r\n }\r\n var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\r\n updateElNormal(textContent, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n if (stateName !== NORMAL) {\r\n var txConOptOtherState = attachedTxInfo[stateName].conOpt;\r\n updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null);\r\n }\r\n }\r\n txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\r\n }\r\n }\r\n }\r\n function processTxInfo(elOption, state, attachedTxInfo) {\r\n var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\r\n var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\r\n var elType = elOption.type;\r\n var txCfg = stateOpt ? stateOpt.textConfig : null;\r\n var txConOptNormal = elOption.textContent;\r\n var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\r\n if (styleOpt && (attachedTxInfo.isLegacy\r\n || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\r\n attachedTxInfo.isLegacy = true;\r\n var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\r\n if (!txCfg && convertResult.textConfig) {\r\n txCfg = convertResult.textConfig;\r\n }\r\n if (!txConOpt && convertResult.textContent) {\r\n txConOpt = convertResult.textContent;\r\n }\r\n }\r\n if (!state && txConOpt) {\r\n var txConOptNormal_1 = txConOpt;\r\n !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\r\n if (__DEV__) {\r\n txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\r\n }\r\n }\r\n var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\r\n info.cfg = txCfg;\r\n info.conOpt = txConOpt;\r\n }\r\n function retrieveStateOption(elOption, state) {\r\n return !state ? elOption : elOption ? elOption[state] : null;\r\n }\r\n function retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\r\n var style = stateOption && stateOption.style;\r\n if (style == null && state === EMPHASIS && stateOptionNormal) {\r\n style = stateOptionNormal.styleEmphasis;\r\n }\r\n return style;\r\n }\r\n function mergeChildren(el, dataIndex, elOption, seriesModel) {\r\n var newChildren = elOption.children;\r\n var newLen = newChildren ? newChildren.length : 0;\r\n var mergeChildren = elOption.$mergeChildren;\r\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\r\n var notMerge = mergeChildren === false;\r\n if (!newLen && !byName && !notMerge) {\r\n return;\r\n }\r\n if (byName) {\r\n diffGroupChildren({\r\n oldChildren: el.children() || [],\r\n newChildren: newChildren || [],\r\n dataIndex: dataIndex,\r\n seriesModel: seriesModel,\r\n group: el\r\n });\r\n return;\r\n }\r\n notMerge && el.removeAll();\r\n var index = 0;\r\n for (; index < newLen; index++) {\r\n newChildren[index] && doCreateOrUpdateEl(el.childAt(index), dataIndex, newChildren[index], seriesModel, el);\r\n }\r\n for (var i = el.childCount() - 1; i >= index; i--) {\r\n doRemoveEl(el.childAt(i), seriesModel, el);\r\n }\r\n }\r\n function diffGroupChildren(context) {\r\n (new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context))\r\n .add(processAddUpdate)\r\n .update(processAddUpdate)\r\n .remove(processRemove)\r\n .execute();\r\n }\r\n function getKey(item, idx) {\r\n var name = item && item.name;\r\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\r\n }\r\n function processAddUpdate(newIndex, oldIndex) {\r\n var context = this.context;\r\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\r\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\r\n doCreateOrUpdateEl(child, context.dataIndex, childOption, context.seriesModel, context.group);\r\n }\r\n function processRemove(oldIndex) {\r\n var context = this.context;\r\n var child = context.oldChildren[oldIndex];\r\n doRemoveEl(child, context.seriesModel, context.group);\r\n }\r\n function doRemoveEl(el, seriesModel, group) {\r\n if (el) {\r\n var leaveToProps = inner$f(el).leaveToProps;\r\n leaveToProps\r\n ? updateProps(el, leaveToProps, seriesModel, {\r\n cb: function () {\r\n group.remove(el);\r\n }\r\n })\r\n : group.remove(el);\r\n }\r\n }\r\n function getPathData(shape) {\r\n return shape && (shape.pathData || shape.d);\r\n }\r\n function hasOwnPathData(shape) {\r\n return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\r\n }\n\n function getSeriesStackId$1(seriesModel) {\r\n return seriesModel.get('stack')\r\n || '__ec_stack_' + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey$1(polar, axis) {\r\n return axis.dim + polar.model.componentIndex;\r\n }\r\n function barLayoutPolar(seriesType, ecModel, api) {\r\n var lastStackCoords = {};\r\n var barWidthAndOffset = calRadialBar(filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\r\n return !ecModel.isSeriesFiltered(seriesModel)\r\n && seriesModel.coordinateSystem\r\n && seriesModel.coordinateSystem.type === 'polar';\r\n }));\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (seriesModel.coordinateSystem.type !== 'polar') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var polar = seriesModel.coordinateSystem;\r\n var baseAxis = polar.getBaseAxis();\r\n var axisKey = getAxisKey$1(polar, baseAxis);\r\n var stackId = getSeriesStackId$1(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = polar.getOtherAxis(baseAxis);\r\n var cx = seriesModel.coordinateSystem.cx;\r\n var cy = seriesModel.coordinateSystem.cy;\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var clampLayout = baseAxis.dim !== 'radius'\r\n || !seriesModel.get('roundCap', true);\r\n var valueAxisStart = valueAxis.getExtent()[0];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var r0 = void 0;\r\n var r = void 0;\r\n var startAngle = void 0;\r\n var endAngle = void 0;\r\n if (valueAxis.dim === 'radius') {\r\n var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\r\n var angle = baseAxis.dataToCoord(baseValue);\r\n if (Math.abs(radiusSpan) < barMinHeight) {\r\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n r0 = baseCoord;\r\n r = baseCoord + radiusSpan;\r\n startAngle = angle - columnOffset;\r\n endAngle = startAngle - columnWidth;\r\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\r\n }\r\n else {\r\n var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\r\n var radius = baseAxis.dataToCoord(baseValue);\r\n if (Math.abs(angleSpan) < barMinAngle) {\r\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\r\n }\r\n r0 = radius + columnOffset;\r\n r = r0 + columnWidth;\r\n startAngle = baseCoord;\r\n endAngle = baseCoord + angleSpan;\r\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\r\n }\r\n data.setItemLayout(idx, {\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: r,\r\n startAngle: -startAngle * Math.PI / 180,\r\n endAngle: -endAngle * Math.PI / 180\r\n });\r\n }\r\n });\r\n }\r\n function calRadialBar(barSeries) {\r\n var columnsMap = {};\r\n each(barSeries, function (seriesModel, idx) {\r\n var data = seriesModel.getData();\r\n var polar = seriesModel.coordinateSystem;\r\n var baseAxis = polar.getBaseAxis();\r\n var axisKey = getAxisKey$1(polar, baseAxis);\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth = baseAxis.type === 'category'\r\n ? baseAxis.getBandWidth()\r\n : (Math.abs(axisExtent[1] - axisExtent[0]) / data.count());\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: '20%',\r\n gap: '30%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = getSeriesStackId$1(seriesModel);\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n if (barWidth && !stacks[stackId].width) {\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n stacks[stackId].width = barWidth;\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGap = parsePercent$2(columnsOnAxis.categoryGap, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column, stack) {\r\n var maxWidth = column.maxWidth;\r\n if (maxWidth && maxWidth < autoWidth) {\r\n maxWidth = Math.min(maxWidth, remainedWidth);\r\n if (column.width) {\r\n maxWidth = Math.min(maxWidth, column.width);\r\n }\r\n remainedWidth -= maxWidth;\r\n column.width = maxWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\n\n var PolarModel = (function (_super) {\r\n __extends(PolarModel, _super);\r\n function PolarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PolarModel.type;\r\n return _this;\r\n }\r\n PolarModel.prototype.findAxisModel = function (axisType) {\r\n var foundAxisModel;\r\n var ecModel = this.ecModel;\r\n ecModel.eachComponent(axisType, function (axisModel) {\r\n if (axisModel.getCoordSysModel() === this) {\r\n foundAxisModel = axisModel;\r\n }\r\n }, this);\r\n return foundAxisModel;\r\n };\r\n PolarModel.type = 'polar';\r\n PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\r\n PolarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n center: ['50%', '50%'],\r\n radius: '80%'\r\n };\r\n return PolarModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(PolarModel);\n\n var PolarAxisModel = (function (_super) {\r\n __extends(PolarAxisModel, _super);\r\n function PolarAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PolarAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n };\r\n PolarAxisModel.type = 'polarAxis';\r\n return PolarAxisModel;\r\n }(ComponentModel));\r\n mixin(PolarAxisModel, AxisModelCommonMixin);\r\n var AngleAxisModel = (function (_super) {\r\n __extends(AngleAxisModel, _super);\r\n function AngleAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AngleAxisModel.type;\r\n return _this;\r\n }\r\n AngleAxisModel.type = 'angleAxis';\r\n return AngleAxisModel;\r\n }(PolarAxisModel));\r\n var RadiusAxisModel = (function (_super) {\r\n __extends(RadiusAxisModel, _super);\r\n function RadiusAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadiusAxisModel.type;\r\n return _this;\r\n }\r\n RadiusAxisModel.type = 'radiusAxis';\r\n return RadiusAxisModel;\r\n }(PolarAxisModel));\r\n var angleAxisExtraOption = {\r\n startAngle: 90,\r\n clockwise: true,\r\n splitNumber: 12,\r\n axisLabel: {\r\n rotate: false\r\n }\r\n };\r\n var radiusAxisExtraOption = {\r\n splitNumber: 5\r\n };\r\n axisModelCreator('angle', AngleAxisModel, angleAxisExtraOption);\r\n axisModelCreator('radius', RadiusAxisModel, radiusAxisExtraOption);\n\n var RadiusAxis = (function (_super) {\r\n __extends(RadiusAxis, _super);\r\n function RadiusAxis(scale, radiusExtent) {\r\n return _super.call(this, 'radius', scale, radiusExtent) || this;\r\n }\r\n RadiusAxis.prototype.pointToData = function (point, clamp) {\r\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\r\n };\r\n return RadiusAxis;\r\n }(Axis));\r\n RadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\r\n RadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\n\n var inner$g = makeInner();\r\n var AngleAxis = (function (_super) {\r\n __extends(AngleAxis, _super);\r\n function AngleAxis(scale, angleExtent) {\r\n return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\r\n }\r\n AngleAxis.prototype.pointToData = function (point, clamp) {\r\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\r\n };\r\n AngleAxis.prototype.calculateCategoryInterval = function () {\r\n var axis = this;\r\n var labelModel = axis.getLabelModel();\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitH = Math.abs(unitSpan);\r\n var rect = getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\r\n var maxH = Math.max(rect.height, 7);\r\n var dh = maxH / unitH;\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(dh));\r\n var cache = inner$g(axis.model);\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n }\r\n return interval;\r\n };\r\n return AngleAxis;\r\n }(Axis));\r\n AngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\r\n AngleAxis.prototype.angleToData = Axis.prototype.coordToData;\n\n var Polar = (function () {\r\n function Polar(name) {\r\n this.dimensions = ['radius', 'angle'];\r\n this.type = 'polar';\r\n this.cx = 0;\r\n this.cy = 0;\r\n this._radiusAxis = new RadiusAxis();\r\n this._angleAxis = new AngleAxis();\r\n this.axisPointerEnabled = true;\r\n this.name = name || '';\r\n this._radiusAxis.polar = this._angleAxis.polar = this;\r\n }\r\n Polar.prototype.containPoint = function (point) {\r\n var coord = this.pointToCoord(point);\r\n return this._radiusAxis.contain(coord[0])\r\n && this._angleAxis.contain(coord[1]);\r\n };\r\n Polar.prototype.containData = function (data) {\r\n return this._radiusAxis.containData(data[0])\r\n && this._angleAxis.containData(data[1]);\r\n };\r\n Polar.prototype.getAxis = function (dim) {\r\n var key = ('_' + dim + 'Axis');\r\n return this[key];\r\n };\r\n Polar.prototype.getAxes = function () {\r\n return [this._radiusAxis, this._angleAxis];\r\n };\r\n Polar.prototype.getAxesByScale = function (scaleType) {\r\n var axes = [];\r\n var angleAxis = this._angleAxis;\r\n var radiusAxis = this._radiusAxis;\r\n angleAxis.scale.type === scaleType && axes.push(angleAxis);\r\n radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\r\n return axes;\r\n };\r\n Polar.prototype.getAngleAxis = function () {\r\n return this._angleAxis;\r\n };\r\n Polar.prototype.getRadiusAxis = function () {\r\n return this._radiusAxis;\r\n };\r\n Polar.prototype.getOtherAxis = function (axis) {\r\n var angleAxis = this._angleAxis;\r\n return axis === angleAxis ? this._radiusAxis : angleAxis;\r\n };\r\n Polar.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAngleAxis();\r\n };\r\n Polar.prototype.getTooltipAxes = function (dim) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? this.getAxis(dim) : this.getBaseAxis();\r\n return {\r\n baseAxes: [baseAxis],\r\n otherAxes: [this.getOtherAxis(baseAxis)]\r\n };\r\n };\r\n Polar.prototype.dataToPoint = function (data, clamp) {\r\n return this.coordToPoint([\r\n this._radiusAxis.dataToRadius(data[0], clamp),\r\n this._angleAxis.dataToAngle(data[1], clamp)\r\n ]);\r\n };\r\n Polar.prototype.pointToData = function (point, clamp) {\r\n var coord = this.pointToCoord(point);\r\n return [\r\n this._radiusAxis.radiusToData(coord[0], clamp),\r\n this._angleAxis.angleToData(coord[1], clamp)\r\n ];\r\n };\r\n Polar.prototype.pointToCoord = function (point) {\r\n var dx = point[0] - this.cx;\r\n var dy = point[1] - this.cy;\r\n var angleAxis = this.getAngleAxis();\r\n var extent = angleAxis.getExtent();\r\n var minAngle = Math.min(extent[0], extent[1]);\r\n var maxAngle = Math.max(extent[0], extent[1]);\r\n angleAxis.inverse\r\n ? (minAngle = maxAngle - 360)\r\n : (maxAngle = minAngle + 360);\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n dx /= radius;\r\n dy /= radius;\r\n var radian = Math.atan2(-dy, dx) / Math.PI * 180;\r\n var dir = radian < minAngle ? 1 : -1;\r\n while (radian < minAngle || radian > maxAngle) {\r\n radian += dir * 360;\r\n }\r\n return [radius, radian];\r\n };\r\n Polar.prototype.coordToPoint = function (coord) {\r\n var radius = coord[0];\r\n var radian = coord[1] / 180 * Math.PI;\r\n var x = Math.cos(radian) * radius + this.cx;\r\n var y = -Math.sin(radian) * radius + this.cy;\r\n return [x, y];\r\n };\r\n Polar.prototype.getArea = function () {\r\n var angleAxis = this.getAngleAxis();\r\n var radiusAxis = this.getRadiusAxis();\r\n var radiusExtent = radiusAxis.getExtent().slice();\r\n radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\r\n var angleExtent = angleAxis.getExtent();\r\n var RADIAN = Math.PI / 180;\r\n return {\r\n cx: this.cx,\r\n cy: this.cy,\r\n r0: radiusExtent[0],\r\n r: radiusExtent[1],\r\n startAngle: -angleExtent[0] * RADIAN,\r\n endAngle: -angleExtent[1] * RADIAN,\r\n clockwise: angleAxis.inverse,\r\n contain: function (x, y) {\r\n var dx = x - this.cx;\r\n var dy = y - this.cy;\r\n var d2 = dx * dx + dy * dy;\r\n var r = this.r;\r\n var r0 = this.r0;\r\n return d2 <= r * r && d2 >= r0 * r0;\r\n }\r\n };\r\n };\r\n Polar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$3(finder);\r\n return coordSys === this ? this.dataToPoint(value) : null;\r\n };\r\n Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$3(finder);\r\n return coordSys === this ? this.pointToData(pixel) : null;\r\n };\r\n return Polar;\r\n }());\r\n function getCoordSys$3(finder) {\r\n var seriesModel = finder.seriesModel;\r\n var polarModel = finder.polarModel;\r\n return polarModel && polarModel.coordinateSystem\r\n || seriesModel && seriesModel.coordinateSystem;\r\n }\n\n function resizePolar(polar, polarModel, api) {\r\n var center = polarModel.get('center');\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n polar.cx = parsePercent$2(center[0], width);\r\n polar.cy = parsePercent$2(center[1], height);\r\n var radiusAxis = polar.getRadiusAxis();\r\n var size = Math.min(width, height) / 2;\r\n var radius = polarModel.get('radius');\r\n if (radius == null) {\r\n radius = [0, '100%'];\r\n }\r\n else if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n var parsedRadius = [\r\n parsePercent$2(radius[0], size),\r\n parsePercent$2(radius[1], size)\r\n ];\r\n radiusAxis.inverse\r\n ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0])\r\n : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\r\n }\r\n function updatePolarScale(ecModel, api) {\r\n var polar = this;\r\n var angleAxis = polar.getAngleAxis();\r\n var radiusAxis = polar.getRadiusAxis();\r\n angleAxis.scale.setExtent(Infinity, -Infinity);\r\n radiusAxis.scale.setExtent(Infinity, -Infinity);\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.coordinateSystem === polar) {\r\n var data_1 = seriesModel.getData();\r\n each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\r\n radiusAxis.scale.unionExtentFromData(data_1, dim);\r\n });\r\n each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\r\n angleAxis.scale.unionExtentFromData(data_1, dim);\r\n });\r\n }\r\n });\r\n niceScaleExtent(angleAxis.scale, angleAxis.model);\r\n niceScaleExtent(radiusAxis.scale, radiusAxis.model);\r\n if (angleAxis.type === 'category' && !angleAxis.onBand) {\r\n var extent = angleAxis.getExtent();\r\n var diff = 360 / angleAxis.scale.count();\r\n angleAxis.inverse ? (extent[1] += diff) : (extent[1] -= diff);\r\n angleAxis.setExtent(extent[0], extent[1]);\r\n }\r\n }\r\n function isAngleAxisModel(axisModel) {\r\n return axisModel.mainType === 'angleAxis';\r\n }\r\n function setAxis(axis, axisModel) {\r\n axis.type = axisModel.get('type');\r\n axis.scale = createScaleByModel(axisModel);\r\n axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\r\n axis.inverse = axisModel.get('inverse');\r\n if (isAngleAxisModel(axisModel)) {\r\n axis.inverse = axis.inverse !== axisModel.get('clockwise');\r\n var startAngle = axisModel.get('startAngle');\r\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\r\n }\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n }\r\n var polarCreator = {\r\n dimensions: Polar.prototype.dimensions,\r\n create: function (ecModel, api) {\r\n var polarList = [];\r\n ecModel.eachComponent('polar', function (polarModel, idx) {\r\n var polar = new Polar(idx + '');\r\n polar.update = updatePolarScale;\r\n var radiusAxis = polar.getRadiusAxis();\r\n var angleAxis = polar.getAngleAxis();\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n setAxis(radiusAxis, radiusAxisModel);\r\n setAxis(angleAxis, angleAxisModel);\r\n resizePolar(polar, polarModel, api);\r\n polarList.push(polar);\r\n polarModel.coordinateSystem = polar;\r\n polar.model = polarModel;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'polar') {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!polarModel) {\r\n throw new Error('Polar \"' + retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\r\n }\r\n }\r\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\r\n }\r\n });\r\n return polarList;\r\n }\r\n };\r\n CoordinateSystemManager.register('polar', polarCreator);\n\n var elementList$1 = [\r\n 'axisLine',\r\n 'axisLabel',\r\n 'axisTick',\r\n 'minorTick',\r\n 'splitLine',\r\n 'minorSplitLine',\r\n 'splitArea'\r\n ];\r\n function getAxisLineShape(polar, rExtent, angle) {\r\n rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\r\n var start = polar.coordToPoint([rExtent[0], angle]);\r\n var end = polar.coordToPoint([rExtent[1], angle]);\r\n return {\r\n x1: start[0],\r\n y1: start[1],\r\n x2: end[0],\r\n y2: end[1]\r\n };\r\n }\r\n function getRadiusIdx(polar) {\r\n var radiusAxis = polar.getRadiusAxis();\r\n return radiusAxis.inverse ? 0 : 1;\r\n }\r\n function fixAngleOverlap(list) {\r\n var firstItem = list[0];\r\n var lastItem = list[list.length - 1];\r\n if (firstItem\r\n && lastItem\r\n && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\r\n list.pop();\r\n }\r\n }\r\n var AngleAxisView = (function (_super) {\r\n __extends(AngleAxisView, _super);\r\n function AngleAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AngleAxisView.type;\r\n _this.axisPointerClass = 'PolarAxisPointer';\r\n return _this;\r\n }\r\n AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\r\n this.group.removeAll();\r\n if (!angleAxisModel.get('show')) {\r\n return;\r\n }\r\n var angleAxis = angleAxisModel.axis;\r\n var polar = angleAxis.polar;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var ticksAngles = angleAxis.getTicksCoords();\r\n var minorTickAngles = angleAxis.getMinorTicksCoords();\r\n var labels = map(angleAxis.getViewLabels(), function (labelItem) {\r\n labelItem = clone(labelItem);\r\n labelItem.coord = angleAxis.dataToCoord(labelItem.tickValue);\r\n return labelItem;\r\n });\r\n fixAngleOverlap(labels);\r\n fixAngleOverlap(ticksAngles);\r\n each(elementList$1, function (name) {\r\n if (angleAxisModel.get([name, 'show'])\r\n && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\r\n angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\r\n }\r\n }, this);\r\n };\r\n AngleAxisView.type = 'angleAxis';\r\n return AngleAxisView;\r\n }(AxisView));\r\n var angelAxisElementsBuilders = {\r\n axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\r\n var rId = getRadiusIdx(polar);\r\n var r0Id = rId ? 0 : 1;\r\n var shape;\r\n if (radiusExtent[r0Id] === 0) {\r\n shape = new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: radiusExtent[rId]\r\n },\r\n style: lineStyleModel.getLineStyle(),\r\n z2: 1,\r\n silent: true\r\n });\r\n }\r\n else {\r\n shape = new Ring({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: radiusExtent[rId],\r\n r0: radiusExtent[r0Id]\r\n },\r\n style: lineStyleModel.getLineStyle(),\r\n z2: 1,\r\n silent: true\r\n });\r\n }\r\n shape.style.fill = null;\r\n group.add(shape);\r\n },\r\n axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var tickModel = angleAxisModel.getModel('axisTick');\r\n var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\r\n var radius = radiusExtent[getRadiusIdx(polar)];\r\n var lines = map(ticksAngles, function (tickAngleItem) {\r\n return new Line({\r\n shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\r\n });\r\n });\r\n group.add(mergePath$1(lines, {\r\n style: defaults(tickModel.getModel('lineStyle').getLineStyle(), {\r\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\r\n })\r\n }));\r\n },\r\n minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\r\n if (!minorTickAngles.length) {\r\n return;\r\n }\r\n var tickModel = angleAxisModel.getModel('axisTick');\r\n var minorTickModel = angleAxisModel.getModel('minorTick');\r\n var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\r\n var radius = radiusExtent[getRadiusIdx(polar)];\r\n var lines = [];\r\n for (var i = 0; i < minorTickAngles.length; i++) {\r\n for (var k = 0; k < minorTickAngles[i].length; k++) {\r\n lines.push(new Line({\r\n shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: defaults(minorTickModel.getModel('lineStyle').getLineStyle(), defaults(tickModel.getLineStyle(), {\r\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }))\r\n }));\r\n },\r\n axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\r\n var rawCategoryData = angleAxisModel.getCategories(true);\r\n var commonLabelModel = angleAxisModel.getModel('axisLabel');\r\n var labelMargin = commonLabelModel.get('margin');\r\n var triggerEvent = angleAxisModel.get('triggerEvent');\r\n each(labels, function (labelItem, idx) {\r\n var labelModel = commonLabelModel;\r\n var tickValue = labelItem.tickValue;\r\n var r = radiusExtent[getRadiusIdx(polar)];\r\n var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\r\n var cx = polar.cx;\r\n var cy = polar.cy;\r\n var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3\r\n ? 'center' : (p[0] > cx ? 'left' : 'right');\r\n var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3\r\n ? 'middle' : (p[1] > cy ? 'top' : 'bottom');\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\r\n }\r\n }\r\n var textEl = new ZRText({\r\n silent: AxisBuilder.isLabelSilent(angleAxisModel),\r\n style: createTextStyle(labelModel, {\r\n x: p[0],\r\n y: p[1],\r\n fill: labelModel.getTextColor()\r\n || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\r\n text: labelItem.formattedLabel,\r\n align: labelTextAlign,\r\n verticalAlign: labelTextVerticalAlign\r\n })\r\n });\r\n group.add(textEl);\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = labelItem.rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n }, this);\r\n },\r\n splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var splitLineModel = angleAxisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n var lineCount = 0;\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var splitLines = [];\r\n for (var i = 0; i < ticksAngles.length; i++) {\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Line({\r\n shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; i++) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: defaults({\r\n stroke: lineColors[i % lineColors.length]\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true,\r\n z: angleAxisModel.get('z')\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n if (!minorTickAngles.length) {\r\n return;\r\n }\r\n var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var lines = [];\r\n for (var i = 0; i < minorTickAngles.length; i++) {\r\n for (var k = 0; k < minorTickAngles[i].length; k++) {\r\n lines.push(new Line({\r\n shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: lineStyleModel.getLineStyle(),\r\n silent: true,\r\n z: angleAxisModel.get('z')\r\n }));\r\n },\r\n splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n if (!ticksAngles.length) {\r\n return;\r\n }\r\n var splitAreaModel = angleAxisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var lineCount = 0;\r\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\r\n var splitAreas = [];\r\n var RADIAN = Math.PI / 180;\r\n var prevAngle = -ticksAngles[0].coord * RADIAN;\r\n var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\r\n var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\r\n var clockwise = angleAxisModel.get('clockwise');\r\n for (var i = 1, len = ticksAngles.length; i <= len; i++) {\r\n var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\r\n var colorIndex = (lineCount++) % areaColors.length;\r\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\r\n splitAreas[colorIndex].push(new Sector({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r0: r0,\r\n r: r1,\r\n startAngle: prevAngle,\r\n endAngle: -coord * RADIAN,\r\n clockwise: clockwise\r\n },\r\n silent: true\r\n }));\r\n prevAngle = -coord * RADIAN;\r\n }\r\n for (var i = 0; i < splitAreas.length; i++) {\r\n group.add(mergePath$1(splitAreas[i], {\r\n style: defaults({\r\n fill: areaColors[i % areaColors.length]\r\n }, areaStyleModel.getAreaStyle()),\r\n silent: true\r\n }));\r\n }\r\n }\r\n };\r\n ComponentView.registerClass(AngleAxisView);\n\n var axisBuilderAttrs$3 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs$2 = [\r\n 'splitLine', 'splitArea', 'minorSplitLine'\r\n ];\r\n var RadiusAxisView = (function (_super) {\r\n __extends(RadiusAxisView, _super);\r\n function RadiusAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadiusAxisView.type;\r\n _this.axisPointerClass = 'PolarAxisPointer';\r\n return _this;\r\n }\r\n RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\r\n this.group.removeAll();\r\n if (!radiusAxisModel.get('show')) {\r\n return;\r\n }\r\n var oldAxisGroup = this._axisGroup;\r\n var newAxisGroup = this._axisGroup = new Group();\r\n this.group.add(newAxisGroup);\r\n var radiusAxis = radiusAxisModel.axis;\r\n var polar = radiusAxis.polar;\r\n var angleAxis = polar.getAngleAxis();\r\n var ticksCoords = radiusAxis.getTicksCoords();\r\n var minorTicksCoords = radiusAxis.getMinorTicksCoords();\r\n var axisAngle = angleAxis.getExtent()[0];\r\n var radiusExtent = radiusAxis.getExtent();\r\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\r\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\r\n each(axisBuilderAttrs$3, axisBuilder.add, axisBuilder);\r\n newAxisGroup.add(axisBuilder.getGroup());\r\n groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\r\n each(selfBuilderAttrs$2, function (name) {\r\n if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\r\n axisElementBuilders$2[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\r\n }\r\n }, this);\r\n };\r\n RadiusAxisView.type = 'radiusAxis';\r\n return RadiusAxisView;\r\n }(AxisView));\r\n var axisElementBuilders$2 = {\r\n splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\r\n var splitLineModel = radiusAxisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n var lineCount = 0;\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var splitLines = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: ticksCoords[i].coord\r\n }\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; i++) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: defaults({\r\n stroke: lineColors[i % lineColors.length],\r\n fill: null\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var lines = [];\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n lines.push(new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: minorTicksCoords[i][k].coord\r\n }\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: defaults({\r\n fill: null\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true\r\n }));\r\n },\r\n splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var lineCount = 0;\r\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\r\n var splitAreas = [];\r\n var prevRadius = ticksCoords[0].coord;\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var colorIndex = (lineCount++) % areaColors.length;\r\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\r\n splitAreas[colorIndex].push(new Sector({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r0: prevRadius,\r\n r: ticksCoords[i].coord,\r\n startAngle: 0,\r\n endAngle: Math.PI * 2\r\n },\r\n silent: true\r\n }));\r\n prevRadius = ticksCoords[i].coord;\r\n }\r\n for (var i = 0; i < splitAreas.length; i++) {\r\n group.add(mergePath$1(splitAreas[i], {\r\n style: defaults({\r\n fill: areaColors[i % areaColors.length]\r\n }, areaStyleModel.getAreaStyle()),\r\n silent: true\r\n }));\r\n }\r\n }\r\n };\r\n function layoutAxis(polar, radiusAxisModel, axisAngle) {\r\n return {\r\n position: [polar.cx, polar.cy],\r\n rotation: axisAngle / 180 * Math.PI,\r\n labelDirection: -1,\r\n tickDirection: -1,\r\n nameDirection: 1,\r\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\r\n z2: 1\r\n };\r\n }\r\n AxisView.registerClass(RadiusAxisView);\n\n var PolarAxisPointer = (function (_super) {\r\n __extends(PolarAxisPointer, _super);\r\n function PolarAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n if (axis.dim === 'angle') {\r\n this.animationThreshold = Math.PI / 18;\r\n }\r\n var polar = axis.polar;\r\n var otherAxis = polar.getOtherAxis(axis);\r\n var otherExtent = otherAxis.getExtent();\r\n var coordValue = axis.dataToCoord(value);\r\n var axisPointerType = axisPointerModel.get('type');\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder$2[axisPointerType](axis, polar, coordValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var labelMargin = axisPointerModel.get(['label', 'margin']);\r\n var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\r\n };\r\n return PolarAxisPointer;\r\n }(BaseAxisPointer));\r\n function getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\r\n var axis = axisModel.axis;\r\n var coord = axis.dataToCoord(value);\r\n var axisAngle = polar.getAngleAxis().getExtent()[0];\r\n axisAngle = axisAngle / 180 * Math.PI;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var position;\r\n var align;\r\n var verticalAlign;\r\n if (axis.dim === 'radius') {\r\n var transform = create$1();\r\n rotate(transform, transform, axisAngle);\r\n translate(transform, transform, [polar.cx, polar.cy]);\r\n position = applyTransform$1([coord, -labelMargin], transform);\r\n var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\r\n var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\r\n align = labelLayout.textAlign;\r\n verticalAlign = labelLayout.textVerticalAlign;\r\n }\r\n else {\r\n var r = radiusExtent[1];\r\n position = polar.coordToPoint([r + labelMargin, coord]);\r\n var cx = polar.cx;\r\n var cy = polar.cy;\r\n align = Math.abs(position[0] - cx) / r < 0.3\r\n ? 'center' : (position[0] > cx ? 'left' : 'right');\r\n verticalAlign = Math.abs(position[1] - cy) / r < 0.3\r\n ? 'middle' : (position[1] > cy ? 'top' : 'bottom');\r\n }\r\n return {\r\n position: position,\r\n align: align,\r\n verticalAlign: verticalAlign\r\n };\r\n }\r\n var pointerShapeBuilder$2 = {\r\n line: function (axis, polar, coordValue, otherExtent) {\r\n return axis.dim === 'angle'\r\n ? {\r\n type: 'Line',\r\n shape: makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\r\n }\r\n : {\r\n type: 'Circle',\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: coordValue\r\n }\r\n };\r\n },\r\n shadow: function (axis, polar, coordValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var radian = Math.PI / 180;\r\n return axis.dim === 'angle'\r\n ? {\r\n type: 'Sector',\r\n shape: makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\r\n }\r\n : {\r\n type: 'Sector',\r\n shape: makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\r\n };\r\n }\r\n };\r\n AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n\n registerLayout(curry(barLayoutPolar, 'bar'));\r\n extendComponentView({\r\n type: 'polar'\r\n });\n\n var GeoView = (function (_super) {\r\n __extends(GeoView, _super);\r\n function GeoView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GeoView.type;\r\n return _this;\r\n }\r\n GeoView.prototype.init = function (ecModel, api) {\r\n var mapDraw = new MapDraw(api);\r\n this._mapDraw = mapDraw;\r\n this.group.add(mapDraw.group);\r\n this._api = api;\r\n };\r\n GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\r\n var mapDraw = this._mapDraw;\r\n if (geoModel.get('show')) {\r\n mapDraw.draw(geoModel, ecModel, api, this, payload);\r\n }\r\n else {\r\n this._mapDraw.group.removeAll();\r\n }\r\n mapDraw.group.on('click', this._handleRegionClick, this);\r\n mapDraw.group.silent = geoModel.get('silent');\r\n this._model = geoModel;\r\n this.updateSelectStatus();\r\n };\r\n GeoView.prototype._handleRegionClick = function (e) {\r\n var current = e.target;\r\n var eventData;\r\n while ((eventData = getECData(current).eventData) == null) {\r\n current = current.__hostTarget || current.parent;\r\n }\r\n if (eventData) {\r\n this._api.dispatchAction({\r\n type: 'geoToggleSelect',\r\n geoId: this._model.id,\r\n statusChanged: true,\r\n name: eventData.name\r\n });\r\n }\r\n };\r\n GeoView.prototype.updateSelectStatus = function () {\r\n var _this = this;\r\n this._mapDraw.group.traverse(function (node) {\r\n var eventData = getECData(node).eventData;\r\n if (eventData) {\r\n _this._model.isSelected(eventData.name)\r\n ? enterSelect(node) : leaveSelect(node);\r\n return true;\r\n }\r\n });\r\n };\r\n GeoView.prototype.dispose = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n };\r\n GeoView.type = 'geo';\r\n return GeoView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GeoView);\n\n var GeoModel = (function (_super) {\r\n __extends(GeoModel, _super);\r\n function GeoModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GeoModel.type;\r\n return _this;\r\n }\r\n GeoModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n defaultEmphasis(option, 'label', ['show']);\r\n };\r\n GeoModel.prototype.optionUpdated = function () {\r\n var option = this.option;\r\n var self = this;\r\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\r\n var selectedMap = {};\r\n this._optionModelMap = reduce(option.regions || [], function (optionModelMap, regionOpt) {\r\n var regionName = regionOpt.name;\r\n if (regionName) {\r\n optionModelMap.set(regionName, new Model(regionOpt, self));\r\n if (regionOpt.selected) {\r\n selectedMap[regionName] = true;\r\n }\r\n }\r\n return optionModelMap;\r\n }, createHashMap());\r\n if (!option.selectedMap) {\r\n option.selectedMap = selectedMap;\r\n }\r\n };\r\n GeoModel.prototype.getRegionModel = function (name) {\r\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\r\n };\r\n GeoModel.prototype.getFormattedLabel = function (name, status) {\r\n var regionModel = this.getRegionModel(name);\r\n var formatter = status === 'normal'\r\n ? regionModel.get(['label', 'formatter'])\r\n : regionModel.get(['emphasis', 'label', 'formatter']);\r\n var params = {\r\n name: name\r\n };\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n return formatter.replace('{a}', name != null ? name : '');\r\n }\r\n };\r\n GeoModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n GeoModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n GeoModel.prototype.select = function (name) {\r\n var option = this.option;\r\n var selectedMode = option.selectedMode;\r\n if (!selectedMode) {\r\n return;\r\n }\r\n if (selectedMode !== 'multiple') {\r\n option.selectedMap = null;\r\n }\r\n var selectedMap = option.selectedMap || (option.selectedMap = {});\r\n selectedMap[name] = true;\r\n };\r\n GeoModel.prototype.unSelect = function (name) {\r\n var selectedMap = this.option.selectedMap;\r\n if (selectedMap) {\r\n selectedMap[name] = false;\r\n }\r\n };\r\n GeoModel.prototype.toggleSelected = function (name) {\r\n this[this.isSelected(name) ? 'unSelect' : 'select'](name);\r\n };\r\n GeoModel.prototype.isSelected = function (name) {\r\n var selectedMap = this.option.selectedMap;\r\n return !!(selectedMap && selectedMap[name]);\r\n };\r\n GeoModel.prototype._initSelectedMapFromData = function () {\r\n };\r\n GeoModel.type = 'geo';\r\n GeoModel.layoutMode = 'box';\r\n GeoModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n show: true,\r\n left: 'center',\r\n top: 'center',\r\n aspectScale: null,\r\n silent: false,\r\n map: '',\r\n boundingCoords: null,\r\n center: null,\r\n zoom: 1,\r\n scaleLimit: null,\r\n label: {\r\n show: false,\r\n color: '#000'\r\n },\r\n itemStyle: {\r\n borderWidth: 0.5,\r\n borderColor: '#444',\r\n color: '#eee'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n select: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n regions: []\r\n };\r\n return GeoModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(GeoModel);\n\n function makeAction(method, actionInfo) {\r\n actionInfo.update = 'geo:updateSelectStatus';\r\n registerAction(actionInfo, function (payload, ecModel) {\r\n var selected = {};\r\n ecModel.eachComponent({ mainType: 'geo', query: payload }, function (geoModel) {\r\n geoModel[method](payload.name);\r\n var geo = geoModel.coordinateSystem;\r\n each(geo.regions, function (region) {\r\n selected[region.name] = geoModel.isSelected(region.name) || false;\r\n });\r\n });\r\n return {\r\n selected: selected,\r\n name: payload.name\r\n };\r\n });\r\n }\r\n makeAction('toggleSelected', {\r\n type: 'geoToggleSelect',\r\n event: 'geoselectchanged'\r\n });\r\n makeAction('select', {\r\n type: 'geoSelect',\r\n event: 'geoselected'\r\n });\r\n makeAction('unSelect', {\r\n type: 'geoUnSelect',\r\n event: 'geounselected'\r\n });\n\n var PROXIMATE_ONE_DAY = 86400000;\r\n var Calendar = (function () {\r\n function Calendar(calendarModel, ecModel, api) {\r\n this.type = 'calendar';\r\n this.dimensions = Calendar.dimensions;\r\n this.getDimensionsInfo = Calendar.getDimensionsInfo;\r\n this._model = calendarModel;\r\n }\r\n Calendar.getDimensionsInfo = function () {\r\n return [{\r\n name: 'time', type: 'time'\r\n }, 'value'];\r\n };\r\n Calendar.prototype.getRangeInfo = function () {\r\n return this._rangeInfo;\r\n };\r\n Calendar.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n Calendar.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Calendar.prototype.getCellWidth = function () {\r\n return this._sw;\r\n };\r\n Calendar.prototype.getCellHeight = function () {\r\n return this._sh;\r\n };\r\n Calendar.prototype.getOrient = function () {\r\n return this._orient;\r\n };\r\n Calendar.prototype.getFirstDayOfWeek = function () {\r\n return this._firstDayOfWeek;\r\n };\r\n Calendar.prototype.getDateInfo = function (date) {\r\n date = parseDate(date);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n var mStr = m < 10 ? '0' + m : '' + m;\r\n var d = date.getDate();\r\n var dStr = d < 10 ? '0' + d : '' + d;\r\n var day = date.getDay();\r\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\r\n return {\r\n y: y + '',\r\n m: mStr,\r\n d: dStr,\r\n day: day,\r\n time: date.getTime(),\r\n formatedDate: y + '-' + mStr + '-' + dStr,\r\n date: date\r\n };\r\n };\r\n Calendar.prototype.getNextNDay = function (date, n) {\r\n n = n || 0;\r\n if (n === 0) {\r\n return this.getDateInfo(date);\r\n }\r\n date = new Date(this.getDateInfo(date).time);\r\n date.setDate(date.getDate() + n);\r\n return this.getDateInfo(date);\r\n };\r\n Calendar.prototype.update = function (ecModel, api) {\r\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\r\n this._orient = this._model.get('orient');\r\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\r\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\r\n var weeks = this._rangeInfo.weeks || 1;\r\n var whNames = ['width', 'height'];\r\n var cellSize = this._model.getCellSize().slice();\r\n var layoutParams = this._model.getBoxLayoutParams();\r\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\r\n each([0, 1], function (idx) {\r\n if (cellSizeSpecified(cellSize, idx)) {\r\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\r\n }\r\n });\r\n var whGlobal = {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n };\r\n var calendarRect = this._rect = getLayoutRect(layoutParams, whGlobal);\r\n each([0, 1], function (idx) {\r\n if (!cellSizeSpecified(cellSize, idx)) {\r\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\r\n }\r\n });\r\n function cellSizeSpecified(cellSize, idx) {\r\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\r\n }\r\n this._sw = cellSize[0];\r\n this._sh = cellSize[1];\r\n };\r\n Calendar.prototype.dataToPoint = function (data, clamp) {\r\n isArray(data) && (data = data[0]);\r\n clamp == null && (clamp = true);\r\n var dayInfo = this.getDateInfo(data);\r\n var range = this._rangeInfo;\r\n var date = dayInfo.formatedDate;\r\n if (clamp && !(dayInfo.time >= range.start.time\r\n && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\r\n return [NaN, NaN];\r\n }\r\n var week = dayInfo.day;\r\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\r\n if (this._orient === 'vertical') {\r\n return [\r\n this._rect.x + week * this._sw + this._sw / 2,\r\n this._rect.y + nthWeek * this._sh + this._sh / 2\r\n ];\r\n }\r\n return [\r\n this._rect.x + nthWeek * this._sw + this._sw / 2,\r\n this._rect.y + week * this._sh + this._sh / 2\r\n ];\r\n };\r\n Calendar.prototype.pointToData = function (point) {\r\n var date = this.pointToDate(point);\r\n return date && date.time;\r\n };\r\n Calendar.prototype.dataToRect = function (data, clamp) {\r\n var point = this.dataToPoint(data, clamp);\r\n return {\r\n contentShape: {\r\n x: point[0] - (this._sw - this._lineWidth) / 2,\r\n y: point[1] - (this._sh - this._lineWidth) / 2,\r\n width: this._sw - this._lineWidth,\r\n height: this._sh - this._lineWidth\r\n },\r\n center: point,\r\n tl: [\r\n point[0] - this._sw / 2,\r\n point[1] - this._sh / 2\r\n ],\r\n tr: [\r\n point[0] + this._sw / 2,\r\n point[1] - this._sh / 2\r\n ],\r\n br: [\r\n point[0] + this._sw / 2,\r\n point[1] + this._sh / 2\r\n ],\r\n bl: [\r\n point[0] - this._sw / 2,\r\n point[1] + this._sh / 2\r\n ]\r\n };\r\n };\r\n Calendar.prototype.pointToDate = function (point) {\r\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\r\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\r\n var range = this._rangeInfo.range;\r\n if (this._orient === 'vertical') {\r\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\r\n }\r\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\r\n };\r\n Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$4(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$4(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n Calendar.prototype.containPoint = function (point) {\r\n console.warn('Not implemented.');\r\n return false;\r\n };\r\n Calendar.prototype._initRangeOption = function () {\r\n var range = this._model.get('range');\r\n var normalizedRange;\r\n if (isArray(range) && range.length === 1) {\r\n range = range[0];\r\n }\r\n if (!isArray(range)) {\r\n var rangeStr = range.toString();\r\n if (/^\\d{4}$/.test(rangeStr)) {\r\n normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\r\n }\r\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\r\n var start = this.getDateInfo(rangeStr);\r\n var firstDay = start.date;\r\n firstDay.setMonth(firstDay.getMonth() + 1);\r\n var end = this.getNextNDay(firstDay, -1);\r\n normalizedRange = [start.formatedDate, end.formatedDate];\r\n }\r\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\r\n normalizedRange = [rangeStr, rangeStr];\r\n }\r\n }\r\n else {\r\n normalizedRange = range;\r\n }\r\n if (!normalizedRange) {\r\n if (__DEV__) {\r\n logError('Invalid date range.');\r\n }\r\n return range;\r\n }\r\n var tmp = this._getRangeInfo(normalizedRange);\r\n if (tmp.start.time > tmp.end.time) {\r\n normalizedRange.reverse();\r\n }\r\n return normalizedRange;\r\n };\r\n Calendar.prototype._getRangeInfo = function (range) {\r\n var parsedRange = [\r\n this.getDateInfo(range[0]),\r\n this.getDateInfo(range[1])\r\n ];\r\n var reversed;\r\n if (parsedRange[0].time > parsedRange[1].time) {\r\n reversed = true;\r\n parsedRange.reverse();\r\n }\r\n var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY)\r\n - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\r\n var date = new Date(parsedRange[0].time);\r\n var startDateNum = date.getDate();\r\n var endDateNum = parsedRange[1].date.getDate();\r\n date.setDate(startDateNum + allDay - 1);\r\n var dateNum = date.getDate();\r\n if (dateNum !== endDateNum) {\r\n var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\r\n while ((dateNum = date.getDate()) !== endDateNum\r\n && (date.getTime() - parsedRange[1].time) * sign > 0) {\r\n allDay -= sign;\r\n date.setDate(dateNum - sign);\r\n }\r\n }\r\n var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\r\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\r\n reversed && parsedRange.reverse();\r\n return {\r\n range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\r\n start: parsedRange[0],\r\n end: parsedRange[1],\r\n allDay: allDay,\r\n weeks: weeks,\r\n nthWeek: nthWeek,\r\n fweek: parsedRange[0].day,\r\n lweek: parsedRange[1].day\r\n };\r\n };\r\n Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\r\n var rangeInfo = this._getRangeInfo(range);\r\n if (nthWeek > rangeInfo.weeks\r\n || (nthWeek === 0 && day < rangeInfo.fweek)\r\n || (nthWeek === rangeInfo.weeks && day > rangeInfo.lweek)) {\r\n return null;\r\n }\r\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\r\n var date = new Date(rangeInfo.start.time);\r\n date.setDate(+rangeInfo.start.d + nthDay);\r\n return this.getDateInfo(date);\r\n };\r\n Calendar.create = function (ecModel, api) {\r\n var calendarList = [];\r\n ecModel.eachComponent('calendar', function (calendarModel) {\r\n var calendar = new Calendar(calendarModel, ecModel, api);\r\n calendarList.push(calendar);\r\n calendarModel.coordinateSystem = calendar;\r\n });\r\n ecModel.eachSeries(function (calendarSeries) {\r\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\r\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\r\n }\r\n });\r\n return calendarList;\r\n };\r\n Calendar.dimensions = ['time', 'value'];\r\n return Calendar;\r\n }());\r\n function getCoordSys$4(finder) {\r\n var calendarModel = finder.calendarModel;\r\n var seriesModel = finder.seriesModel;\r\n var coordSys = calendarModel\r\n ? calendarModel.coordinateSystem\r\n : seriesModel\r\n ? seriesModel.coordinateSystem\r\n : null;\r\n return coordSys;\r\n }\r\n CoordinateSystemManager.register('calendar', Calendar);\n\n var CalendarModel = (function (_super) {\r\n __extends(CalendarModel, _super);\r\n function CalendarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CalendarModel.type;\r\n return _this;\r\n }\r\n CalendarModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.apply(this, arguments);\r\n mergeAndNormalizeLayoutParams(option, inputPositionParams);\r\n };\r\n CalendarModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n mergeAndNormalizeLayoutParams(this.option, option);\r\n };\r\n CalendarModel.prototype.getCellSize = function () {\r\n return this.option.cellSize;\r\n };\r\n CalendarModel.type = 'calendar';\r\n CalendarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n left: 80,\r\n top: 60,\r\n cellSize: 20,\r\n orient: 'horizontal',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#000',\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n color: '#fff',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n },\r\n dayLabel: {\r\n show: true,\r\n firstDay: 0,\r\n position: 'start',\r\n margin: '50%',\r\n nameMap: 'en',\r\n color: '#000'\r\n },\r\n monthLabel: {\r\n show: true,\r\n position: 'start',\r\n margin: 5,\r\n align: 'center',\r\n nameMap: 'en',\r\n formatter: null,\r\n color: '#000'\r\n },\r\n yearLabel: {\r\n show: true,\r\n position: null,\r\n margin: 30,\r\n formatter: null,\r\n color: '#ccc',\r\n fontFamily: 'sans-serif',\r\n fontWeight: 'bolder',\r\n fontSize: 20\r\n }\r\n };\r\n return CalendarModel;\r\n }(ComponentModel));\r\n function mergeAndNormalizeLayoutParams(target, raw) {\r\n var cellSize = target.cellSize;\r\n var cellSizeArr;\r\n if (!isArray(cellSize)) {\r\n cellSizeArr = target.cellSize = [cellSize, cellSize];\r\n }\r\n else {\r\n cellSizeArr = cellSize;\r\n }\r\n if (cellSizeArr.length === 1) {\r\n cellSizeArr[1] = cellSizeArr[0];\r\n }\r\n var ignoreSize = map([0, 1], function (hvIdx) {\r\n if (sizeCalculable(raw, hvIdx)) {\r\n cellSizeArr[hvIdx] = 'auto';\r\n }\r\n return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\r\n });\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(CalendarModel);\n\n var MONTH_TEXT = {\r\n EN: [\r\n 'Jan', 'Feb', 'Mar',\r\n 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep',\r\n 'Oct', 'Nov', 'Dec'\r\n ],\r\n CN: [\r\n '一月', '二月', '三月',\r\n '四月', '五月', '六月',\r\n '七月', '八月', '九月',\r\n '十月', '十一月', '十二月'\r\n ]\r\n };\r\n var WEEK_TEXT = {\r\n EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\r\n CN: ['日', '一', '二', '三', '四', '五', '六']\r\n };\r\n var CalendarView = (function (_super) {\r\n __extends(CalendarView, _super);\r\n function CalendarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CalendarView.type;\r\n return _this;\r\n }\r\n CalendarView.prototype.render = function (calendarModel, ecModel, api) {\r\n var group = this.group;\r\n group.removeAll();\r\n var coordSys = calendarModel.coordinateSystem;\r\n var rangeData = coordSys.getRangeInfo();\r\n var orient = coordSys.getOrient();\r\n this._renderDayRect(calendarModel, rangeData, group);\r\n this._renderLines(calendarModel, rangeData, orient, group);\r\n this._renderYearText(calendarModel, rangeData, orient, group);\r\n this._renderMonthText(calendarModel, orient, group);\r\n this._renderWeekText(calendarModel, rangeData, orient, group);\r\n };\r\n CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\r\n var coordSys = calendarModel.coordinateSystem;\r\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\r\n var sw = coordSys.getCellWidth();\r\n var sh = coordSys.getCellHeight();\r\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\r\n var point = coordSys.dataToRect([i], false).tl;\r\n var rect = new Rect({\r\n shape: {\r\n x: point[0],\r\n y: point[1],\r\n width: sw,\r\n height: sh\r\n },\r\n cursor: 'default',\r\n style: itemRectStyleModel\r\n });\r\n group.add(rect);\r\n }\r\n };\r\n CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\r\n var self = this;\r\n var coordSys = calendarModel.coordinateSystem;\r\n var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\r\n var show = calendarModel.get(['splitLine', 'show']);\r\n var lineWidth = lineStyleModel.lineWidth;\r\n this._tlpoints = [];\r\n this._blpoints = [];\r\n this._firstDayOfMonth = [];\r\n this._firstDayPoints = [];\r\n var firstDay = rangeData.start;\r\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\r\n addPoints(firstDay.formatedDate);\r\n if (i === 0) {\r\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\r\n }\r\n var date = firstDay.date;\r\n date.setMonth(date.getMonth() + 1);\r\n firstDay = coordSys.getDateInfo(date);\r\n }\r\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\r\n function addPoints(date) {\r\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\r\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\r\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\r\n self._tlpoints.push(points[0]);\r\n self._blpoints.push(points[points.length - 1]);\r\n show && self._drawSplitline(points, lineStyleModel, group);\r\n }\r\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\r\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\r\n };\r\n CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\r\n var rs = [points[0].slice(), points[points.length - 1].slice()];\r\n var idx = orient === 'horizontal' ? 0 : 1;\r\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\r\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\r\n return rs;\r\n };\r\n CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\r\n var poyline = new Polyline({\r\n z2: 20,\r\n shape: {\r\n points: points\r\n },\r\n style: lineStyle\r\n });\r\n group.add(poyline);\r\n };\r\n CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\r\n var coordSys = calendarModel.coordinateSystem;\r\n var parsedDate = coordSys.getDateInfo(date);\r\n var points = [];\r\n for (var i = 0; i < 7; i++) {\r\n var tmpD = coordSys.getNextNDay(parsedDate.time, i);\r\n var point = coordSys.dataToRect([tmpD.time], false);\r\n points[2 * tmpD.day] = point.tl;\r\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\r\n }\r\n return points;\r\n };\r\n CalendarView.prototype._formatterLabel = function (formatter, params) {\r\n if (typeof formatter === 'string' && formatter) {\r\n return formatTplSimple(formatter, params);\r\n }\r\n if (typeof formatter === 'function') {\r\n return formatter(params);\r\n }\r\n return params.nameMap;\r\n };\r\n CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\r\n var x = point[0];\r\n var y = point[1];\r\n var aligns = ['center', 'bottom'];\r\n if (position === 'bottom') {\r\n y += margin;\r\n aligns = ['center', 'top'];\r\n }\r\n else if (position === 'left') {\r\n x -= margin;\r\n }\r\n else if (position === 'right') {\r\n x += margin;\r\n aligns = ['center', 'top'];\r\n }\r\n else {\r\n y -= margin;\r\n }\r\n var rotate = 0;\r\n if (position === 'left' || position === 'right') {\r\n rotate = Math.PI / 2;\r\n }\r\n return {\r\n rotation: rotate,\r\n x: x,\r\n y: y,\r\n style: {\r\n align: aligns[0],\r\n verticalAlign: aligns[1]\r\n }\r\n };\r\n };\r\n CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\r\n var yearLabel = calendarModel.getModel('yearLabel');\r\n if (!yearLabel.get('show')) {\r\n return;\r\n }\r\n var margin = yearLabel.get('margin');\r\n var pos = yearLabel.get('position');\r\n if (!pos) {\r\n pos = orient !== 'horizontal' ? 'top' : 'left';\r\n }\r\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\r\n var xc = (points[0][0] + points[1][0]) / 2;\r\n var yc = (points[0][1] + points[1][1]) / 2;\r\n var idx = orient === 'horizontal' ? 0 : 1;\r\n var posPoints = {\r\n top: [xc, points[idx][1]],\r\n bottom: [xc, points[1 - idx][1]],\r\n left: [points[1 - idx][0], yc],\r\n right: [points[idx][0], yc]\r\n };\r\n var name = rangeData.start.y;\r\n if (+rangeData.end.y > +rangeData.start.y) {\r\n name = name + '-' + rangeData.end.y;\r\n }\r\n var formatter = yearLabel.get('formatter');\r\n var params = {\r\n start: rangeData.start.y,\r\n end: rangeData.end.y,\r\n nameMap: name\r\n };\r\n var content = this._formatterLabel(formatter, params);\r\n var yearText = new ZRText({\r\n z2: 30,\r\n style: createTextStyle(yearLabel, {\r\n text: content\r\n })\r\n });\r\n yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\r\n group.add(yearText);\r\n };\r\n CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\r\n var align = 'left';\r\n var vAlign = 'top';\r\n var x = point[0];\r\n var y = point[1];\r\n if (orient === 'horizontal') {\r\n y = y + margin;\r\n if (isCenter) {\r\n align = 'center';\r\n }\r\n if (position === 'start') {\r\n vAlign = 'bottom';\r\n }\r\n }\r\n else {\r\n x = x + margin;\r\n if (isCenter) {\r\n vAlign = 'middle';\r\n }\r\n if (position === 'start') {\r\n align = 'right';\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n align: align,\r\n verticalAlign: vAlign\r\n };\r\n };\r\n CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\r\n var monthLabel = calendarModel.getModel('monthLabel');\r\n if (!monthLabel.get('show')) {\r\n return;\r\n }\r\n var nameMap = monthLabel.get('nameMap');\r\n var margin = monthLabel.get('margin');\r\n var pos = monthLabel.get('position');\r\n var align = monthLabel.get('align');\r\n var termPoints = [this._tlpoints, this._blpoints];\r\n if (isString(nameMap)) {\r\n nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\r\n }\r\n var idx = pos === 'start' ? 0 : 1;\r\n var axis = orient === 'horizontal' ? 0 : 1;\r\n margin = pos === 'start' ? -margin : margin;\r\n var isCenter = (align === 'center');\r\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\r\n var tmp = termPoints[idx][i].slice();\r\n var firstDay = this._firstDayOfMonth[i];\r\n if (isCenter) {\r\n var firstDayPoints = this._firstDayPoints[i];\r\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\r\n }\r\n var formatter = monthLabel.get('formatter');\r\n var name_1 = nameMap[+firstDay.m - 1];\r\n var params = {\r\n yyyy: firstDay.y,\r\n yy: (firstDay.y + '').slice(2),\r\n MM: firstDay.m,\r\n M: +firstDay.m,\r\n nameMap: name_1\r\n };\r\n var content = this._formatterLabel(formatter, params);\r\n var monthText = new ZRText({\r\n z2: 30,\r\n style: extend(createTextStyle(monthLabel, { text: content }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\r\n });\r\n group.add(monthText);\r\n }\r\n };\r\n CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\r\n var align = 'center';\r\n var vAlign = 'middle';\r\n var x = point[0];\r\n var y = point[1];\r\n var isStart = position === 'start';\r\n if (orient === 'horizontal') {\r\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\r\n align = isStart ? 'right' : 'left';\r\n }\r\n else {\r\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\r\n vAlign = isStart ? 'bottom' : 'top';\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n align: align,\r\n verticalAlign: vAlign\r\n };\r\n };\r\n CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\r\n var dayLabel = calendarModel.getModel('dayLabel');\r\n if (!dayLabel.get('show')) {\r\n return;\r\n }\r\n var coordSys = calendarModel.coordinateSystem;\r\n var pos = dayLabel.get('position');\r\n var nameMap = dayLabel.get('nameMap');\r\n var margin = dayLabel.get('margin');\r\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\r\n if (isString(nameMap)) {\r\n nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\r\n }\r\n var start = coordSys.getNextNDay(rangeData.end.time, (7 - rangeData.lweek)).time;\r\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\r\n margin = parsePercent$2(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\r\n if (pos === 'start') {\r\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\r\n margin = -margin;\r\n }\r\n for (var i = 0; i < 7; i++) {\r\n var tmpD = coordSys.getNextNDay(start, i);\r\n var point = coordSys.dataToRect([tmpD.time], false).center;\r\n var day = i;\r\n day = Math.abs((i + firstDayOfWeek) % 7);\r\n var weekText = new ZRText({\r\n z2: 30,\r\n style: extend(createTextStyle(dayLabel, { text: nameMap[day] }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\r\n });\r\n group.add(weekText);\r\n }\r\n };\r\n CalendarView.type = 'calendar';\r\n return CalendarView;\r\n }(ComponentView));\r\n ComponentView.registerClass(CalendarView);\n\n var _nonShapeGraphicElements = {\r\n path: null,\r\n compoundPath: null,\r\n group: Group,\r\n image: ZRImage,\r\n text: ZRText\r\n };\r\n registerPreprocessor(function (option) {\r\n var graphicOption = option.graphic;\r\n if (isArray(graphicOption)) {\r\n if (!graphicOption[0] || !graphicOption[0].elements) {\r\n option.graphic = [{ elements: graphicOption }];\r\n }\r\n else {\r\n option.graphic = [option.graphic[0]];\r\n }\r\n }\r\n else if (graphicOption && !graphicOption.elements) {\r\n option.graphic = [{ elements: [graphicOption] }];\r\n }\r\n });\r\n var GraphicModel = extendComponentModel({\r\n type: 'graphic',\r\n defaultOption: {\r\n elements: [],\r\n parentId: null\r\n },\r\n _elOptionsToUpdate: null,\r\n mergeOption: function (option) {\r\n var elements = this.option.elements;\r\n this.option.elements = null;\r\n GraphicModel.superApply(this, 'mergeOption', arguments);\r\n this.option.elements = elements;\r\n },\r\n optionUpdated: function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var newList = (isInit ? thisOption : newOption).elements;\r\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\r\n var flattenedList = [];\r\n this._flatten(newList, flattenedList);\r\n var mappingResult = mappingToExists(existList, flattenedList, 'normalMerge');\r\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\r\n each(mappingResult, function (resultItem, index) {\r\n var newElOption = resultItem.newOption;\r\n if (__DEV__) {\r\n assert(isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\r\n }\r\n if (!newElOption) {\r\n return;\r\n }\r\n elOptionsToUpdate.push(newElOption);\r\n setKeyInfoToNewElOption(resultItem, newElOption);\r\n mergeNewElOptionToExist(existList, index, newElOption);\r\n setLayoutInfoToExist(existList[index], newElOption);\r\n }, this);\r\n for (var i = existList.length - 1; i >= 0; i--) {\r\n if (existList[i] == null) {\r\n existList.splice(i, 1);\r\n }\r\n else {\r\n delete existList[i].$action;\r\n }\r\n }\r\n },\r\n _flatten: function (optionList, result, parentOption) {\r\n each(optionList, function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (parentOption) {\r\n option.parentOption = parentOption;\r\n }\r\n result.push(option);\r\n var children = option.children;\r\n if (option.type === 'group' && children) {\r\n this._flatten(children, result, option);\r\n }\r\n delete option.children;\r\n }, this);\r\n },\r\n useElOptionsToUpdate: function () {\r\n var els = this._elOptionsToUpdate;\r\n this._elOptionsToUpdate = null;\r\n return els;\r\n }\r\n });\r\n extendComponentView({\r\n type: 'graphic',\r\n init: function (ecModel, api) {\r\n this._elMap = createHashMap();\r\n this._lastGraphicModel;\r\n },\r\n render: function (graphicModel, ecModel, api) {\r\n if (graphicModel !== this._lastGraphicModel) {\r\n this._clear();\r\n }\r\n this._lastGraphicModel = graphicModel;\r\n this._updateElements(graphicModel);\r\n this._relocate(graphicModel, api);\r\n },\r\n _updateElements: function (graphicModel) {\r\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\r\n if (!elOptionsToUpdate) {\r\n return;\r\n }\r\n var elMap = this._elMap;\r\n var rootGroup = this.group;\r\n each(elOptionsToUpdate, function (elOption) {\r\n var $action = elOption.$action;\r\n var id = elOption.id;\r\n var existEl = elMap.get(id);\r\n var parentId = elOption.parentId;\r\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\r\n var elOptionStyle = elOption.style;\r\n if (elOption.type === 'text' && elOptionStyle) {\r\n if (elOption.hv && elOption.hv[1]) {\r\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;\r\n }\r\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\r\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\r\n }\r\n var elOptionCleaned = getCleanedElOption(elOption);\r\n if (__DEV__) {\r\n existEl && assert(targetElParent === existEl.parent, 'Changing parent is not supported.');\r\n }\r\n if (!$action || $action === 'merge') {\r\n existEl\r\n ? existEl.attr(elOptionCleaned)\r\n : createEl$1(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'replace') {\r\n removeEl(existEl, elMap);\r\n createEl$1(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'remove') {\r\n removeEl(existEl, elMap);\r\n }\r\n var el = elMap.get(id);\r\n if (el) {\r\n el.__ecGraphicWidthOption = elOption.width;\r\n el.__ecGraphicHeightOption = elOption.height;\r\n setEventData(el, graphicModel);\r\n }\r\n });\r\n },\r\n _relocate: function (graphicModel, api) {\r\n var elOptions = graphicModel.option.elements;\r\n var rootGroup = this.group;\r\n var elMap = this._elMap;\r\n var apiWidth = api.getWidth();\r\n var apiHeight = api.getHeight();\r\n for (var i = 0; i < elOptions.length; i++) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el || !el.isGroup) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var isParentRoot = parentEl === rootGroup;\r\n el.__ecGraphicWidth = parsePercent$2(el.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentEl.__ecGraphicWidth) || 0;\r\n el.__ecGraphicHeight = parsePercent$2(el.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentEl.__ecGraphicHeight) || 0;\r\n }\r\n for (var i = elOptions.length - 1; i >= 0; i--) {\r\n var elOption = elOptions[i];\r\n var el = elMap.get(elOption.id);\r\n if (!el) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var containerInfo = parentEl === rootGroup\r\n ? {\r\n width: apiWidth,\r\n height: apiHeight\r\n }\r\n : {\r\n width: parentEl.__ecGraphicWidth,\r\n height: parentEl.__ecGraphicHeight\r\n };\r\n positionElement(el, elOption, containerInfo, null, { hv: elOption.hv, boundingMode: elOption.bounding });\r\n }\r\n },\r\n _clear: function () {\r\n var elMap = this._elMap;\r\n elMap.each(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n this._elMap = createHashMap();\r\n },\r\n dispose: function () {\r\n this._clear();\r\n }\r\n });\r\n function createEl$1(id, targetElParent, elOption, elMap) {\r\n var graphicType = elOption.type;\r\n if (__DEV__) {\r\n assert(graphicType, 'graphic type MUST be set');\r\n }\r\n var Clz = _nonShapeGraphicElements.hasOwnProperty(graphicType)\r\n ? _nonShapeGraphicElements[graphicType]\r\n : getShapeClass(graphicType);\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type can not be found');\r\n }\r\n var el = new Clz(elOption);\r\n targetElParent.add(el);\r\n elMap.set(id, el);\r\n el.__ecGraphicId = id;\r\n }\r\n function removeEl(existEl, elMap) {\r\n var existElParent = existEl && existEl.parent;\r\n if (existElParent) {\r\n existEl.type === 'group' && existEl.traverse(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n elMap.removeKey(existEl.__ecGraphicId);\r\n existElParent.remove(existEl);\r\n }\r\n }\r\n function getCleanedElOption(elOption) {\r\n elOption = extend({}, elOption);\r\n each(['id', 'parentId', '$action', 'hv', 'bounding'].concat(LOCATION_PARAMS), function (name) {\r\n delete elOption[name];\r\n });\r\n return elOption;\r\n }\r\n function isSetLoc(obj, props) {\r\n var isSet;\r\n each(props, function (prop) {\r\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\r\n });\r\n return isSet;\r\n }\r\n function setKeyInfoToNewElOption(resultItem, newElOption) {\r\n var existElOption = resultItem.existing;\r\n newElOption.id = resultItem.keyInfo.id;\r\n !newElOption.type && existElOption && (newElOption.type = existElOption.type);\r\n if (newElOption.parentId == null) {\r\n var newElParentOption = newElOption.parentOption;\r\n if (newElParentOption) {\r\n newElOption.parentId = newElParentOption.id;\r\n }\r\n else if (existElOption) {\r\n newElOption.parentId = existElOption.parentId;\r\n }\r\n }\r\n newElOption.parentOption = null;\r\n }\r\n function mergeNewElOptionToExist(existList, index, newElOption) {\r\n var newElOptCopy = extend({}, newElOption);\r\n var existElOption = existList[index];\r\n var $action = newElOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n if (existElOption) {\r\n if (__DEV__) {\r\n var newType = newElOption.type;\r\n assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\r\n }\r\n merge(existElOption, newElOptCopy, true);\r\n mergeLayoutParam(existElOption, newElOptCopy, { ignoreSize: true });\r\n copyLayoutParams(newElOption, existElOption);\r\n }\r\n else {\r\n existList[index] = newElOptCopy;\r\n }\r\n }\r\n else if ($action === 'replace') {\r\n existList[index] = newElOptCopy;\r\n }\r\n else if ($action === 'remove') {\r\n existElOption && (existList[index] = null);\r\n }\r\n }\r\n function setLayoutInfoToExist(existItem, newElOption) {\r\n if (!existItem) {\r\n return;\r\n }\r\n existItem.hv = newElOption.hv = [\r\n isSetLoc(newElOption, ['left', 'right']),\r\n isSetLoc(newElOption, ['top', 'bottom'])\r\n ];\r\n if (existItem.type === 'group') {\r\n existItem.width == null && (existItem.width = newElOption.width = 0);\r\n existItem.height == null && (existItem.height = newElOption.height = 0);\r\n }\r\n }\r\n function setEventData(el, graphicModel, elOption) {\r\n var eventData = el.eventData;\r\n if (!el.silent && !el.ignore && !eventData) {\r\n eventData = el.eventData = {\r\n componentType: 'graphic',\r\n componentIndex: graphicModel.componentIndex,\r\n name: el.name\r\n };\r\n }\r\n if (eventData) {\r\n eventData.info = el.info;\r\n }\r\n }\n\n var ToolboxFeature = (function () {\r\n function ToolboxFeature() {\r\n }\r\n return ToolboxFeature;\r\n }());\r\n var features = {};\r\n function registerFeature(name, ctor) {\r\n features[name] = ctor;\r\n }\r\n function getFeature(name) {\r\n return features[name];\r\n }\n\n var ToolboxModel = (function (_super) {\r\n __extends(ToolboxModel, _super);\r\n function ToolboxModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ToolboxModel.type;\r\n return _this;\r\n }\r\n ToolboxModel.prototype.optionUpdated = function () {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n var ecModel = this.ecModel;\r\n each(this.option.feature, function (featureOpt, featureName) {\r\n var Feature = getFeature(featureName);\r\n if (Feature) {\r\n if (Feature.getDefaultOption) {\r\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\r\n }\r\n merge(featureOpt, Feature.defaultOption);\r\n }\r\n });\r\n };\r\n ToolboxModel.type = 'toolbox';\r\n ToolboxModel.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n ToolboxModel.defaultOption = {\r\n show: true,\r\n z: 6,\r\n zlevel: 0,\r\n orient: 'horizontal',\r\n left: 'right',\r\n top: 'top',\r\n backgroundColor: 'transparent',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemSize: 15,\r\n itemGap: 8,\r\n showTitle: true,\r\n iconStyle: {\r\n borderColor: '#666',\r\n color: 'none'\r\n },\r\n emphasis: {\r\n iconStyle: {\r\n borderColor: '#3E98C5'\r\n }\r\n },\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return ToolboxModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ToolboxModel);\n\n function layout$3(group, componentModel, api) {\r\n var boxLayoutParams = componentModel.getBoxLayoutParams();\r\n var padding = componentModel.get('padding');\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\r\n box(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\r\n positionElement(group, boxLayoutParams, viewportSize, padding);\r\n }\r\n function makeBackground(rect, componentModel) {\r\n var padding = normalizeCssArray$1(componentModel.get('padding'));\r\n var style = componentModel.getItemStyle(['color', 'opacity']);\r\n style.fill = componentModel.get('backgroundColor');\r\n rect = new Rect({\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[1] + padding[3],\r\n height: rect.height + padding[0] + padding[2],\r\n r: componentModel.get('borderRadius')\r\n },\r\n style: style,\r\n silent: true,\r\n z2: -1\r\n });\r\n return rect;\r\n }\n\n var ToolboxView = (function (_super) {\r\n __extends(ToolboxView, _super);\r\n function ToolboxView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n if (!toolboxModel.get('show')) {\r\n return;\r\n }\r\n var itemSize = +toolboxModel.get('itemSize');\r\n var featureOpts = toolboxModel.get('feature') || {};\r\n var features = this._features || (this._features = {});\r\n var featureNames = [];\r\n each(featureOpts, function (opt, name) {\r\n featureNames.push(name);\r\n });\r\n (new DataDiffer(this._featureNames || [], featureNames))\r\n .add(processFeature)\r\n .update(processFeature)\r\n .remove(curry(processFeature, null))\r\n .execute();\r\n this._featureNames = featureNames;\r\n function processFeature(newIndex, oldIndex) {\r\n var featureName = featureNames[newIndex];\r\n var oldName = featureNames[oldIndex];\r\n var featureOpt = featureOpts[featureName];\r\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\r\n var feature;\r\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\r\n featureOpt.title = payload.newTitle;\r\n }\r\n if (featureName && !oldName) {\r\n if (isUserFeatureName(featureName)) {\r\n feature = {\r\n onclick: featureModel.option.onclick,\r\n featureName: featureName\r\n };\r\n }\r\n else {\r\n var Feature = getFeature(featureName);\r\n if (!Feature) {\r\n return;\r\n }\r\n feature = new Feature();\r\n }\r\n features[featureName] = feature;\r\n }\r\n else {\r\n feature = features[oldName];\r\n if (!feature) {\r\n return;\r\n }\r\n }\r\n feature.uid = getUID('toolbox-feature');\r\n feature.model = featureModel;\r\n feature.ecModel = ecModel;\r\n feature.api = api;\r\n if (feature instanceof ToolboxFeature) {\r\n if (!featureName && oldName) {\r\n feature.dispose && feature.dispose(ecModel, api);\r\n return;\r\n }\r\n if (!featureModel.get('show') || feature.unusable) {\r\n feature.remove && feature.remove(ecModel, api);\r\n return;\r\n }\r\n }\r\n createIconPaths(featureModel, feature, featureName);\r\n featureModel.setIconStatus = function (iconName, status) {\r\n var option = this.option;\r\n var iconPaths = this.iconPaths;\r\n option.iconStatus = option.iconStatus || {};\r\n option.iconStatus[iconName] = status;\r\n if (iconPaths[iconName]) {\r\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\r\n }\r\n };\r\n if (feature instanceof ToolboxFeature) {\r\n if (feature.render) {\r\n feature.render(featureModel, ecModel, api, payload);\r\n }\r\n }\r\n }\r\n function createIconPaths(featureModel, feature, featureName) {\r\n var iconStyleModel = featureModel.getModel('iconStyle');\r\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\r\n var icons = (feature instanceof ToolboxFeature && feature.getIcons)\r\n ? feature.getIcons() : featureModel.get('icon');\r\n var titles = featureModel.get('title') || {};\r\n var iconsMap;\r\n var titlesMap;\r\n if (typeof icons === 'string') {\r\n iconsMap = {};\r\n iconsMap[featureName] = icons;\r\n }\r\n else {\r\n iconsMap = icons;\r\n }\r\n if (typeof titles === 'string') {\r\n titlesMap = {};\r\n titlesMap[featureName] = titles;\r\n }\r\n else {\r\n titlesMap = titles;\r\n }\r\n var iconPaths = featureModel.iconPaths = {};\r\n each(iconsMap, function (iconStr, iconName) {\r\n var path = createIcon(iconStr, {}, {\r\n x: -itemSize / 2,\r\n y: -itemSize / 2,\r\n width: itemSize,\r\n height: itemSize\r\n });\r\n path.setStyle(iconStyleModel.getItemStyle());\r\n var pathEmphasisState = path.ensureState('emphasis');\r\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\r\n var textContent = new ZRText({\r\n style: {\r\n text: titlesMap[iconName],\r\n align: iconStyleEmphasisModel.get('textAlign'),\r\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\r\n padding: iconStyleEmphasisModel.get('textPadding'),\r\n fill: null\r\n },\r\n ignore: true\r\n });\r\n path.setTextContent(textContent);\r\n var tooltipModel = toolboxModel.getModel('tooltip');\r\n if (tooltipModel && tooltipModel.get('show')) {\r\n path.tooltip = extend({\r\n content: titlesMap[iconName],\r\n formatter: tooltipModel.get('formatter', true)\r\n || function () {\r\n return titlesMap[iconName];\r\n },\r\n formatterParams: {\r\n componentType: 'toolbox',\r\n name: iconName,\r\n title: titlesMap[iconName],\r\n $vars: ['name', 'title']\r\n },\r\n position: tooltipModel.get('position', true) || 'bottom'\r\n }, tooltipModel.option);\r\n }\r\n path.__title = titlesMap[iconName];\r\n path.on('mouseover', function () {\r\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\r\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical'\r\n ? (toolboxModel.get('right') == null ? 'right' : 'left')\r\n : (toolboxModel.get('bottom') == null ? 'bottom' : 'top');\r\n textContent.setStyle({\r\n fill: (iconStyleEmphasisModel.get('textFill')\r\n || hoverStyle.fill || hoverStyle.stroke || '#000'),\r\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\r\n });\r\n path.setTextConfig({\r\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\r\n });\r\n textContent.ignore = !toolboxModel.get('showTitle');\r\n enterEmphasis(this);\r\n })\r\n .on('mouseout', function () {\r\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\r\n leaveEmphasis(this);\r\n }\r\n textContent.hide();\r\n });\r\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\r\n group.add(path);\r\n path.on('click', bind(feature.onclick, feature, ecModel, api, iconName));\r\n iconPaths[iconName] = path;\r\n });\r\n }\r\n layout$3(group, toolboxModel, api);\r\n group.add(makeBackground(group.getBoundingRect(), toolboxModel));\r\n group.eachChild(function (icon) {\r\n var titleText = icon.__title;\r\n var emphasisState = icon.ensureState('emphasis');\r\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\r\n var textContent = icon.getTextContent();\r\n var emphasisTextState = textContent && textContent.states.emphasis;\r\n if (emphasisTextState && !isFunction(emphasisTextState) && titleText) {\r\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\r\n var rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\r\n var offsetX = icon.x + group.x;\r\n var offsetY = icon.y + group.y + itemSize;\r\n var needPutOnTop = false;\r\n if (offsetY + rect.height > api.getHeight()) {\r\n emphasisTextConfig.position = 'top';\r\n needPutOnTop = true;\r\n }\r\n var topOffset = needPutOnTop ? (-5 - rect.height) : (itemSize + 8);\r\n if (offsetX + rect.width / 2 > api.getWidth()) {\r\n emphasisTextConfig.position = ['100%', topOffset];\r\n emphasisTextStyle.align = 'right';\r\n }\r\n else if (offsetX - rect.width / 2 < 0) {\r\n emphasisTextConfig.position = [0, topOffset];\r\n emphasisTextStyle.align = 'left';\r\n }\r\n }\r\n });\r\n };\r\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\r\n });\r\n };\r\n ToolboxView.prototype.remove = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.remove && feature.remove(ecModel, api);\r\n });\r\n this.group.removeAll();\r\n };\r\n ToolboxView.prototype.dispose = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.dispose && feature.dispose(ecModel, api);\r\n });\r\n };\r\n ToolboxView.type = 'toolbox';\r\n return ToolboxView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ToolboxView);\r\n function isUserFeatureName(featureName) {\r\n return featureName.indexOf('my') === 0;\r\n }\n\n var SaveAsImage = (function (_super) {\r\n __extends(SaveAsImage, _super);\r\n function SaveAsImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SaveAsImage.prototype.onclick = function (ecModel, api) {\r\n var model = this.model;\r\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\r\n var isSvg = api.getZr().painter.getType() === 'svg';\r\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\r\n var url = api.getConnectedDataURL({\r\n type: type,\r\n backgroundColor: model.get('backgroundColor', true)\r\n || ecModel.get('backgroundColor') || '#fff',\r\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\r\n excludeComponents: model.get('excludeComponents'),\r\n pixelRatio: model.get('pixelRatio')\r\n });\r\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\r\n var $a = document.createElement('a');\r\n $a.download = title + '.' + type;\r\n $a.target = '_blank';\r\n $a.href = url;\r\n var evt = new MouseEvent('click', {\r\n view: window,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n $a.dispatchEvent(evt);\r\n }\r\n else {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n var bstr = atob(url.split(',')[1]);\r\n var n = bstr.length;\r\n var u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var blob = new Blob([u8arr]);\r\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\r\n }\r\n else {\r\n var lang = model.get('lang');\r\n var html = ''\r\n + ''\r\n + ''\r\n + '';\r\n var tab = window.open();\r\n tab.document.write(html);\r\n }\r\n }\r\n };\r\n SaveAsImage.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\r\n title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\r\n type: 'png',\r\n connectedBackgroundColor: '#fff',\r\n name: '',\r\n excludeComponents: ['toolbox'],\r\n pixelRatio: 1,\r\n lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\r\n };\r\n return defaultOption;\r\n };\r\n return SaveAsImage;\r\n }(ToolboxFeature));\r\n SaveAsImage.prototype.unusable = !env.canvasSupported;\r\n registerFeature('saveAsImage', SaveAsImage);\n\n var INNER_STACK_KEYWORD = '__ec_magicType_stack__';\r\n var radioTypes = [\r\n ['line', 'bar'],\r\n ['stack']\r\n ];\r\n var MagicType = (function (_super) {\r\n __extends(MagicType, _super);\r\n function MagicType() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MagicType.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon');\r\n var icons = {};\r\n each(model.get('type'), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n MagicType.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: [],\r\n icon: {\r\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\r\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\r\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\r\n option: {},\r\n seriesIndex: {}\r\n };\r\n return defaultOption;\r\n };\r\n MagicType.prototype.onclick = function (ecModel, api, type) {\r\n var model = this.model;\r\n var seriesIndex = model.get(['seriesIndex', type]);\r\n if (!seriesOptGenreator[type]) {\r\n return;\r\n }\r\n var newOption = {\r\n series: []\r\n };\r\n var generateNewSeriesTypes = function (seriesModel) {\r\n var seriesType = seriesModel.subType;\r\n var seriesId = seriesModel.id;\r\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\r\n if (newSeriesOpt) {\r\n defaults(newSeriesOpt, seriesModel.option);\r\n newOption.series.push(newSeriesOpt);\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (categoryAxis) {\r\n var axisDim = categoryAxis.dim;\r\n var axisType = axisDim + 'Axis';\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n var axisIndex = axisModel.componentIndex;\r\n newOption[axisType] = newOption[axisType] || [];\r\n for (var i = 0; i <= axisIndex; i++) {\r\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\r\n }\r\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\r\n }\r\n }\r\n };\r\n each(radioTypes, function (radio) {\r\n if (indexOf(radio, type) >= 0) {\r\n each(radio, function (item) {\r\n model.setIconStatus(item, 'normal');\r\n });\r\n }\r\n });\r\n model.setIconStatus(type, 'emphasis');\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n query: seriesIndex == null ? null : {\r\n seriesIndex: seriesIndex\r\n }\r\n }, generateNewSeriesTypes);\r\n var newTitle;\r\n if (type === 'stack') {\r\n var seriesOptions = newOption.series;\r\n var tiledLang = ecModel.getLocale(['toolbox', 'magicType', 'title', 'tiled']);\r\n var titleLang = ecModel.getLocale(['toolbox', 'magicType', 'title']);\r\n var isStack = seriesOptions && seriesOptions[0]\r\n && seriesOptions[0].stack === INNER_STACK_KEYWORD;\r\n newTitle = isStack\r\n ? merge({ stack: tiledLang }, titleLang)\r\n : clone(titleLang);\r\n }\r\n api.dispatchAction({\r\n type: 'changeMagicType',\r\n currentType: type,\r\n newOption: newOption,\r\n newTitle: newTitle,\r\n featureName: 'magicType'\r\n });\r\n };\r\n return MagicType;\r\n }(ToolboxFeature));\r\n var seriesOptGenreator = {\r\n 'line': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'bar') {\r\n return merge({\r\n id: seriesId,\r\n type: 'line',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'line']) || {}, true);\r\n }\r\n },\r\n 'bar': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'line') {\r\n return merge({\r\n id: seriesId,\r\n type: 'bar',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'bar']) || {}, true);\r\n }\r\n },\r\n 'stack': function (seriesType, seriesId, seriesModel, model) {\r\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\r\n if (seriesType === 'line' || seriesType === 'bar') {\r\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\r\n return merge({\r\n id: seriesId,\r\n stack: isStack ? '' : INNER_STACK_KEYWORD\r\n }, model.get(['option', 'stack']) || {}, true);\r\n }\r\n }\r\n };\r\n registerAction({\r\n type: 'changeMagicType',\r\n event: 'magicTypeChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n ecModel.mergeOption(payload.newOption);\r\n });\r\n registerFeature('magicType', MagicType);\n\n var BLOCK_SPLITER = new Array(60).join('-');\r\n var ITEM_SPLITER = '\\t';\r\n function groupSeries(ecModel) {\r\n var seriesGroupByCategoryAxis = {};\r\n var otherSeries = [];\r\n var meta = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n if (baseAxis.type === 'category') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n if (!seriesGroupByCategoryAxis[key]) {\r\n seriesGroupByCategoryAxis[key] = {\r\n categoryAxis: baseAxis,\r\n valueAxis: coordSys.getOtherAxis(baseAxis),\r\n series: []\r\n };\r\n meta.push({\r\n axisDim: baseAxis.dim,\r\n axisIndex: baseAxis.index\r\n });\r\n }\r\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n });\r\n return {\r\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\r\n other: otherSeries,\r\n meta: meta\r\n };\r\n }\r\n function assembleSeriesWithCategoryAxis(groups) {\r\n var tables = [];\r\n each(groups, function (group, key) {\r\n var categoryAxis = group.categoryAxis;\r\n var valueAxis = group.valueAxis;\r\n var valueAxisDim = valueAxis.dim;\r\n var headers = [' '].concat(map(group.series, function (series) {\r\n return series.name;\r\n }));\r\n var columns = [categoryAxis.model.getCategories()];\r\n each(group.series, function (series) {\r\n columns.push(series.getRawData().mapArray(valueAxisDim, function (val) {\r\n return val;\r\n }));\r\n });\r\n var lines = [headers.join(ITEM_SPLITER)];\r\n for (var i = 0; i < columns[0].length; i++) {\r\n var items = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n items.push(columns[j][i]);\r\n }\r\n lines.push(items.join(ITEM_SPLITER));\r\n }\r\n tables.push(lines.join('\\n'));\r\n });\r\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function assembleOtherSeries(series) {\r\n return map(series, function (series) {\r\n var data = series.getRawData();\r\n var lines = [series.name];\r\n var vals = [];\r\n data.each(data.dimensions, function () {\r\n var argLen = arguments.length;\r\n var dataIndex = arguments[argLen - 1];\r\n var name = data.getName(dataIndex);\r\n for (var i = 0; i < argLen - 1; i++) {\r\n vals[i] = arguments[i];\r\n }\r\n lines.push((name ? (name + ITEM_SPLITER) : '') + vals.join(ITEM_SPLITER));\r\n });\r\n return lines.join('\\n');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function getContentFromModel(ecModel) {\r\n var result = groupSeries(ecModel);\r\n return {\r\n value: filter([\r\n assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis),\r\n assembleOtherSeries(result.other)\r\n ], function (str) {\r\n return !!str.replace(/[\\n\\t\\s]/g, '');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\r\n meta: result.meta\r\n };\r\n }\r\n function trim$1(str) {\r\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n }\r\n function isTSVFormat(block) {\r\n var firstLine = block.slice(0, block.indexOf('\\n'));\r\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\r\n return true;\r\n }\r\n }\r\n var itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\r\n function parseTSVContents(tsv) {\r\n var tsvLines = tsv.split(/\\n+/g);\r\n var headers = trim$1(tsvLines.shift()).split(itemSplitRegex);\r\n var categories = [];\r\n var series = map(headers, function (header) {\r\n return {\r\n name: header,\r\n data: []\r\n };\r\n });\r\n for (var i = 0; i < tsvLines.length; i++) {\r\n var items = trim$1(tsvLines[i]).split(itemSplitRegex);\r\n categories.push(items.shift());\r\n for (var j = 0; j < items.length; j++) {\r\n series[j] && (series[j].data[i] = items[j]);\r\n }\r\n }\r\n return {\r\n series: series,\r\n categories: categories\r\n };\r\n }\r\n function parseListContents(str) {\r\n var lines = str.split(/\\n+/g);\r\n var seriesName = trim$1(lines.shift());\r\n var data = [];\r\n for (var i = 0; i < lines.length; i++) {\r\n var items = trim$1(lines[i]).split(itemSplitRegex);\r\n var name_1 = '';\r\n var value = void 0;\r\n var hasName = false;\r\n if (isNaN(items[0])) {\r\n hasName = true;\r\n name_1 = items[0];\r\n items = items.slice(1);\r\n data[i] = {\r\n name: name_1,\r\n value: []\r\n };\r\n value = data[i].value;\r\n }\r\n else {\r\n value = data[i] = [];\r\n }\r\n for (var j = 0; j < items.length; j++) {\r\n value.push(+items[j]);\r\n }\r\n if (value.length === 1) {\r\n hasName ? (data[i].value = value[0]) : (data[i] = value[0]);\r\n }\r\n }\r\n return {\r\n name: seriesName,\r\n data: data\r\n };\r\n }\r\n function parseContents(str, blockMetaList) {\r\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\r\n var newOption = {\r\n series: []\r\n };\r\n each(blocks, function (block, idx) {\r\n if (isTSVFormat(block)) {\r\n var result = parseTSVContents(block);\r\n var blockMeta = blockMetaList[idx];\r\n var axisKey = blockMeta.axisDim + 'Axis';\r\n if (blockMeta) {\r\n newOption[axisKey] = newOption[axisKey] || [];\r\n newOption[axisKey][blockMeta.axisIndex] = {\r\n data: result.categories\r\n };\r\n newOption.series = newOption.series.concat(result.series);\r\n }\r\n }\r\n else {\r\n var result = parseListContents(block);\r\n newOption.series.push(result);\r\n }\r\n });\r\n return newOption;\r\n }\r\n var DataView = (function (_super) {\r\n __extends(DataView, _super);\r\n function DataView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataView.prototype.onclick = function (ecModel, api) {\r\n var container = api.getDom();\r\n var model = this.model;\r\n if (this._dom) {\r\n container.removeChild(this._dom);\r\n }\r\n var root = document.createElement('div');\r\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\r\n root.style.backgroundColor = model.get('backgroundColor') || '#fff';\r\n var header = document.createElement('h4');\r\n var lang = model.get('lang') || [];\r\n header.innerHTML = lang[0] || model.get('title');\r\n header.style.cssText = 'margin: 10px 20px;';\r\n header.style.color = model.get('textColor');\r\n var viewMain = document.createElement('div');\r\n var textarea = document.createElement('textarea');\r\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\r\n var optionToContent = model.get('optionToContent');\r\n var contentToOption = model.get('contentToOption');\r\n var result = getContentFromModel(ecModel);\r\n if (typeof optionToContent === 'function') {\r\n var htmlOrDom = optionToContent(api.getOption());\r\n if (typeof htmlOrDom === 'string') {\r\n viewMain.innerHTML = htmlOrDom;\r\n }\r\n else if (isDom(htmlOrDom)) {\r\n viewMain.appendChild(htmlOrDom);\r\n }\r\n }\r\n else {\r\n viewMain.appendChild(textarea);\r\n textarea.readOnly = model.get('readOnly');\r\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\r\n textarea.style.color = model.get('textColor');\r\n textarea.style.borderColor = model.get('textareaBorderColor');\r\n textarea.style.backgroundColor = model.get('textareaColor');\r\n textarea.value = result.value;\r\n }\r\n var blockMetaList = result.meta;\r\n var buttonContainer = document.createElement('div');\r\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\r\n var buttonStyle = 'float:right;margin-right:20px;border:none;'\r\n + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\r\n var closeButton = document.createElement('div');\r\n var refreshButton = document.createElement('div');\r\n buttonStyle += ';background-color:' + model.get('buttonColor');\r\n buttonStyle += ';color:' + model.get('buttonTextColor');\r\n var self = this;\r\n function close() {\r\n container.removeChild(root);\r\n self._dom = null;\r\n }\r\n addEventListener(closeButton, 'click', close);\r\n addEventListener(refreshButton, 'click', function () {\r\n var newOption;\r\n try {\r\n if (typeof contentToOption === 'function') {\r\n newOption = contentToOption(viewMain, api.getOption());\r\n }\r\n else {\r\n newOption = parseContents(textarea.value, blockMetaList);\r\n }\r\n }\r\n catch (e) {\r\n close();\r\n throw new Error('Data view format error ' + e);\r\n }\r\n if (newOption) {\r\n api.dispatchAction({\r\n type: 'changeDataView',\r\n newOption: newOption\r\n });\r\n }\r\n close();\r\n });\r\n closeButton.innerHTML = lang[1];\r\n refreshButton.innerHTML = lang[2];\r\n refreshButton.style.cssText = buttonStyle;\r\n closeButton.style.cssText = buttonStyle;\r\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\r\n buttonContainer.appendChild(closeButton);\r\n root.appendChild(header);\r\n root.appendChild(viewMain);\r\n root.appendChild(buttonContainer);\r\n viewMain.style.height = (container.clientHeight - 80) + 'px';\r\n container.appendChild(root);\r\n this._dom = root;\r\n };\r\n DataView.prototype.remove = function (ecModel, api) {\r\n this._dom && api.getDom().removeChild(this._dom);\r\n };\r\n DataView.prototype.dispose = function (ecModel, api) {\r\n this.remove(ecModel, api);\r\n };\r\n DataView.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n readOnly: false,\r\n optionToContent: null,\r\n contentToOption: null,\r\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\r\n title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\r\n lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\r\n backgroundColor: '#fff',\r\n textColor: '#000',\r\n textareaColor: '#fff',\r\n textareaBorderColor: '#333',\r\n buttonColor: '#c23531',\r\n buttonTextColor: '#fff'\r\n };\r\n return defaultOption;\r\n };\r\n return DataView;\r\n }(ToolboxFeature));\r\n function tryMergeDataOption(newData, originalData) {\r\n return map(newData, function (newVal, idx) {\r\n var original = originalData && originalData[idx];\r\n if (isObject(original) && !isArray(original)) {\r\n if (isObject(newVal) && !isArray(newVal)) {\r\n newVal = newVal.value;\r\n }\r\n return defaults({\r\n value: newVal\r\n }, original);\r\n }\r\n else {\r\n return newVal;\r\n }\r\n });\r\n }\r\n registerFeature('dataView', DataView);\r\n registerAction({\r\n type: 'changeDataView',\r\n event: 'dataViewChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n var newSeriesOptList = [];\r\n each(payload.newOption.series, function (seriesOpt) {\r\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\r\n if (!seriesModel) {\r\n newSeriesOptList.push(extend({\r\n type: 'scatter'\r\n }, seriesOpt));\r\n }\r\n else {\r\n var originalData = seriesModel.get('data');\r\n newSeriesOptList.push({\r\n name: seriesOpt.name,\r\n data: tryMergeDataOption(seriesOpt.data, originalData)\r\n });\r\n }\r\n });\r\n ecModel.mergeOption(defaults({\r\n series: newSeriesOptList\r\n }, payload.newOption));\r\n });\n\n var COORD_CONVERTS = ['dataToPoint', 'pointToData'];\r\n var INCLUDE_FINDER_MAIN_TYPES = [\r\n 'grid', 'xAxis', 'yAxis', 'geo', 'graph',\r\n 'polar', 'radiusAxis', 'angleAxis', 'bmap'\r\n ];\r\n var BrushTargetManager = (function () {\r\n function BrushTargetManager(finder, ecModel, opt) {\r\n var _this = this;\r\n this._targetInfoList = [];\r\n var foundCpts = parseFinder$1(ecModel, finder);\r\n each(targetInfoBuilders, function (builder, type) {\r\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\r\n builder(foundCpts, _this._targetInfoList);\r\n }\r\n });\r\n }\r\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\r\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n (area.coordRanges || (area.coordRanges = [])).push(coordRange);\r\n if (!area.coordRange) {\r\n area.coordRange = coordRange;\r\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\r\n area.__rangeOffset = {\r\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\r\n xyMinMax: result.xyMinMax\r\n };\r\n }\r\n });\r\n return areas;\r\n };\r\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (targetInfo && targetInfo !== true) {\r\n each(targetInfo.coordSyses, function (coordSys) {\r\n var result = coordConvert[area.brushType](1, coordSys, area.range);\r\n cb(area, result.values, coordSys, ecModel);\r\n });\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (__DEV__) {\r\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\r\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\r\n }\r\n area.range = area.range || [];\r\n if (targetInfo && targetInfo !== true) {\r\n area.panelId = targetInfo.panelId;\r\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\r\n var rangeOffset = area.__rangeOffset;\r\n area.range = rangeOffset\r\n ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax))\r\n : result.values;\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\r\n return map(this._targetInfoList, function (targetInfo) {\r\n var rect = targetInfo.getPanelRect();\r\n return {\r\n panelId: targetInfo.panelId,\r\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect)\r\n };\r\n });\r\n };\r\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n return targetInfo === true || (targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0);\r\n };\r\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\r\n var targetInfoList = this._targetInfoList;\r\n var foundCpts = parseFinder$1(ecModel, area);\r\n for (var i = 0; i < targetInfoList.length; i++) {\r\n var targetInfo = targetInfoList[i];\r\n var areaPanelId = area.panelId;\r\n if (areaPanelId) {\r\n if (targetInfo.panelId === areaPanelId) {\r\n return targetInfo;\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < targetInfoMatchers.length; j++) {\r\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\r\n return targetInfo;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return BrushTargetManager;\r\n }());\r\n function formatMinMax(minMax) {\r\n minMax[0] > minMax[1] && minMax.reverse();\r\n return minMax;\r\n }\r\n function parseFinder$1(ecModel, finder) {\r\n return parseFinder(ecModel, finder, { includeMainTypes: INCLUDE_FINDER_MAIN_TYPES });\r\n }\r\n var targetInfoBuilders = {\r\n grid: function (foundCpts, targetInfoList) {\r\n var xAxisModels = foundCpts.xAxisModels;\r\n var yAxisModels = foundCpts.yAxisModels;\r\n var gridModels = foundCpts.gridModels;\r\n var gridModelMap = createHashMap();\r\n var xAxesHas = {};\r\n var yAxesHas = {};\r\n if (!xAxisModels && !yAxisModels && !gridModels) {\r\n return;\r\n }\r\n each(xAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n });\r\n each(yAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n each(gridModels, function (gridModel) {\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n gridModelMap.each(function (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n var cartesians = [];\r\n each(grid.getCartesians(), function (cartesian, index) {\r\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0\r\n || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\r\n cartesians.push(cartesian);\r\n }\r\n });\r\n targetInfoList.push({\r\n panelId: 'grid--' + gridModel.id,\r\n gridModel: gridModel,\r\n coordSysModel: gridModel,\r\n coordSys: cartesians[0],\r\n coordSyses: cartesians,\r\n getPanelRect: panelRectBuilders.grid,\r\n xAxisDeclared: xAxesHas[gridModel.id],\r\n yAxisDeclared: yAxesHas[gridModel.id]\r\n });\r\n });\r\n },\r\n geo: function (foundCpts, targetInfoList) {\r\n each(foundCpts.geoModels, function (geoModel) {\r\n var coordSys = geoModel.coordinateSystem;\r\n targetInfoList.push({\r\n panelId: 'geo--' + geoModel.id,\r\n geoModel: geoModel,\r\n coordSysModel: geoModel,\r\n coordSys: coordSys,\r\n coordSyses: [coordSys],\r\n getPanelRect: panelRectBuilders.geo\r\n });\r\n });\r\n }\r\n };\r\n var targetInfoMatchers = [\r\n function (foundCpts, targetInfo) {\r\n var xAxisModel = foundCpts.xAxisModel;\r\n var yAxisModel = foundCpts.yAxisModel;\r\n var gridModel = foundCpts.gridModel;\r\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\r\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\r\n return gridModel && gridModel === targetInfo.gridModel;\r\n },\r\n function (foundCpts, targetInfo) {\r\n var geoModel = foundCpts.geoModel;\r\n return geoModel && geoModel === targetInfo.geoModel;\r\n }\r\n ];\r\n var panelRectBuilders = {\r\n grid: function () {\r\n return this.coordSys.master.getRect().clone();\r\n },\r\n geo: function () {\r\n var coordSys = this.coordSys;\r\n var rect = coordSys.getBoundingRect().clone();\r\n rect.applyTransform(getTransform(coordSys));\r\n return rect;\r\n }\r\n };\r\n var coordConvert = {\r\n lineX: curry(axisConvert, 0),\r\n lineY: curry(axisConvert, 1),\r\n rect: function (to, coordSys, rangeOrCoordRange) {\r\n var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\r\n var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\r\n var values = [\r\n formatMinMax([xminymin[0], xmaxymax[0]]),\r\n formatMinMax([xminymin[1], xmaxymax[1]])\r\n ];\r\n return { values: values, xyMinMax: values };\r\n },\r\n polygon: function (to, coordSys, rangeOrCoordRange) {\r\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var values = map(rangeOrCoordRange, function (item) {\r\n var p = coordSys[COORD_CONVERTS[to]](item);\r\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\r\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\r\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\r\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\r\n return p;\r\n });\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n };\r\n function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\r\n if (__DEV__) {\r\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\r\n }\r\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\r\n var values = formatMinMax(map([0, 1], function (i) {\r\n return to\r\n ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]))\r\n : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\r\n }));\r\n var xyMinMax = [];\r\n xyMinMax[axisNameIndex] = values;\r\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n var diffProcessor = {\r\n lineX: curry(axisDiffProcessor, 0),\r\n lineY: curry(axisDiffProcessor, 1),\r\n rect: function (values, refer, scales) {\r\n return [\r\n [values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]],\r\n [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]\r\n ];\r\n },\r\n polygon: function (values, refer, scales) {\r\n return map(values, function (item, idx) {\r\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\r\n });\r\n }\r\n };\r\n function axisDiffProcessor(axisNameIndex, values, refer, scales) {\r\n return [\r\n values[0] - scales[axisNameIndex] * refer[0],\r\n values[1] - scales[axisNameIndex] * refer[1]\r\n ];\r\n }\r\n function getScales(xyMinMaxCurr, xyMinMaxOrigin) {\r\n var sizeCurr = getSize(xyMinMaxCurr);\r\n var sizeOrigin = getSize(xyMinMaxOrigin);\r\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\r\n isNaN(scales[0]) && (scales[0] = 1);\r\n isNaN(scales[1]) && (scales[1] = 1);\r\n return scales;\r\n }\r\n function getSize(xyMinMax) {\r\n return xyMinMax\r\n ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]]\r\n : [NaN, NaN];\r\n }\n\n var each$9 = each;\r\n var inner$h = makeInner();\r\n function push(ecModel, newSnapshot) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n each$9(newSnapshot, function (batchItem, dataZoomId) {\r\n var i = storedSnapshots.length - 1;\r\n for (; i >= 0; i--) {\r\n var snapshot = storedSnapshots[i];\r\n if (snapshot[dataZoomId]) {\r\n break;\r\n }\r\n }\r\n if (i < 0) {\r\n var dataZoomModel = ecModel.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId })[0];\r\n if (dataZoomModel) {\r\n var percentRange = dataZoomModel.getPercentRange();\r\n storedSnapshots[0][dataZoomId] = {\r\n dataZoomId: dataZoomId,\r\n start: percentRange[0],\r\n end: percentRange[1]\r\n };\r\n }\r\n }\r\n });\r\n storedSnapshots.push(newSnapshot);\r\n }\r\n function pop(ecModel) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n var head = storedSnapshots[storedSnapshots.length - 1];\r\n storedSnapshots.length > 1 && storedSnapshots.pop();\r\n var snapshot = {};\r\n each$9(head, function (batchItem, dataZoomId) {\r\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\r\n batchItem = storedSnapshots[i][dataZoomId];\r\n if (batchItem) {\r\n snapshot[dataZoomId] = batchItem;\r\n break;\r\n }\r\n }\r\n });\r\n return snapshot;\r\n }\r\n function clear$1(ecModel) {\r\n inner$h(ecModel).snapshots = null;\r\n }\r\n function count(ecModel) {\r\n return getStoreSnapshots(ecModel).length;\r\n }\r\n function getStoreSnapshots(ecModel) {\r\n var store = inner$h(ecModel);\r\n if (!store.snapshots) {\r\n store.snapshots = [{}];\r\n }\r\n return store.snapshots;\r\n }\n\n ComponentModel.registerSubTypeDefaulter('dataZoom', function () {\r\n return 'slider';\r\n });\n\n var DATA_ZOOM_AXIS_DIMENSIONS = [\r\n 'x', 'y', 'radius', 'angle', 'single'\r\n ];\r\n var SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\r\n function isCoordSupported(seriesModel) {\r\n var coordType = seriesModel.get('coordinateSystem');\r\n return indexOf(SERIES_COORDS, coordType) >= 0;\r\n }\r\n function getAxisMainType(axisDim) {\r\n if (__DEV__) {\r\n assert(axisDim);\r\n }\r\n return axisDim + 'Axis';\r\n }\r\n function findEffectedDataZooms(ecModel, payload) {\r\n var axisRecords = createHashMap();\r\n var effectedModels = [];\r\n var effectedModelMap = createHashMap();\r\n ecModel.eachComponent({ mainType: 'dataZoom', query: payload }, function (dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid)) {\r\n addToEffected(dataZoomModel);\r\n }\r\n });\r\n var foundNewLink;\r\n do {\r\n foundNewLink = false;\r\n ecModel.eachComponent('dataZoom', processSingle);\r\n } while (foundNewLink);\r\n function processSingle(dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\r\n addToEffected(dataZoomModel);\r\n foundNewLink = true;\r\n }\r\n }\r\n function addToEffected(dataZoom) {\r\n effectedModelMap.set(dataZoom.uid, true);\r\n effectedModels.push(dataZoom);\r\n markAxisControlled(dataZoom);\r\n }\r\n function isLinked(dataZoomModel) {\r\n var isLink = false;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisIdxArr = axisRecords.get(axisDim);\r\n if (axisIdxArr && axisIdxArr[axisIndex]) {\r\n isLink = true;\r\n }\r\n });\r\n return isLink;\r\n }\r\n function markAxisControlled(dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\r\n });\r\n }\r\n return effectedModels;\r\n }\r\n function collectReferCoordSysModelInfo(dataZoomModel) {\r\n var ecModel = dataZoomModel.ecModel;\r\n var coordSysInfoWrap = {\r\n infoList: [],\r\n infoMap: createHashMap()\r\n };\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n if (!axisModel) {\r\n return;\r\n }\r\n var coordSysModel = axisModel.getCoordSysModel();\r\n if (!coordSysModel) {\r\n return;\r\n }\r\n var coordSysUid = coordSysModel.uid;\r\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\r\n if (!coordSysInfo) {\r\n coordSysInfo = { model: coordSysModel, axisModels: [] };\r\n coordSysInfoWrap.infoList.push(coordSysInfo);\r\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\r\n }\r\n coordSysInfo.axisModels.push(axisModel);\r\n });\r\n return coordSysInfoWrap;\r\n }\n\n var DataZoomAxisInfo = (function () {\r\n function DataZoomAxisInfo() {\r\n this.indexList = [];\r\n this.indexMap = [];\r\n }\r\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\r\n this.indexList.push(axisCmptIdx);\r\n this.indexMap[axisCmptIdx] = true;\r\n };\r\n return DataZoomAxisInfo;\r\n }());\r\n var DataZoomModel = (function (_super) {\r\n __extends(DataZoomModel, _super);\r\n function DataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomModel.type;\r\n _this._autoThrottle = true;\r\n _this._noTarget = true;\r\n _this._rangePropMode = ['percent', 'percent'];\r\n return _this;\r\n }\r\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputRawOption = retrieveRawOption(option);\r\n this.settledOption = inputRawOption;\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype.mergeOption = function (newOption) {\r\n var inputRawOption = retrieveRawOption(newOption);\r\n merge(this.option, newOption, true);\r\n merge(this.settledOption, inputRawOption, true);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype._doInit = function (inputRawOption) {\r\n var thisOption = this.option;\r\n if (!env.canvasSupported) {\r\n thisOption.realtime = false;\r\n }\r\n this._setDefaultThrottle(inputRawOption);\r\n this._updateRangeUse(inputRawOption);\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n if (this._rangePropMode[index] === 'value') {\r\n thisOption[names[0]] = settledOption[names[0]] = null;\r\n }\r\n }, this);\r\n this._resetTarget();\r\n };\r\n DataZoomModel.prototype._resetTarget = function () {\r\n var optionOrient = this.get('orient', true);\r\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\r\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\r\n if (hasAxisSpecified) {\r\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\r\n }\r\n else {\r\n this._orient = optionOrient || 'horizontal';\r\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\r\n }\r\n this._noTarget = true;\r\n targetAxisIndexMap.each(function (axisInfo) {\r\n if (axisInfo.indexList.length) {\r\n this._noTarget = false;\r\n }\r\n }, this);\r\n };\r\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\r\n var hasAxisSpecified = false;\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\r\n if (!refering.specified) {\r\n return;\r\n }\r\n hasAxisSpecified = true;\r\n var axisInfo = new DataZoomAxisInfo();\r\n each(refering.models, function (axisModel) {\r\n axisInfo.add(axisModel.componentIndex);\r\n });\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }, this);\r\n return hasAxisSpecified;\r\n };\r\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\r\n var ecModel = this.ecModel;\r\n var needAuto = true;\r\n if (needAuto) {\r\n var axisDim = orient === 'vertical' ? 'y' : 'x';\r\n var axisModels = ecModel.findComponents({ mainType: axisDim + 'Axis' });\r\n setParallelAxis(axisModels, axisDim);\r\n }\r\n if (needAuto) {\r\n var axisModels = ecModel.findComponents({\r\n mainType: 'singleAxis',\r\n filter: function (axisModel) { return axisModel.get('orient', true) === orient; }\r\n });\r\n setParallelAxis(axisModels, 'single');\r\n }\r\n function setParallelAxis(axisModels, axisDim) {\r\n var axisModel = axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModel.componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n if (axisDim === 'x' || axisDim === 'y') {\r\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n gridModel_1 && each(axisModels, function (axModel) {\r\n if (axisModel.componentIndex !== axModel.componentIndex\r\n && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\r\n axisInfo.add(axModel.componentIndex);\r\n }\r\n });\r\n }\r\n }\r\n if (needAuto) {\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n if (needAuto) {\r\n return;\r\n }\r\n var axisModels = ecModel.findComponents({\r\n mainType: getAxisMainType(axisDim),\r\n filter: function (axisModel) { return axisModel.get('type', true) === 'category'; }\r\n });\r\n if (axisModels[0]) {\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModels[0].componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }\r\n }, this);\r\n }\r\n };\r\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\r\n var dim;\r\n this.eachTargetAxis(function (axisDim) {\r\n !dim && (dim = axisDim);\r\n }, this);\r\n return dim === 'y' ? 'vertical' : 'horizontal';\r\n };\r\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\r\n if (inputRawOption.hasOwnProperty('throttle')) {\r\n this._autoThrottle = false;\r\n }\r\n if (this._autoThrottle) {\r\n var globalOption = this.ecModel.option;\r\n this.option.throttle = (globalOption.animation && globalOption.animationDurationUpdate > 0) ? 100 : 20;\r\n }\r\n };\r\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\r\n var rangePropMode = this._rangePropMode;\r\n var rangeModeInOption = this.get('rangeMode');\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n var percentSpecified = inputRawOption[names[0]] != null;\r\n var valueSpecified = inputRawOption[names[1]] != null;\r\n if (percentSpecified && !valueSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n else if (!percentSpecified && valueSpecified) {\r\n rangePropMode[index] = 'value';\r\n }\r\n else if (rangeModeInOption) {\r\n rangePropMode[index] = rangeModeInOption[index];\r\n }\r\n else if (percentSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n });\r\n };\r\n DataZoomModel.prototype.noTarget = function () {\r\n return this._noTarget;\r\n };\r\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\r\n var firstAxisModel;\r\n this.eachTargetAxis(function (axisDim, axisIndex) {\r\n if (firstAxisModel == null) {\r\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n }, this);\r\n return firstAxisModel;\r\n };\r\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\r\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\r\n each(axisInfo.indexList, function (axisIndex) {\r\n callback.call(context, axisDim, axisIndex);\r\n });\r\n });\r\n };\r\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\r\n var axisModel = this.getAxisModel(axisDim, axisIndex);\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n };\r\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\r\n if (__DEV__) {\r\n assert(axisDim && axisIndex != null);\r\n }\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\r\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n };\r\n DataZoomModel.prototype.setRawRange = function (opt) {\r\n var thisOption = this.option;\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\r\n if (opt[names[0]] != null || opt[names[1]] != null) {\r\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\r\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\r\n }\r\n }, this);\r\n this._updateRangeUse(opt);\r\n };\r\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\r\n var option = this.option;\r\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\r\n option[name] = opt[name];\r\n });\r\n };\r\n DataZoomModel.prototype.getPercentRange = function () {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataPercentWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\r\n if (axisDim == null && axisIndex == null) {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataValueWindow();\r\n }\r\n }\r\n else {\r\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n var firstProxy;\r\n var axisDimList = this._targetAxisInfoMap.keys();\r\n for (var i = 0; i < axisDimList.length; i++) {\r\n var axisDim = axisDimList[i];\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n for (var j = 0; j < axisInfo.indexList.length; j++) {\r\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\r\n if (proxy.hostedBy(this)) {\r\n return proxy;\r\n }\r\n if (!firstProxy) {\r\n firstProxy = proxy;\r\n }\r\n }\r\n }\r\n return firstProxy;\r\n };\r\n DataZoomModel.prototype.getRangePropMode = function () {\r\n return this._rangePropMode.slice();\r\n };\r\n DataZoomModel.prototype.getOrient = function () {\r\n if (__DEV__) {\r\n assert(this._orient);\r\n }\r\n return this._orient;\r\n };\r\n DataZoomModel.type = 'dataZoom';\r\n DataZoomModel.dependencies = [\r\n 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'\r\n ];\r\n DataZoomModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n filterMode: 'filter',\r\n start: 0,\r\n end: 100\r\n };\r\n return DataZoomModel;\r\n }(ComponentModel));\r\n function retrieveRawOption(option) {\r\n var ret = {};\r\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\r\n option.hasOwnProperty(name) && (ret[name] = option[name]);\r\n });\r\n return ret;\r\n }\n\n var DataZoomView = (function (_super) {\r\n __extends(DataZoomView, _super);\r\n function DataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomView.type;\r\n return _this;\r\n }\r\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n this.dataZoomModel = dataZoomModel;\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n DataZoomView.type = 'dataZoom';\r\n return DataZoomView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DataZoomView);\n\n var SelectDataZoomModel = (function (_super) {\r\n __extends(SelectDataZoomModel, _super);\r\n function SelectDataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomModel.type;\r\n return _this;\r\n }\r\n SelectDataZoomModel.type = 'dataZoom.select';\r\n return SelectDataZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SelectDataZoomModel);\n\n var SelectDataZoomView = (function (_super) {\r\n __extends(SelectDataZoomView, _super);\r\n function SelectDataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomView.type;\r\n return _this;\r\n }\r\n SelectDataZoomView.type = 'dataZoom.select';\r\n return SelectDataZoomView;\r\n }(DataZoomView));\r\n ComponentView.registerClass(SelectDataZoomView);\n\n var each$a = each;\r\n var asc$1 = asc;\r\n var AxisProxy = (function () {\r\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\r\n this._dimName = dimName;\r\n this._axisIndex = axisIndex;\r\n this.ecModel = ecModel;\r\n this._dataZoomModel = dataZoomModel;\r\n }\r\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\r\n return this._dataZoomModel === dataZoomModel;\r\n };\r\n AxisProxy.prototype.getDataValueWindow = function () {\r\n return this._valueWindow.slice();\r\n };\r\n AxisProxy.prototype.getDataPercentWindow = function () {\r\n return this._percentWindow.slice();\r\n };\r\n AxisProxy.prototype.getTargetSeriesModels = function () {\r\n var seriesModels = [];\r\n this.ecModel.eachSeries(function (seriesModel) {\r\n if (isCoordSupported(seriesModel)) {\r\n var axisMainType = getAxisMainType(this._dimName);\r\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\r\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\r\n seriesModels.push(seriesModel);\r\n }\r\n }\r\n }, this);\r\n return seriesModels;\r\n };\r\n AxisProxy.prototype.getAxisModel = function () {\r\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\r\n };\r\n AxisProxy.prototype.getMinMaxSpan = function () {\r\n return clone(this._minMaxSpan);\r\n };\r\n AxisProxy.prototype.calculateDataWindow = function (opt) {\r\n var dataExtent = this._dataExtent;\r\n var axisModel = this.getAxisModel();\r\n var scale = axisModel.axis.scale;\r\n var rangePropMode = this._dataZoomModel.getRangePropMode();\r\n var percentExtent = [0, 100];\r\n var percentWindow = [];\r\n var valueWindow = [];\r\n var hasPropModeValue;\r\n each$a(['start', 'end'], function (prop, idx) {\r\n var boundPercent = opt[prop];\r\n var boundValue = opt[prop + 'Value'];\r\n if (rangePropMode[idx] === 'percent') {\r\n boundPercent == null && (boundPercent = percentExtent[idx]);\r\n boundValue = scale.parse(linearMap(boundPercent, percentExtent, dataExtent));\r\n }\r\n else {\r\n hasPropModeValue = true;\r\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\r\n boundPercent = linearMap(boundValue, dataExtent, percentExtent);\r\n }\r\n valueWindow[idx] = boundValue;\r\n percentWindow[idx] = boundPercent;\r\n });\r\n asc$1(valueWindow);\r\n asc$1(percentWindow);\r\n var spans = this._minMaxSpan;\r\n hasPropModeValue\r\n ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false)\r\n : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\r\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\r\n var suffix = toValue ? 'Span' : 'ValueSpan';\r\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\r\n for (var i = 0; i < 2; i++) {\r\n toWindow[i] = linearMap(fromWindow[i], fromExtent, toExtent, true);\r\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\r\n }\r\n }\r\n return {\r\n valueWindow: valueWindow,\r\n percentWindow: percentWindow\r\n };\r\n };\r\n AxisProxy.prototype.reset = function (dataZoomModel) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var targetSeries = this.getTargetSeriesModels();\r\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\r\n this._updateMinMaxSpan();\r\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\r\n this._valueWindow = dataWindow.valueWindow;\r\n this._percentWindow = dataWindow.percentWindow;\r\n this._setAxisModel();\r\n };\r\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var axisDim = this._dimName;\r\n var seriesModels = this.getTargetSeriesModels();\r\n var filterMode = dataZoomModel.get('filterMode');\r\n var valueWindow = this._valueWindow;\r\n if (filterMode === 'none') {\r\n return;\r\n }\r\n each$a(seriesModels, function (seriesModel) {\r\n var seriesData = seriesModel.getData();\r\n var dataDims = seriesData.mapDimensionsAll(axisDim);\r\n if (!dataDims.length) {\r\n return;\r\n }\r\n if (filterMode === 'weakFilter') {\r\n seriesData.filterSelf(function (dataIndex) {\r\n var leftOut;\r\n var rightOut;\r\n var hasValue;\r\n for (var i = 0; i < dataDims.length; i++) {\r\n var value = seriesData.get(dataDims[i], dataIndex);\r\n var thisHasValue = !isNaN(value);\r\n var thisLeftOut = value < valueWindow[0];\r\n var thisRightOut = value > valueWindow[1];\r\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\r\n return true;\r\n }\r\n thisHasValue && (hasValue = true);\r\n thisLeftOut && (leftOut = true);\r\n thisRightOut && (rightOut = true);\r\n }\r\n return hasValue && leftOut && rightOut;\r\n });\r\n }\r\n else {\r\n each$a(dataDims, function (dim) {\r\n if (filterMode === 'empty') {\r\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\r\n return !isInWindow(value) ? NaN : value;\r\n }));\r\n }\r\n else {\r\n var range = {};\r\n range[dim] = valueWindow;\r\n seriesData.selectRange(range);\r\n }\r\n });\r\n }\r\n each$a(dataDims, function (dim) {\r\n seriesData.setApproximateExtent(valueWindow, dim);\r\n });\r\n });\r\n function isInWindow(value) {\r\n return value >= valueWindow[0] && value <= valueWindow[1];\r\n }\r\n };\r\n AxisProxy.prototype._updateMinMaxSpan = function () {\r\n var minMaxSpan = this._minMaxSpan = {};\r\n var dataZoomModel = this._dataZoomModel;\r\n var dataExtent = this._dataExtent;\r\n each$a(['min', 'max'], function (minMax) {\r\n var percentSpan = dataZoomModel.get(minMax + 'Span');\r\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\r\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\r\n if (valueSpan != null) {\r\n percentSpan = linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\r\n }\r\n else if (percentSpan != null) {\r\n valueSpan = linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\r\n }\r\n minMaxSpan[minMax + 'Span'] = percentSpan;\r\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\r\n }, this);\r\n };\r\n AxisProxy.prototype._setAxisModel = function () {\r\n var axisModel = this.getAxisModel();\r\n var percentWindow = this._percentWindow;\r\n var valueWindow = this._valueWindow;\r\n if (!percentWindow) {\r\n return;\r\n }\r\n var precision = getPixelPrecision(valueWindow, [0, 500]);\r\n precision = Math.min(precision, 20);\r\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\r\n if (percentWindow[0] !== 0) {\r\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\r\n }\r\n if (percentWindow[1] !== 100) {\r\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\r\n }\r\n rawExtentInfo.freeze();\r\n };\r\n return AxisProxy;\r\n }());\r\n function calculateDataExtent(axisProxy, axisDim, seriesModels) {\r\n var dataExtent = [Infinity, -Infinity];\r\n each$a(seriesModels, function (seriesModel) {\r\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\r\n });\r\n var axisModel = axisProxy.getAxisModel();\r\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\r\n return [rawExtentResult.min, rawExtentResult.max];\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER, {\r\n getTargetSeries: function (ecModel) {\r\n function eachAxisModel(cb) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\r\n });\r\n });\r\n }\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n axisModel.__dzAxisProxy = null;\r\n });\r\n var proxyList = [];\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n if (!axisModel.__dzAxisProxy) {\r\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\r\n proxyList.push(axisModel.__dzAxisProxy);\r\n }\r\n });\r\n var seriesModelMap = createHashMap();\r\n each(proxyList, function (axisProxy) {\r\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\r\n seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\r\n });\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\r\n });\r\n });\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var percentRange = axisProxy.getDataPercentWindow();\r\n var valueRange = axisProxy.getDataValueWindow();\r\n dataZoomModel.setCalculatedRange({\r\n start: percentRange[0],\r\n end: percentRange[1],\r\n startValue: valueRange[0],\r\n endValue: valueRange[1]\r\n });\r\n }\r\n });\r\n }\r\n });\n\n registerAction('dataZoom', function (payload, ecModel) {\r\n var effectedModels = findEffectedDataZooms(ecModel, payload);\r\n each(effectedModels, function (dataZoomModel) {\r\n dataZoomModel.setRawRange({\r\n start: payload.start,\r\n end: payload.end,\r\n startValue: payload.startValue,\r\n endValue: payload.endValue\r\n });\r\n });\r\n });\n\n var each$b = each;\r\n var DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\r\n var DataZoomFeature = (function (_super) {\r\n __extends(DataZoomFeature, _super);\r\n function DataZoomFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\r\n if (!this.brushController) {\r\n this.brushController = new BrushController(api.getZr());\r\n this.brushController.on('brush', bind(this._onBrush, this))\r\n .mount();\r\n }\r\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\r\n updateBackBtnStatus(featureModel, ecModel);\r\n };\r\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\r\n handlers$1[type].call(this);\r\n };\r\n DataZoomFeature.prototype.remove = function (ecModel, api) {\r\n this.brushController.unmount();\r\n };\r\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\r\n this.brushController.dispose();\r\n };\r\n DataZoomFeature.prototype._onBrush = function (eventParam) {\r\n var areas = eventParam.areas;\r\n if (!eventParam.isEnd || !areas.length) {\r\n return;\r\n }\r\n var snapshot = {};\r\n var ecModel = this.ecModel;\r\n this.brushController.updateCovers([]);\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, { include: ['grid'] });\r\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n if (coordSys.type !== 'cartesian2d') {\r\n return;\r\n }\r\n var brushType = area.brushType;\r\n if (brushType === 'rect') {\r\n setBatch('x', coordSys, coordRange[0]);\r\n setBatch('y', coordSys, coordRange[1]);\r\n }\r\n else {\r\n setBatch({ lineX: 'x', lineY: 'y' }[brushType], coordSys, coordRange);\r\n }\r\n });\r\n push(ecModel, snapshot);\r\n this._dispatchZoomAction(snapshot);\r\n function setBatch(dimName, coordSys, minMax) {\r\n var axis = coordSys.getAxis(dimName);\r\n var axisModel = axis.model;\r\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\r\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\r\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\r\n }\r\n dataZoomModel && (snapshot[dataZoomModel.id] = {\r\n dataZoomId: dataZoomModel.id,\r\n startValue: minMax[0],\r\n endValue: minMax[1]\r\n });\r\n }\r\n function findDataZoom(dimName, axisModel, ecModel) {\r\n var found;\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (dzModel) {\r\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\r\n has && (found = dzModel);\r\n });\r\n return found;\r\n }\r\n };\r\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\r\n var batch = [];\r\n each$b(snapshot, function (batchItem, dataZoomId) {\r\n batch.push(clone(batchItem));\r\n });\r\n batch.length && this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n batch: batch\r\n });\r\n };\r\n DataZoomFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n filterMode: 'filter',\r\n icon: {\r\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\r\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'dataZoom', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return DataZoomFeature;\r\n }(ToolboxFeature));\r\n var handlers$1 = {\r\n zoom: function () {\r\n var nextActive = !this.isZoomActive;\r\n this.api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'dataZoomSelect',\r\n dataZoomSelectActive: nextActive\r\n });\r\n },\r\n back: function () {\r\n this._dispatchZoomAction(pop(this.ecModel));\r\n }\r\n };\r\n function makeAxisFinder(dzFeatureModel) {\r\n var setting = {\r\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\r\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\r\n xAxisId: dzFeatureModel.get('xAxisId', true),\r\n yAxisId: dzFeatureModel.get('yAxisId', true)\r\n };\r\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\r\n setting.xAxisIndex = 'all';\r\n }\r\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\r\n setting.yAxisIndex = 'all';\r\n }\r\n return setting;\r\n }\r\n function updateBackBtnStatus(featureModel, ecModel) {\r\n featureModel.setIconStatus('back', count(ecModel) > 1 ? 'emphasis' : 'normal');\r\n }\r\n function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\r\n var zoomActive = view.isZoomActive;\r\n if (payload && payload.type === 'takeGlobalCursor') {\r\n zoomActive = payload.key === 'dataZoomSelect'\r\n ? payload.dataZoomSelectActive : false;\r\n }\r\n view.isZoomActive = zoomActive;\r\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, { include: ['grid'] });\r\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\r\n return (targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared)\r\n ? 'lineX'\r\n : (!targetInfo.xAxisDeclared && targetInfo.yAxisDeclared)\r\n ? 'lineY'\r\n : 'rect';\r\n });\r\n view.brushController\r\n .setPanels(panels)\r\n .enableBrush((zoomActive && panels.length)\r\n ? {\r\n brushType: 'auto',\r\n brushStyle: {\r\n lineWidth: 0,\r\n fill: 'rgba(210,219,238,0.2)'\r\n }\r\n }\r\n : false);\r\n }\r\n registerFeature('dataZoom', DataZoomFeature);\r\n registerInternalOptionCreator('dataZoom', function (ecModel) {\r\n var toolboxModel = ecModel.getComponent('toolbox', 0);\r\n if (!toolboxModel) {\r\n return;\r\n }\r\n var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\r\n var dzOptions = [];\r\n var finder = makeAxisFinder(dzFeatureModel);\r\n var finderResult = parseFinder(ecModel, finder);\r\n each$b(finderResult.xAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex'); });\r\n each$b(finderResult.yAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex'); });\r\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\r\n var axisIndex = axisModel.componentIndex;\r\n var newOpt = {\r\n type: 'select',\r\n $fromToolbox: true,\r\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\r\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\r\n };\r\n newOpt[axisIndexPropName] = axisIndex;\r\n dzOptions.push(newOpt);\r\n }\r\n return dzOptions;\r\n });\n\n var RestoreOption = (function (_super) {\r\n __extends(RestoreOption, _super);\r\n function RestoreOption() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RestoreOption.prototype.onclick = function (ecModel, api) {\r\n clear$1(ecModel);\r\n api.dispatchAction({\r\n type: 'restore',\r\n from: this.uid\r\n });\r\n };\r\n RestoreOption.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\r\n title: ecModel.getLocale(['toolbox', 'restore', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return RestoreOption;\r\n }(ToolboxFeature));\r\n registerFeature('restore', RestoreOption);\r\n registerAction({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n ecModel.resetOption('recreate');\r\n });\n\n var TooltipModel = (function (_super) {\r\n __extends(TooltipModel, _super);\r\n function TooltipModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipModel.type;\r\n return _this;\r\n }\r\n TooltipModel.type = 'tooltip';\r\n TooltipModel.dependencies = ['axisPointer'];\r\n TooltipModel.defaultOption = {\r\n zlevel: 0,\r\n z: 60,\r\n show: true,\r\n showContent: true,\r\n trigger: 'item',\r\n triggerOn: 'mousemove|click',\r\n alwaysShowContent: false,\r\n displayMode: 'single',\r\n renderMode: 'auto',\r\n confine: false,\r\n showDelay: 0,\r\n hideDelay: 100,\r\n transitionDuration: 0.4,\r\n enterable: false,\r\n backgroundColor: '#fff',\r\n shadowBlur: 10,\r\n shadowColor: 'rgba(0, 0, 0, .2)',\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 2,\r\n borderColor: '#333',\r\n borderRadius: 4,\r\n borderWidth: 1,\r\n padding: 10,\r\n extraCssText: '',\r\n axisPointer: {\r\n type: 'line',\r\n axis: 'auto',\r\n animation: 'auto',\r\n animationDurationUpdate: 200,\r\n animationEasingUpdate: 'exponentialOut',\r\n crossStyle: {\r\n color: '#999',\r\n width: 1,\r\n type: 'dashed',\r\n textStyle: {}\r\n }\r\n },\r\n textStyle: {\r\n color: '#666',\r\n fontSize: 14\r\n }\r\n };\r\n return TooltipModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TooltipModel);\n\n var each$c = each;\r\n var toCamelCase$1 = toCamelCase;\r\n var vendors = ['', '-webkit-', '-moz-', '-o-'];\r\n var gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\r\n function mirrowPos(pos) {\r\n pos = pos === 'left'\r\n ? 'right'\r\n : pos === 'right'\r\n ? 'left'\r\n : pos === 'top'\r\n ? 'bottom'\r\n : 'top';\r\n return pos;\r\n }\r\n function getFinalColor(color) {\r\n var finalNearPointColor = '#fff';\r\n if (isObject(color) && color.type !== 'pattern') {\r\n finalNearPointColor = color.colorStops[0].color;\r\n }\r\n else if (isObject(color) && (color.type === 'pattern')) {\r\n finalNearPointColor = 'transparent';\r\n }\r\n else if (isString(color)) {\r\n finalNearPointColor = color;\r\n }\r\n return finalNearPointColor;\r\n }\r\n function assembleArrow(backgroundColor, borderColor, arrowPosition) {\r\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\r\n return '';\r\n }\r\n borderColor = getFinalColor(borderColor);\r\n var arrowPos = mirrowPos(arrowPosition);\r\n var centerPos = '';\r\n var rotate = 0;\r\n if (indexOf(['left', 'right'], arrowPos) > -1) {\r\n centerPos = arrowPos + \":-6px;top:50%;transform:translateY(-50%)\";\r\n rotate = arrowPos === 'left' ? -225 : -45;\r\n }\r\n else {\r\n centerPos = arrowPos + \":-6px;left:50%;transform:translateX(-50%)\";\r\n rotate = arrowPos === 'top' ? 225 : 45;\r\n }\r\n var styleCss = [\r\n 'style=\"position:absolute;width:10px;height:10px;',\r\n \"\" + centerPos,\r\n \"rotate(\" + rotate + \"deg);\",\r\n \"border-bottom: \" + borderColor + \" solid 1px;\",\r\n \"border-right: \" + borderColor + \" solid 1px;\",\r\n \"background-color: \" + backgroundColor + \";\",\r\n 'box-shadow: 8px 8px 16px -3px #000',\r\n '\"'\r\n ];\r\n return \"
\";\r\n }\r\n function assembleTransition(duration) {\r\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\r\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ','\r\n + 'top ' + duration + 's ' + transitionCurve;\r\n return map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transition:' + transitionText;\r\n }).join(';');\r\n }\r\n function assembleFont(textStyleModel) {\r\n var cssText = [];\r\n var fontSize = textStyleModel.get('fontSize');\r\n var color = textStyleModel.getTextColor();\r\n color && cssText.push('color:' + color);\r\n cssText.push('font:' + textStyleModel.getFont());\r\n fontSize\r\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\r\n each$c(['decoration', 'align'], function (name) {\r\n var val = textStyleModel.get(name);\r\n val && cssText.push('text-' + name + ':' + val);\r\n });\r\n return cssText.join(';');\r\n }\r\n function assembleCssText(tooltipModel, isFirstShow) {\r\n var cssText = [];\r\n var transitionDuration = tooltipModel.get('transitionDuration');\r\n var backgroundColor = tooltipModel.get('backgroundColor');\r\n var shadowBlur = tooltipModel.get('shadowBlur');\r\n var shadowColor = tooltipModel.get('shadowColor');\r\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\r\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n var padding = tooltipModel.get('padding');\r\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\r\n cssText.push('box-shadow:' + boxShadow);\r\n !isFirstShow && transitionDuration\r\n && indexOf(['top', 'left', 'bottom', 'right'], tooltipModel.get('position')) > -1\r\n && tooltipModel.get('trigger') !== 'item'\r\n && cssText.push(assembleTransition(transitionDuration));\r\n if (backgroundColor) {\r\n if (env.canvasSupported) {\r\n cssText.push('background-Color:' + backgroundColor);\r\n }\r\n else {\r\n cssText.push('background-Color:#' + toHex(backgroundColor));\r\n cssText.push('filter:alpha(opacity=70)');\r\n }\r\n }\r\n each$c(['width', 'color', 'radius'], function (name) {\r\n var borderName = 'border-' + name;\r\n var camelCase = toCamelCase$1(borderName);\r\n var val = tooltipModel.get(camelCase);\r\n val != null\r\n && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\r\n });\r\n cssText.push(assembleFont(textStyleModel));\r\n if (padding != null) {\r\n cssText.push('padding:' + normalizeCssArray$1(padding).join('px ') + 'px');\r\n }\r\n return cssText.join(';') + ';';\r\n }\r\n function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\r\n var zrPainter = zr && zr.painter;\r\n if (appendToBody) {\r\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\r\n if (zrViewportRoot) {\r\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\r\n }\r\n }\r\n else {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\r\n if (viewportRootOffset) {\r\n out[0] += viewportRootOffset.offsetLeft;\r\n out[1] += viewportRootOffset.offsetTop;\r\n }\r\n }\r\n }\r\n var TooltipHTMLContent = (function () {\r\n function TooltipHTMLContent(container, api, opt) {\r\n this._show = false;\r\n this._styleCoord = [0, 0];\r\n this._enterable = true;\r\n this._firstShow = true;\r\n if (env.wxa) {\r\n return null;\r\n }\r\n var el = document.createElement('div');\r\n el.domBelongToZr = true;\r\n this.el = el;\r\n var zr = this._zr = api.getZr();\r\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\r\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\r\n if (appendToBody) {\r\n document.body.appendChild(el);\r\n }\r\n else {\r\n container.appendChild(el);\r\n }\r\n this._container = container;\r\n var self = this;\r\n el.onmouseenter = function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n };\r\n el.onmousemove = function (e) {\r\n e = e || window.event;\r\n if (!self._enterable) {\r\n var handler = zr.handler;\r\n var zrViewportRoot = zr.painter.getViewportRoot();\r\n normalizeEvent(zrViewportRoot, e, true);\r\n handler.dispatch('mousemove', e);\r\n }\r\n };\r\n el.onmouseleave = function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n };\r\n }\r\n TooltipHTMLContent.prototype.update = function () {\r\n var container = this._container;\r\n var stl = container.currentStyle\r\n || document.defaultView.getComputedStyle(container);\r\n var domStyle = container.style;\r\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\r\n domStyle.position = 'relative';\r\n }\r\n };\r\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\r\n clearTimeout(this._hideTimeout);\r\n var el = this.el;\r\n var styleCoord = this._styleCoord;\r\n var offset = el.offsetHeight / 2;\r\n nearPointColor = getFinalColor(nearPointColor);\r\n el.style.cssText = gCssText + assembleCssText(tooltipModel, this._firstShow)\r\n + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;'\r\n + (\"border-color: \" + nearPointColor + \";\")\r\n + (tooltipModel.get('extraCssText') || '');\r\n el.style.display = el.innerHTML ? 'block' : 'none';\r\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\r\n this._show = true;\r\n this._firstShow = false;\r\n };\r\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\r\n if (content == null) {\r\n return;\r\n }\r\n this.el.innerHTML = content;\r\n this.el.innerHTML += (isString(arrowPosition)\r\n && tooltipModel.get('trigger') === 'item'\r\n && !tooltipModel.get('confine'))\r\n ? assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition) : '';\r\n };\r\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipHTMLContent.prototype.getSize = function () {\r\n var el = this.el;\r\n return [el.clientWidth, el.clientHeight];\r\n };\r\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\r\n var style = this.el.style;\r\n style.left = styleCoord[0] + 'px';\r\n style.top = styleCoord[1] + 'px';\r\n };\r\n TooltipHTMLContent.prototype.hide = function () {\r\n this.el.style.display = 'none';\r\n this._show = false;\r\n };\r\n TooltipHTMLContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipHTMLContent.prototype.dispose = function () {\r\n this.el.parentNode.removeChild(this.el);\r\n };\r\n TooltipHTMLContent.prototype.getOuterSize = function () {\r\n var width = this.el.clientWidth;\r\n var height = this.el.clientHeight;\r\n if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var stl = document.defaultView.getComputedStyle(this.el);\r\n if (stl) {\r\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\r\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\r\n }\r\n }\r\n return { width: width, height: height };\r\n };\r\n return TooltipHTMLContent;\r\n }());\n\n var TooltipRichContent = (function () {\r\n function TooltipRichContent(api) {\r\n this._show = false;\r\n this._enterable = true;\r\n this._zr = api.getZr();\r\n }\r\n TooltipRichContent.prototype.update = function () {\r\n };\r\n TooltipRichContent.prototype.show = function () {\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n }\r\n this.el.show();\r\n this._show = true;\r\n };\r\n TooltipRichContent.prototype.setContent = function (content, markerRich, tooltipModel, borderColor, arrowPosition) {\r\n if (this.el) {\r\n this._zr.remove(this.el);\r\n }\r\n var markers = {};\r\n var text = content;\r\n var prefix = '{marker';\r\n var suffix = '|}';\r\n var startId = text.indexOf(prefix);\r\n while (startId >= 0) {\r\n var endId = text.indexOf(suffix);\r\n var name_1 = text.substr(startId + prefix.length, endId - startId - prefix.length);\r\n if (name_1.indexOf('sub') > -1) {\r\n markers['marker' + name_1] = {\r\n width: 4,\r\n height: 4,\r\n borderRadius: 2,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n else {\r\n markers['marker' + name_1] = {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 5,\r\n backgroundColor: markerRich[name_1]\r\n };\r\n }\r\n text = text.substr(endId + 1);\r\n startId = text.indexOf(prefix);\r\n }\r\n this.el = new ZRText({\r\n style: {\r\n rich: markers,\r\n text: content,\r\n lineHeight: 20,\r\n backgroundColor: tooltipModel.get('backgroundColor'),\r\n borderRadius: tooltipModel.get('borderRadius'),\r\n borderWidth: 1,\r\n borderColor: borderColor,\r\n shadowColor: tooltipModel.get('shadowColor'),\r\n shadowBlur: tooltipModel.get('shadowBlur'),\r\n shadowOffsetX: tooltipModel.get('shadowOffsetX'),\r\n shadowOffsetY: tooltipModel.get('shadowOffsetY'),\r\n fill: tooltipModel.get(['textStyle', 'color']),\r\n padding: tooltipModel.get('padding'),\r\n verticalAlign: 'middle',\r\n align: 'left'\r\n },\r\n z: tooltipModel.get('z')\r\n });\r\n this._zr.add(this.el);\r\n var self = this;\r\n this.el.on('mouseover', function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n });\r\n this.el.on('mouseout', function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n });\r\n };\r\n TooltipRichContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipRichContent.prototype.getSize = function () {\r\n var bounding = this.el.getBoundingRect();\r\n return [bounding.width, bounding.height];\r\n };\r\n TooltipRichContent.prototype.moveTo = function (x, y) {\r\n var el = this.el;\r\n if (el) {\r\n el.x = x;\r\n el.y = y;\r\n el.markRedraw();\r\n }\r\n };\r\n TooltipRichContent.prototype.hide = function () {\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n this._show = false;\r\n };\r\n TooltipRichContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipRichContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipRichContent.prototype.getOuterSize = function () {\r\n var size = this.getSize();\r\n return {\r\n width: size[0],\r\n height: size[1]\r\n };\r\n };\r\n TooltipRichContent.prototype.dispose = function () {\r\n this._zr.remove(this.el);\r\n };\r\n return TooltipRichContent;\r\n }());\n\n var bind$2 = bind;\r\n var each$d = each;\r\n var parsePercent$3 = parsePercent$2;\r\n var proxyRect = new Rect({\r\n shape: { x: -1, y: -1, width: 2, height: 2 }\r\n });\r\n var TooltipView = (function (_super) {\r\n __extends(TooltipView, _super);\r\n function TooltipView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipView.type;\r\n return _this;\r\n }\r\n TooltipView.prototype.init = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var tooltipModel = ecModel.getComponent('tooltip');\r\n var renderMode = tooltipModel.get('renderMode');\r\n this._renderMode = getTooltipRenderMode(renderMode);\r\n var tooltipContent;\r\n if (this._renderMode === 'html') {\r\n tooltipContent = new TooltipHTMLContent(api.getDom(), api, {\r\n appendToBody: tooltipModel.get('appendToBody', true)\r\n });\r\n this._newLine = '';\r\n }\r\n else {\r\n tooltipContent = new TooltipRichContent(api);\r\n this._newLine = '\\n';\r\n }\r\n this._tooltipContent = tooltipContent;\r\n };\r\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this.group.removeAll();\r\n this._tooltipModel = tooltipModel;\r\n this._ecModel = ecModel;\r\n this._api = api;\r\n this._lastDataByCoordSys = null;\r\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n var tooltipContent = this._tooltipContent;\r\n tooltipContent.update();\r\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\r\n this._initGlobalListener();\r\n this._keepShow();\r\n };\r\n TooltipView.prototype._initGlobalListener = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var triggerOn = tooltipModel.get('triggerOn');\r\n register('itemTooltip', this._api, bind$2(function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none') {\r\n if (triggerOn.indexOf(currTrigger) >= 0) {\r\n this._tryShow(e, dispatchAction);\r\n }\r\n else if (currTrigger === 'leave') {\r\n this._hide(dispatchAction);\r\n }\r\n }\r\n }, this));\r\n };\r\n TooltipView.prototype._keepShow = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var ecModel = this._ecModel;\r\n var api = this._api;\r\n if (this._lastX != null\r\n && this._lastY != null\r\n && tooltipModel.get('triggerOn') !== 'none') {\r\n var self_1 = this;\r\n clearTimeout(this._refreshUpdateTimeout);\r\n this._refreshUpdateTimeout = setTimeout(function () {\r\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\r\n x: self_1._lastX,\r\n y: self_1._lastY\r\n });\r\n });\r\n }\r\n };\r\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\r\n if (payload.from === this.uid || env.node) {\r\n return;\r\n }\r\n var dispatchAction = makeDispatchAction$1(payload, api);\r\n this._ticket = '';\r\n var dataByCoordSys = payload.dataByCoordSys;\r\n if (payload.tooltip && payload.x != null && payload.y != null) {\r\n var el = proxyRect;\r\n el.x = payload.x;\r\n el.y = payload.y;\r\n el.update();\r\n el.tooltip = payload.tooltip;\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n target: el\r\n }, dispatchAction);\r\n }\r\n else if (dataByCoordSys) {\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n dataByCoordSys: dataByCoordSys,\r\n tooltipOption: payload.tooltipOption\r\n }, dispatchAction);\r\n }\r\n else if (payload.seriesIndex != null) {\r\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\r\n return;\r\n }\r\n var pointInfo = findPointFromSeries(payload, ecModel);\r\n var cx = pointInfo.point[0];\r\n var cy = pointInfo.point[1];\r\n if (cx != null && cy != null) {\r\n this._tryShow({\r\n offsetX: cx,\r\n offsetY: cy,\r\n position: payload.position,\r\n target: pointInfo.el\r\n }, dispatchAction);\r\n }\r\n }\r\n else if (payload.x != null && payload.y != null) {\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payload.x,\r\n y: payload.y\r\n });\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n target: api.getZr().findHover(payload.x, payload.y).target\r\n }, dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\r\n var tooltipContent = this._tooltipContent;\r\n if (!this._alwaysShowContent && this._tooltipModel) {\r\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\r\n }\r\n this._lastX = this._lastY = null;\r\n if (payload.from !== this.uid) {\r\n this._hide(makeDispatchAction$1(payload, api));\r\n }\r\n };\r\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\r\n var seriesIndex = payload.seriesIndex;\r\n var dataIndex = payload.dataIndex;\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\r\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (!seriesModel) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var tooltipCascadedModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n seriesModel,\r\n (seriesModel.coordinateSystem || {}).model,\r\n tooltipModel\r\n ]);\r\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\r\n return;\r\n }\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n seriesIndex: seriesIndex,\r\n dataIndex: dataIndex,\r\n position: payload.position\r\n });\r\n return true;\r\n };\r\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\r\n var el = e.target;\r\n var tooltipModel = this._tooltipModel;\r\n if (!tooltipModel) {\r\n return;\r\n }\r\n this._lastX = e.offsetX;\r\n this._lastY = e.offsetY;\r\n var dataByCoordSys = e.dataByCoordSys;\r\n if (dataByCoordSys && dataByCoordSys.length) {\r\n this._showAxisTooltip(dataByCoordSys, e);\r\n }\r\n else if (el && getECData(el).dataIndex != null) {\r\n this._lastDataByCoordSys = null;\r\n this._showSeriesItemTooltip(e, el, dispatchAction);\r\n }\r\n else if (el && el.tooltip) {\r\n this._lastDataByCoordSys = null;\r\n this._showComponentItemTooltip(e, el, dispatchAction);\r\n }\r\n else {\r\n this._lastDataByCoordSys = null;\r\n this._hide(dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\r\n var delay = tooltipModel.get('showDelay');\r\n cb = bind(cb, this);\r\n clearTimeout(this._showTimout);\r\n delay > 0\r\n ? (this._showTimout = setTimeout(cb, delay))\r\n : cb();\r\n };\r\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\r\n var ecModel = this._ecModel;\r\n var globalTooltipModel = this._tooltipModel;\r\n var point = [e.offsetX, e.offsetY];\r\n var singleDefaultHTML = [];\r\n var singleParamsList = [];\r\n var singleTooltipModel = buildTooltipModel([\r\n e.tooltipOption,\r\n globalTooltipModel\r\n ]);\r\n var renderMode = this._renderMode;\r\n var newLine = this._newLine;\r\n var markers = {};\r\n each$d(dataByCoordSys, function (itemCoordSys) {\r\n each$d(itemCoordSys.dataByAxis, function (item) {\r\n var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex);\r\n var axisValue = item.value;\r\n var seriesDefaultHTML = [];\r\n if (!axisModel || axisValue == null) {\r\n return;\r\n }\r\n var valueLabel = getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt);\r\n each(item.seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams.axisDim = item.axisDim;\r\n dataParams.axisIndex = item.axisIndex;\r\n dataParams.axisType = item.axisType;\r\n dataParams.axisId = item.axisId;\r\n dataParams.axisValue = getAxisRawValue(axisModel.axis, { value: axisValue });\r\n dataParams.axisValueLabel = valueLabel;\r\n dataParams.marker = getTooltipMarker({\r\n color: dataParams.color,\r\n renderMode: renderMode\r\n });\r\n singleParamsList.push(dataParams);\r\n var seriesTooltip = series.formatTooltip(dataIndex, true, null, renderMode);\r\n var html;\r\n if (isObject(seriesTooltip)) {\r\n html = seriesTooltip.html;\r\n var newMarkers = seriesTooltip.markers;\r\n merge(markers, newMarkers);\r\n }\r\n else {\r\n html = seriesTooltip;\r\n }\r\n dataParams.html = html;\r\n });\r\n switch (singleTooltipModel.get('order')) {\r\n case 'valueAsc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(a.data) - +(b.data);\r\n });\r\n break;\r\n case 'valueDesc':\r\n singleParamsList.sort(function (a, b) {\r\n return +(b.data) - +(a.data);\r\n });\r\n break;\r\n case 'seriesDesc':\r\n singleParamsList.reverse();\r\n break;\r\n }\r\n each(singleParamsList, function (params) {\r\n seriesDefaultHTML.push(params.html);\r\n delete params.html;\r\n });\r\n var firstLine = valueLabel;\r\n if (renderMode !== 'html') {\r\n singleDefaultHTML.push(seriesDefaultHTML.join(newLine));\r\n }\r\n else {\r\n singleDefaultHTML.push((firstLine\r\n ? ('
'\r\n + encodeHTML(firstLine) + '
'\r\n + newLine)\r\n : '')\r\n + seriesDefaultHTML.reverse().join(newLine));\r\n }\r\n singleDefaultHTML.push('
');\r\n });\r\n }, this);\r\n singleDefaultHTML.pop();\r\n var singleDefaultHTMLStr = singleDefaultHTML.join(this._newLine + this._newLine);\r\n var positionExpr = e.position;\r\n this._showOrMove(singleTooltipModel, function () {\r\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\r\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList);\r\n }\r\n else {\r\n this._showTooltipContent(singleTooltipModel, singleDefaultHTMLStr, singleParamsList, Math.random() + '', point[0], point[1], positionExpr, undefined, markers);\r\n }\r\n });\r\n };\r\n TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\r\n var ecModel = this._ecModel;\r\n var ecData = getECData(el);\r\n var seriesIndex = ecData.seriesIndex;\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n var dataModel = ecData.dataModel || seriesModel;\r\n var dataIndex = ecData.dataIndex;\r\n var dataType = ecData.dataType;\r\n var data = dataModel.getData(dataType);\r\n var tooltipModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n dataModel,\r\n seriesModel && (seriesModel.coordinateSystem || {}).model,\r\n this._tooltipModel\r\n ]);\r\n var tooltipTrigger = tooltipModel.get('trigger');\r\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\r\n return;\r\n }\r\n var tooltipOrder = tooltipModel.get('order');\r\n var params = dataModel.getDataParams(dataIndex, dataType);\r\n params.marker = getTooltipMarker({\r\n color: params.color,\r\n renderMode: this._renderMode\r\n });\r\n var seriesTooltip = dataModel.formatTooltip(dataIndex, false, dataType, this._renderMode, tooltipOrder);\r\n var defaultHtml;\r\n var markers;\r\n if (isObject(seriesTooltip)) {\r\n defaultHtml = seriesTooltip.html;\r\n markers = seriesTooltip.markers;\r\n }\r\n else {\r\n defaultHtml = seriesTooltip;\r\n markers = null;\r\n }\r\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\r\n this._showOrMove(tooltipModel, function () {\r\n this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markers);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n dataIndexInside: dataIndex,\r\n dataIndex: data.getRawIndex(dataIndex),\r\n seriesIndex: seriesIndex,\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\r\n var tooltipOpt = el.tooltip;\r\n if (isString(tooltipOpt)) {\r\n var content = tooltipOpt;\r\n tooltipOpt = {\r\n content: content,\r\n formatter: content\r\n };\r\n }\r\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\r\n var defaultHtml = subTooltipModel.get('content');\r\n var asyncTicket = Math.random() + '';\r\n this._showOrMove(subTooltipModel, function () {\r\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markers) {\r\n this._ticket = '';\r\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\r\n return;\r\n }\r\n var tooltipContent = this._tooltipContent;\r\n var formatter = tooltipModel.get('formatter');\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var html = defaultHtml;\r\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'));\r\n if (formatter && isString(formatter)) {\r\n html = formatTpl(formatter, params, true);\r\n }\r\n else if (isFunction(formatter)) {\r\n var callback = bind$2(function (cbTicket, html) {\r\n if (cbTicket === this._ticket) {\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n }\r\n }, this);\r\n this._ticket = asyncTicket;\r\n html = formatter(params, asyncTicket, callback);\r\n }\r\n tooltipContent.setContent(html, markers, tooltipModel, nearPoint.color, positionExpr);\r\n tooltipContent.show(tooltipModel, nearPoint.color);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n };\r\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger) {\r\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\r\n return {\r\n color: this._renderMode === 'html' ? '#fff' : 'none'\r\n };\r\n }\r\n if (!isArray(tooltipDataParams)) {\r\n return {\r\n color: tooltipDataParams.color || tooltipDataParams.borderColor\r\n };\r\n }\r\n };\r\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\r\n var viewWidth = this._api.getWidth();\r\n var viewHeight = this._api.getHeight();\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var contentSize = content.getSize();\r\n var align = tooltipModel.get('align');\r\n var vAlign = tooltipModel.get('verticalAlign');\r\n var rect = el && el.getBoundingRect().clone();\r\n el && rect.applyTransform(el.transform);\r\n if (isFunction(positionExpr)) {\r\n positionExpr = positionExpr([x, y], params, content.el, rect, {\r\n viewSize: [viewWidth, viewHeight],\r\n contentSize: contentSize.slice()\r\n });\r\n }\r\n if (isArray(positionExpr)) {\r\n x = parsePercent$3(positionExpr[0], viewWidth);\r\n y = parsePercent$3(positionExpr[1], viewHeight);\r\n }\r\n else if (isObject(positionExpr)) {\r\n var boxLayoutPosition = positionExpr;\r\n boxLayoutPosition.width = contentSize[0];\r\n boxLayoutPosition.height = contentSize[1];\r\n var layoutRect = getLayoutRect(boxLayoutPosition, { width: viewWidth, height: viewHeight });\r\n x = layoutRect.x;\r\n y = layoutRect.y;\r\n align = null;\r\n vAlign = null;\r\n }\r\n else if (isString(positionExpr) && el) {\r\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n else {\r\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\r\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\r\n if (tooltipModel.get('confine')) {\r\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n content.moveTo(x, y);\r\n };\r\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\r\n var lastCoordSys = this._lastDataByCoordSys;\r\n var contentNotChanged = !!lastCoordSys\r\n && lastCoordSys.length === dataByCoordSys.length;\r\n contentNotChanged && each$d(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\r\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\r\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\r\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\r\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\r\n contentNotChanged && each$d(lastDataByAxis, function (lastItem, indexAxis) {\r\n var thisItem = thisDataByAxis[indexAxis] || {};\r\n var lastIndices = lastItem.seriesDataIndices || [];\r\n var newIndices = thisItem.seriesDataIndices || [];\r\n contentNotChanged = contentNotChanged\r\n && lastItem.value === thisItem.value\r\n && lastItem.axisType === thisItem.axisType\r\n && lastItem.axisId === thisItem.axisId\r\n && lastIndices.length === newIndices.length;\r\n contentNotChanged && each$d(lastIndices, function (lastIdxItem, j) {\r\n var newIdxItem = newIndices[j];\r\n contentNotChanged = contentNotChanged\r\n && lastIdxItem.seriesIndex === newIdxItem.seriesIndex\r\n && lastIdxItem.dataIndex === newIdxItem.dataIndex;\r\n });\r\n });\r\n });\r\n this._lastDataByCoordSys = dataByCoordSys;\r\n return !!contentNotChanged;\r\n };\r\n TooltipView.prototype._hide = function (dispatchAction) {\r\n this._lastDataByCoordSys = null;\r\n dispatchAction({\r\n type: 'hideTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype.dispose = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this._tooltipContent.dispose();\r\n unregister('itemTooltip', api);\r\n };\r\n TooltipView.type = 'tooltip';\r\n return TooltipView;\r\n }(ComponentView));\r\n function buildTooltipModel(modelCascade) {\r\n var resultModel = modelCascade.pop();\r\n while (modelCascade.length) {\r\n var tooltipOpt = modelCascade.pop();\r\n if (tooltipOpt) {\r\n if (tooltipOpt instanceof Model) {\r\n tooltipOpt = tooltipOpt.get('tooltip', true);\r\n }\r\n if (isString(tooltipOpt)) {\r\n tooltipOpt = {\r\n formatter: tooltipOpt\r\n };\r\n }\r\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\r\n }\r\n }\r\n return resultModel;\r\n }\r\n function makeDispatchAction$1(payload, api) {\r\n return payload.dispatchAction || bind(api.dispatchAction, api);\r\n }\r\n function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n if (gapH != null) {\r\n if (x + width + gapH > viewWidth) {\r\n x -= width + gapH;\r\n }\r\n else {\r\n x += gapH;\r\n }\r\n }\r\n if (gapV != null) {\r\n if (y + height + gapV > viewHeight) {\r\n y -= height + gapV;\r\n }\r\n else {\r\n y += gapV;\r\n }\r\n }\r\n return [x, y];\r\n }\r\n function confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n x = Math.min(x + width, viewWidth) - width;\r\n y = Math.min(y + height, viewHeight) - height;\r\n x = Math.max(x, 0);\r\n y = Math.max(y, 0);\r\n return [x, y];\r\n }\r\n function calcTooltipPosition(position, rect, contentSize) {\r\n var domWidth = contentSize[0];\r\n var domHeight = contentSize[1];\r\n var gap = 10;\r\n var offset = 5;\r\n var x = 0;\r\n var y = 0;\r\n var rectWidth = rect.width;\r\n var rectHeight = rect.height;\r\n switch (position) {\r\n case 'inside':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'top':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y - domHeight - gap;\r\n break;\r\n case 'bottom':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight + gap;\r\n break;\r\n case 'left':\r\n x = rect.x - domWidth - gap - offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'right':\r\n x = rect.x + rectWidth + gap + offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n }\r\n return [x, y];\r\n }\r\n function isCenterAlign(align) {\r\n return align === 'center' || align === 'middle';\r\n }\r\n ComponentView.registerClass(TooltipView);\n\n registerAction({\r\n type: 'showTip',\r\n event: 'showTip',\r\n update: 'tooltip:manuallyShowTip'\r\n }, function () { });\r\n registerAction({\r\n type: 'hideTip',\r\n event: 'hideTip',\r\n update: 'tooltip:manuallyHideTip'\r\n }, function () { });\n\n var DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\r\n function preprocessor$1 (option, isNew) {\r\n var brushComponents = normalizeToArray(option ? option.brush : []);\r\n if (!brushComponents.length) {\r\n return;\r\n }\r\n var brushComponentSpecifiedBtns = [];\r\n each(brushComponents, function (brushOpt) {\r\n var tbs = brushOpt.hasOwnProperty('toolbox')\r\n ? brushOpt.toolbox : [];\r\n if (tbs instanceof Array) {\r\n brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\r\n }\r\n });\r\n var toolbox = option && option.toolbox;\r\n if (isArray(toolbox)) {\r\n toolbox = toolbox[0];\r\n }\r\n if (!toolbox) {\r\n toolbox = { feature: {} };\r\n option.toolbox = [toolbox];\r\n }\r\n var toolboxFeature = (toolbox.feature || (toolbox.feature = {}));\r\n var toolboxBrush = (toolboxFeature.brush || (toolboxFeature.brush = {}));\r\n var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\r\n brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\r\n removeDuplicate(brushTypes);\r\n if (isNew && !brushTypes.length) {\r\n brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\r\n }\r\n }\r\n function removeDuplicate(arr) {\r\n var map = {};\r\n each(arr, function (val) {\r\n map[val] = 1;\r\n });\r\n arr.length = 0;\r\n each(map, function (flag, val) {\r\n arr.push(val);\r\n });\r\n }\n\n var each$e = each;\r\n function hasKeys(obj) {\r\n if (obj) {\r\n for (var name_1 in obj) {\r\n if (obj.hasOwnProperty(name_1)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n function createVisualMappings(option, stateList, supplementVisualOption) {\r\n var visualMappings = {};\r\n each$e(stateList, function (state) {\r\n var mappings = visualMappings[state] = createMappings();\r\n each$e(option[state], function (visualData, visualType) {\r\n if (!VisualMapping.isValidType(visualType)) {\r\n return;\r\n }\r\n var mappingOption = {\r\n type: visualType,\r\n visual: visualData\r\n };\r\n supplementVisualOption && supplementVisualOption(mappingOption, state);\r\n mappings[visualType] = new VisualMapping(mappingOption);\r\n if (visualType === 'opacity') {\r\n mappingOption = clone(mappingOption);\r\n mappingOption.type = 'colorAlpha';\r\n mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\r\n }\r\n });\r\n });\r\n return visualMappings;\r\n function createMappings() {\r\n var Creater = function () { };\r\n Creater.prototype.__hidden = Creater.prototype;\r\n var obj = new Creater();\r\n return obj;\r\n }\r\n }\r\n function replaceVisualOption(thisOption, newOption, keys) {\r\n var has;\r\n each(keys, function (key) {\r\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\r\n has = true;\r\n }\r\n });\r\n has && each(keys, function (key) {\r\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\r\n thisOption[key] = clone(newOption[key]);\r\n }\r\n else {\r\n delete thisOption[key];\r\n }\r\n });\r\n }\r\n function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\r\n var visualTypesMap = {};\r\n each(stateList, function (state) {\r\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\r\n visualTypesMap[state] = visualTypes;\r\n });\r\n var dataIndex;\r\n function getVisual(key) {\r\n return getItemVisualFromData(data, dataIndex, key);\r\n }\r\n function setVisual(key, value) {\r\n setItemVisualFromData(data, dataIndex, key, value);\r\n }\r\n if (dimension == null) {\r\n data.each(eachItem);\r\n }\r\n else {\r\n data.each([dimension], eachItem);\r\n }\r\n function eachItem(valueOrIndex, index) {\r\n dataIndex = dimension == null\r\n ? valueOrIndex\r\n : index;\r\n var rawDataItem = data.getRawDataItem(dataIndex);\r\n if (rawDataItem && rawDataItem.visualMap === false) {\r\n return;\r\n }\r\n var valueState = getValueState.call(scope, valueOrIndex);\r\n var mappings = visualMappings[valueState];\r\n var visualTypes = visualTypesMap[valueState];\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\r\n }\r\n }\r\n }\r\n function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\r\n var visualTypesMap = {};\r\n each(stateList, function (state) {\r\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\r\n visualTypesMap[state] = visualTypes;\r\n });\r\n return {\r\n progress: function progress(params, data) {\r\n var dimName;\r\n if (dim != null) {\r\n dimName = data.getDimension(dim);\r\n }\r\n function getVisual(key) {\r\n return getItemVisualFromData(data, dataIndex, key);\r\n }\r\n function setVisual(key, value) {\r\n setItemVisualFromData(data, dataIndex, key, value);\r\n }\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var rawDataItem = data.getRawDataItem(dataIndex);\r\n if (rawDataItem && rawDataItem.visualMap === false) {\r\n continue;\r\n }\r\n var value = dim != null\r\n ? data.get(dimName, dataIndex)\r\n : dataIndex;\r\n var valueState = getValueState(value);\r\n var mappings = visualMappings[valueState];\r\n var visualTypes = visualTypesMap[valueState];\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\r\n }\r\n }\r\n }\r\n };\r\n }\n\n function makeBrushCommonSelectorForSeries(area) {\r\n var brushType = area.brushType;\r\n var selectors = {\r\n point: function (itemLayout) {\r\n return selector[brushType].point(itemLayout, selectors, area);\r\n },\r\n rect: function (itemLayout) {\r\n return selector[brushType].rect(itemLayout, selectors, area);\r\n }\r\n };\r\n return selectors;\r\n }\r\n var selector = {\r\n lineX: getLineSelectors(0),\r\n lineY: getLineSelectors(1),\r\n rect: {\r\n point: function (itemLayout, selectors, area) {\r\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n return itemLayout && area.boundingRect.intersect(itemLayout);\r\n }\r\n },\r\n polygon: {\r\n point: function (itemLayout, selectors, area) {\r\n return itemLayout\r\n && area.boundingRect.contain(itemLayout[0], itemLayout[1])\r\n && contain$2(area.range, itemLayout[0], itemLayout[1]);\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n var points = area.range;\r\n if (!itemLayout || points.length <= 1) {\r\n return false;\r\n }\r\n var x = itemLayout.x;\r\n var y = itemLayout.y;\r\n var width = itemLayout.width;\r\n var height = itemLayout.height;\r\n var p = points[0];\r\n if (contain$2(points, x, y)\r\n || contain$2(points, x + width, y)\r\n || contain$2(points, x, y + height)\r\n || contain$2(points, x + width, y + height)\r\n || BoundingRect.create(itemLayout).contain(p[0], p[1])\r\n || linePolygonIntersect(x, y, x + width, y, points)\r\n || linePolygonIntersect(x, y, x, y + height, points)\r\n || linePolygonIntersect(x + width, y, x + width, y + height, points)\r\n || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\r\n return true;\r\n }\r\n }\r\n }\r\n };\r\n function getLineSelectors(xyIndex) {\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n return {\r\n point: function (itemLayout, selectors, area) {\r\n if (itemLayout) {\r\n var range = area.range;\r\n var p = itemLayout[xyIndex];\r\n return inLineRange(p, range);\r\n }\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n if (itemLayout) {\r\n var range = area.range;\r\n var layoutRange = [\r\n itemLayout[xy[xyIndex]],\r\n itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]\r\n ];\r\n layoutRange[1] < layoutRange[0] && layoutRange.reverse();\r\n return inLineRange(layoutRange[0], range)\r\n || inLineRange(layoutRange[1], range)\r\n || inLineRange(range[0], layoutRange)\r\n || inLineRange(range[1], layoutRange);\r\n }\r\n }\r\n };\r\n }\r\n function inLineRange(p, range) {\r\n return range[0] <= p && p <= range[1];\r\n }\n\n var STATE_LIST = ['inBrush', 'outOfBrush'];\r\n var DISPATCH_METHOD = '__ecBrushSelect';\r\n var DISPATCH_FLAG = '__ecInBrushSelectEvent';\r\n var PRIORITY_BRUSH = PRIORITY.VISUAL.BRUSH;\r\n function layoutCovers(ecModel) {\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\r\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\r\n });\r\n }\r\n registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\r\n var brushSelected = [];\r\n var throttleType;\r\n var throttleDelay;\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : { brushType: false });\r\n });\r\n layoutCovers(ecModel);\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel, brushIndex) {\r\n var thisBrushSelected = {\r\n brushId: brushModel.id,\r\n brushIndex: brushIndex,\r\n brushName: brushModel.name,\r\n areas: clone(brushModel.areas),\r\n selected: []\r\n };\r\n brushSelected.push(thisBrushSelected);\r\n var brushOption = brushModel.option;\r\n var brushLink = brushOption.brushLink;\r\n var linkedSeriesMap = [];\r\n var selectedDataIndexForLink = [];\r\n var rangeInfoBySeries = [];\r\n var hasBrushExists = false;\r\n if (!brushIndex) {\r\n throttleType = brushOption.throttleType;\r\n throttleDelay = brushOption.throttleDelay;\r\n }\r\n var areas = map(brushModel.areas, function (area) {\r\n var builder = boundingRectBuilders[area.brushType];\r\n var selectableArea = defaults({ boundingRect: builder ? builder(area) : void 0 }, area);\r\n selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\r\n return selectableArea;\r\n });\r\n var visualMappings = createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\r\n mappingOption.mappingMethod = 'fixed';\r\n });\r\n isArray(brushLink) && each(brushLink, function (seriesIndex) {\r\n linkedSeriesMap[seriesIndex] = 1;\r\n });\r\n function linkOthers(seriesIndex) {\r\n return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\r\n }\r\n function brushed(rangeInfoList) {\r\n return !!rangeInfoList.length;\r\n }\r\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\r\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\r\n seriesModel.subType === 'parallel'\r\n ? stepAParallel(seriesModel, seriesIndex)\r\n : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\r\n });\r\n function stepAParallel(seriesModel, seriesIndex) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\r\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\r\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\r\n });\r\n }\r\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\r\n if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\r\n return;\r\n }\r\n each(areas, function (area) {\r\n if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\r\n rangeInfoList.push(area);\r\n }\r\n hasBrushExists = hasBrushExists || brushed(rangeInfoList);\r\n });\r\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\r\n var data_1 = seriesModel.getData();\r\n data_1.each(function (dataIndex) {\r\n if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\r\n selectedDataIndexForLink[dataIndex] = 1;\r\n }\r\n });\r\n }\r\n }\r\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\r\n var seriesBrushSelected = {\r\n seriesId: seriesModel.id,\r\n seriesIndex: seriesIndex,\r\n seriesName: seriesModel.name,\r\n dataIndex: []\r\n };\r\n thisBrushSelected.selected.push(seriesBrushSelected);\r\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\r\n var data = seriesModel.getData();\r\n var getValueState = linkOthers(seriesIndex)\r\n ? function (dataIndex) {\r\n return selectedDataIndexForLink[dataIndex]\r\n ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush')\r\n : 'outOfBrush';\r\n }\r\n : function (dataIndex) {\r\n return checkInRange(seriesModel, rangeInfoList, data, dataIndex)\r\n ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush')\r\n : 'outOfBrush';\r\n };\r\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList))\r\n && applyVisual(STATE_LIST, visualMappings, data, getValueState);\r\n });\r\n });\r\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\r\n });\r\n function dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n if (zr[DISPATCH_FLAG]) {\r\n return;\r\n }\r\n if (!zr[DISPATCH_METHOD]) {\r\n zr[DISPATCH_METHOD] = doDispatch;\r\n }\r\n var fn = createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\r\n fn(api, brushSelected);\r\n }\r\n function doDispatch(api, brushSelected) {\r\n if (!api.isDisposed()) {\r\n var zr = api.getZr();\r\n zr[DISPATCH_FLAG] = true;\r\n api.dispatchAction({\r\n type: 'brushSelect',\r\n batch: brushSelected\r\n });\r\n zr[DISPATCH_FLAG] = false;\r\n }\r\n }\r\n function checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\r\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\r\n var area = rangeInfoList[i];\r\n if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\r\n return true;\r\n }\r\n }\r\n }\r\n function brushModelNotControll(brushModel, seriesIndex) {\r\n var seriesIndices = brushModel.option.seriesIndex;\r\n return seriesIndices != null\r\n && seriesIndices !== 'all'\r\n && (isArray(seriesIndices)\r\n ? indexOf(seriesIndices, seriesIndex) < 0\r\n : seriesIndex !== seriesIndices);\r\n }\r\n var boundingRectBuilders = {\r\n rect: function (area) {\r\n return getBoundingRectFromMinMax(area.range);\r\n },\r\n polygon: function (area) {\r\n var minMax;\r\n var range = area.range;\r\n for (var i = 0, len = range.length; i < len; i++) {\r\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var rg = range[i];\r\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\r\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\r\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\r\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\r\n }\r\n return minMax && getBoundingRectFromMinMax(minMax);\r\n }\r\n };\r\n function getBoundingRectFromMinMax(minMax) {\r\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\r\n }\n\n var DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\r\n var BrushModel = (function (_super) {\r\n __extends(BrushModel, _super);\r\n function BrushModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BrushModel.type;\r\n _this.areas = [];\r\n _this.brushOption = {};\r\n return _this;\r\n }\r\n BrushModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n !isInit && replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\r\n var inBrush = thisOption.inBrush = thisOption.inBrush || {};\r\n thisOption.outOfBrush = thisOption.outOfBrush || { color: DEFAULT_OUT_OF_BRUSH_COLOR };\r\n if (!inBrush.hasOwnProperty('liftZ')) {\r\n inBrush.liftZ = 5;\r\n }\r\n };\r\n BrushModel.prototype.setAreas = function (areas) {\r\n if (__DEV__) {\r\n assert(isArray(areas));\r\n each(areas, function (area) {\r\n assert(area.brushType, 'Illegal areas');\r\n });\r\n }\r\n if (!areas) {\r\n return;\r\n }\r\n this.areas = map(areas, function (area) {\r\n return generateBrushOption(this.option, area);\r\n }, this);\r\n };\r\n BrushModel.prototype.setBrushOption = function (brushOption) {\r\n this.brushOption = generateBrushOption(this.option, brushOption);\r\n this.brushType = this.brushOption.brushType;\r\n };\r\n BrushModel.type = 'brush';\r\n BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\r\n BrushModel.defaultOption = {\r\n seriesIndex: 'all',\r\n brushType: 'rect',\r\n brushMode: 'single',\r\n transformable: true,\r\n brushStyle: {\r\n borderWidth: 1,\r\n color: 'rgba(210,219,238,0.3)',\r\n borderColor: '#D2DBEE'\r\n },\r\n throttleType: 'fixRate',\r\n throttleDelay: 0,\r\n removeOnClick: true,\r\n z: 10000\r\n };\r\n return BrushModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(BrushModel);\r\n function generateBrushOption(option, brushOption) {\r\n return merge({\r\n brushType: option.brushType,\r\n brushMode: option.brushMode,\r\n transformable: option.transformable,\r\n brushStyle: new Model(option.brushStyle).getItemStyle(),\r\n removeOnClick: option.removeOnClick,\r\n z: option.z\r\n }, brushOption, true);\r\n }\n\n var BrushView = (function (_super) {\r\n __extends(BrushView, _super);\r\n function BrushView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BrushView.type;\r\n return _this;\r\n }\r\n BrushView.prototype.init = function (ecModel, api) {\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n this.model;\r\n (this._brushController = new BrushController(api.getZr()))\r\n .on('brush', bind(this._onBrush, this))\r\n .mount();\r\n };\r\n BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\r\n this.model = brushModel;\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\r\n layoutCovers(ecModel);\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\r\n this.updateTransform(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\r\n (!payload || payload.$from !== brushModel.id) && this._brushController\r\n .setPanels(brushModel.brushTargetManager.makePanelOpts(api))\r\n .enableBrush(brushModel.brushOption)\r\n .updateCovers(brushModel.areas.slice());\r\n };\r\n BrushView.prototype.dispose = function () {\r\n this._brushController.dispose();\r\n };\r\n BrushView.prototype._onBrush = function (eventParam) {\r\n var modelId = this.model.id;\r\n var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\r\n (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\r\n type: 'brush',\r\n brushId: modelId,\r\n areas: clone(areas),\r\n $from: modelId\r\n });\r\n eventParam.isEnd && this.api.dispatchAction({\r\n type: 'brushEnd',\r\n brushId: modelId,\r\n areas: clone(areas),\r\n $from: modelId\r\n });\r\n };\r\n BrushView.type = 'brush';\r\n return BrushView;\r\n }(ComponentView));\r\n ComponentView.registerClass(BrushView);\n\n registerAction({ type: 'brush', event: 'brush', update: 'updateVisual' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'brush', query: payload }, function (brushModel) {\r\n brushModel.setAreas(payload.areas);\r\n });\r\n });\r\n registerAction({ type: 'brushSelect', event: 'brushSelected', update: 'none' }, function () { });\r\n registerAction({ type: 'brushEnd', event: 'brushEnd', update: 'none' }, function () { });\n\n var ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\r\n var BrushFeature = (function (_super) {\r\n __extends(BrushFeature, _super);\r\n function BrushFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BrushFeature.prototype.render = function (featureModel, ecModel, api) {\r\n var brushType;\r\n var brushMode;\r\n var isBrushed;\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n brushType = brushModel.brushType;\r\n brushMode = brushModel.brushOption.brushMode || 'single';\r\n isBrushed = isBrushed || !!brushModel.areas.length;\r\n });\r\n this._brushType = brushType;\r\n this._brushMode = brushMode;\r\n each(featureModel.get('type', true), function (type) {\r\n featureModel.setIconStatus(type, (type === 'keep'\r\n ? brushMode === 'multiple'\r\n : type === 'clear'\r\n ? isBrushed\r\n : type === brushType) ? 'emphasis' : 'normal');\r\n });\r\n };\r\n BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\r\n this.render(featureModel, ecModel, api);\r\n };\r\n BrushFeature.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon', true);\r\n var icons = {};\r\n each(model.get('type', true), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n BrushFeature.prototype.onclick = function (ecModel, api, type) {\r\n var brushType = this._brushType;\r\n var brushMode = this._brushMode;\r\n if (type === 'clear') {\r\n api.dispatchAction({\r\n type: 'axisAreaSelect',\r\n intervals: []\r\n });\r\n api.dispatchAction({\r\n type: 'brush',\r\n command: 'clear',\r\n areas: []\r\n });\r\n }\r\n else {\r\n api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'brush',\r\n brushOption: {\r\n brushType: type === 'keep'\r\n ? brushType\r\n : (brushType === type ? false : type),\r\n brushMode: type === 'keep'\r\n ? (brushMode === 'multiple' ? 'single' : 'multiple')\r\n : brushMode\r\n }\r\n });\r\n }\r\n };\r\n BrushFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: ICON_TYPES.slice(),\r\n icon: {\r\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\r\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\r\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\r\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\r\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\r\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'brush', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return BrushFeature;\r\n }(ToolboxFeature));\r\n registerFeature('brush', BrushFeature);\n\n registerPreprocessor(preprocessor$1);\n\n var TitleModel = (function (_super) {\r\n __extends(TitleModel, _super);\r\n function TitleModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleModel.type;\r\n _this.layoutMode = { type: 'box', ignoreSize: true };\r\n return _this;\r\n }\r\n TitleModel.type = 'title';\r\n TitleModel.defaultOption = {\r\n zlevel: 0,\r\n z: 6,\r\n show: true,\r\n text: '',\r\n target: 'blank',\r\n subtext: '',\r\n subtarget: 'blank',\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n color: '#464646'\r\n },\r\n subtextStyle: {\r\n fontSize: 12,\r\n color: '#6E7079'\r\n }\r\n };\r\n return TitleModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TitleModel);\r\n var TitleView = (function (_super) {\r\n __extends(TitleView, _super);\r\n function TitleView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleView.type;\r\n return _this;\r\n }\r\n TitleView.prototype.render = function (titleModel, ecModel, api) {\r\n this.group.removeAll();\r\n if (!titleModel.get('show')) {\r\n return;\r\n }\r\n var group = this.group;\r\n var textStyleModel = titleModel.getModel('textStyle');\r\n var subtextStyleModel = titleModel.getModel('subtextStyle');\r\n var textAlign = titleModel.get('textAlign');\r\n var textVerticalAlign = retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\r\n var textEl = new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: titleModel.get('text'),\r\n fill: textStyleModel.getTextColor()\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var textRect = textEl.getBoundingRect();\r\n var subText = titleModel.get('subtext');\r\n var subTextEl = new ZRText({\r\n style: createTextStyle(subtextStyleModel, {\r\n text: subText,\r\n fill: subtextStyleModel.getTextColor(),\r\n y: textRect.height + titleModel.get('itemGap'),\r\n verticalAlign: 'top'\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var link = titleModel.get('link');\r\n var sublink = titleModel.get('sublink');\r\n var triggerEvent = titleModel.get('triggerEvent', true);\r\n textEl.silent = !link && !triggerEvent;\r\n subTextEl.silent = !sublink && !triggerEvent;\r\n if (link) {\r\n textEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('target'));\r\n });\r\n }\r\n if (sublink) {\r\n subTextEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('subtarget'));\r\n });\r\n }\r\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent\r\n ? {\r\n componentType: 'title',\r\n componentIndex: titleModel.componentIndex\r\n }\r\n : null;\r\n group.add(textEl);\r\n subText && group.add(subTextEl);\r\n var groupRect = group.getBoundingRect();\r\n var layoutOption = titleModel.getBoxLayoutParams();\r\n layoutOption.width = groupRect.width;\r\n layoutOption.height = groupRect.height;\r\n var layoutRect = getLayoutRect(layoutOption, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, titleModel.get('padding'));\r\n if (!textAlign) {\r\n textAlign = (titleModel.get('left') || titleModel.get('right'));\r\n if (textAlign === 'middle') {\r\n textAlign = 'center';\r\n }\r\n if (textAlign === 'right') {\r\n layoutRect.x += layoutRect.width;\r\n }\r\n else if (textAlign === 'center') {\r\n layoutRect.x += layoutRect.width / 2;\r\n }\r\n }\r\n if (!textVerticalAlign) {\r\n textVerticalAlign = (titleModel.get('top') || titleModel.get('bottom'));\r\n if (textVerticalAlign === 'center') {\r\n textVerticalAlign = 'middle';\r\n }\r\n if (textVerticalAlign === 'bottom') {\r\n layoutRect.y += layoutRect.height;\r\n }\r\n else if (textVerticalAlign === 'middle') {\r\n layoutRect.y += layoutRect.height / 2;\r\n }\r\n textVerticalAlign = textVerticalAlign || 'top';\r\n }\r\n group.x = layoutRect.x;\r\n group.y = layoutRect.y;\r\n group.markRedraw();\r\n var alignStyle = {\r\n align: textAlign,\r\n verticalAlign: textVerticalAlign\r\n };\r\n textEl.setStyle(alignStyle);\r\n subTextEl.setStyle(alignStyle);\r\n groupRect = group.getBoundingRect();\r\n var padding = layoutRect.margin;\r\n var style = titleModel.getItemStyle(['color', 'opacity']);\r\n style.fill = titleModel.get('backgroundColor');\r\n var rect = new Rect({\r\n shape: {\r\n x: groupRect.x - padding[3],\r\n y: groupRect.y - padding[0],\r\n width: groupRect.width + padding[1] + padding[3],\r\n height: groupRect.height + padding[0] + padding[2],\r\n r: titleModel.get('borderRadius')\r\n },\r\n style: style,\r\n subPixelOptimize: true,\r\n silent: true\r\n });\r\n group.add(rect);\r\n };\r\n TitleView.type = 'title';\r\n return TitleView;\r\n }(ComponentView));\r\n ComponentView.registerClass(TitleView);\n\n function preprocessor$2 (option) {\r\n var timelineOpt = option && option.timeline;\r\n if (!isArray(timelineOpt)) {\r\n timelineOpt = timelineOpt ? [timelineOpt] : [];\r\n }\r\n each(timelineOpt, function (opt) {\r\n if (!opt) {\r\n return;\r\n }\r\n compatibleEC2(opt);\r\n });\r\n }\r\n function compatibleEC2(opt) {\r\n var type = opt.type;\r\n var ec2Types = { 'number': 'value', 'time': 'time' };\r\n if (ec2Types[type]) {\r\n opt.axisType = ec2Types[type];\r\n delete opt.type;\r\n }\r\n transferItem(opt);\r\n if (has(opt, 'controlPosition')) {\r\n var controlStyle = opt.controlStyle || (opt.controlStyle = {});\r\n if (!has(controlStyle, 'position')) {\r\n controlStyle.position = opt.controlPosition;\r\n }\r\n if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\r\n controlStyle.show = false;\r\n delete controlStyle.position;\r\n }\r\n delete opt.controlPosition;\r\n }\r\n each(opt.data || [], function (dataItem) {\r\n if (isObject(dataItem) && !isArray(dataItem)) {\r\n if (!has(dataItem, 'value') && has(dataItem, 'name')) {\r\n dataItem.value = dataItem.name;\r\n }\r\n transferItem(dataItem);\r\n }\r\n });\r\n }\r\n function transferItem(opt) {\r\n var itemStyle = opt.itemStyle || (opt.itemStyle = {});\r\n var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\r\n var label = opt.label || (opt.label || {});\r\n var labelNormal = label.normal || (label.normal = {});\r\n var excludeLabelAttr = { normal: 1, emphasis: 1 };\r\n each(label, function (value, name) {\r\n if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\r\n labelNormal[name] = value;\r\n }\r\n });\r\n if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\r\n label.emphasis = itemStyleEmphasis.label;\r\n delete itemStyleEmphasis.label;\r\n }\r\n }\r\n function has(obj, attr) {\r\n return obj.hasOwnProperty(attr);\r\n }\n\n ComponentModel.registerSubTypeDefaulter('timeline', function () {\r\n return 'slider';\r\n });\n\n registerAction({ type: 'timelineChange', event: 'timelineChanged', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel && payload.currentIndex != null) {\r\n timelineModel.setCurrentIndex(payload.currentIndex);\r\n if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\r\n timelineModel.setPlayState(false);\r\n }\r\n }\r\n ecModel.resetOption('timeline', { replaceMerge: timelineModel.get('replaceMerge', true) });\r\n return defaults({\r\n currentIndex: timelineModel.option.currentIndex\r\n }, payload);\r\n });\r\n registerAction({ type: 'timelinePlayChange', event: 'timelinePlayChanged', update: 'update' }, function (payload, ecModel) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel && payload.playState != null) {\r\n timelineModel.setPlayState(payload.playState);\r\n }\r\n });\n\n var TimelineModel = (function (_super) {\r\n __extends(TimelineModel, _super);\r\n function TimelineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TimelineModel.type;\r\n _this.layoutMode = 'box';\r\n return _this;\r\n }\r\n TimelineModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._initData();\r\n };\r\n TimelineModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n this._initData();\r\n };\r\n TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\r\n if (currentIndex == null) {\r\n currentIndex = this.option.currentIndex;\r\n }\r\n var count = this._data.count();\r\n if (this.option.loop) {\r\n currentIndex = (currentIndex % count + count) % count;\r\n }\r\n else {\r\n currentIndex >= count && (currentIndex = count - 1);\r\n currentIndex < 0 && (currentIndex = 0);\r\n }\r\n this.option.currentIndex = currentIndex;\r\n };\r\n TimelineModel.prototype.getCurrentIndex = function () {\r\n return this.option.currentIndex;\r\n };\r\n TimelineModel.prototype.isIndexMax = function () {\r\n return this.getCurrentIndex() >= this._data.count() - 1;\r\n };\r\n TimelineModel.prototype.setPlayState = function (state) {\r\n this.option.autoPlay = !!state;\r\n };\r\n TimelineModel.prototype.getPlayState = function () {\r\n return !!this.option.autoPlay;\r\n };\r\n TimelineModel.prototype._initData = function () {\r\n var thisOption = this.option;\r\n var dataArr = thisOption.data || [];\r\n var axisType = thisOption.axisType;\r\n var names = this._names = [];\r\n var processedDataArr;\r\n if (axisType === 'category') {\r\n processedDataArr = [];\r\n each(dataArr, function (item, index) {\r\n var value = getDataItemValue(item);\r\n var newItem;\r\n if (isObject(item)) {\r\n newItem = clone(item);\r\n newItem.value = index;\r\n }\r\n else {\r\n newItem = index;\r\n }\r\n processedDataArr.push(newItem);\r\n if (!isString(value) && (value == null || isNaN(value))) {\r\n value = '';\r\n }\r\n names.push(value + '');\r\n });\r\n }\r\n else {\r\n processedDataArr = dataArr;\r\n }\r\n var dimType = ({\r\n category: 'ordinal',\r\n time: 'time',\r\n value: 'number'\r\n })[axisType] || 'number';\r\n var data = this._data = new List([{\r\n name: 'value', type: dimType\r\n }], this);\r\n data.initData(processedDataArr, names);\r\n };\r\n TimelineModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n TimelineModel.prototype.getCategories = function () {\r\n if (this.get('axisType') === 'category') {\r\n return this._names.slice();\r\n }\r\n };\r\n TimelineModel.type = 'timeline';\r\n TimelineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n axisType: 'time',\r\n realtime: true,\r\n left: '20%',\r\n top: null,\r\n right: '20%',\r\n bottom: 0,\r\n width: null,\r\n height: 40,\r\n padding: 5,\r\n controlPosition: 'left',\r\n autoPlay: false,\r\n rewind: false,\r\n loop: true,\r\n playInterval: 2000,\r\n currentIndex: 0,\r\n itemStyle: {},\r\n label: {\r\n color: '#000'\r\n },\r\n data: []\r\n };\r\n return TimelineModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TimelineModel);\n\n var SliderTimelineModel = (function (_super) {\r\n __extends(SliderTimelineModel, _super);\r\n function SliderTimelineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderTimelineModel.type;\r\n return _this;\r\n }\r\n SliderTimelineModel.type = 'timeline.slider';\r\n SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n orient: 'horizontal',\r\n inverse: false,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n symbol: 'circle',\r\n symbolSize: 12,\r\n lineStyle: {\r\n show: true,\r\n width: 2,\r\n color: '#DAE1F5'\r\n },\r\n label: {\r\n position: 'auto',\r\n show: true,\r\n interval: 'auto',\r\n rotate: 0,\r\n color: '#A4B1D7'\r\n },\r\n itemStyle: {\r\n color: '#A4B1D7',\r\n borderWidth: 1\r\n },\r\n checkpointStyle: {\r\n symbol: 'circle',\r\n symbolSize: 15,\r\n color: '#316bf3',\r\n borderColor: '#fff',\r\n borderWidth: 2,\r\n shadowBlur: 2,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0, 0, 0, 0.3)',\r\n animation: true,\r\n animationDuration: 300,\r\n animationEasing: 'quinticInOut'\r\n },\r\n controlStyle: {\r\n show: true,\r\n showPlayBtn: true,\r\n showPrevBtn: true,\r\n showNextBtn: true,\r\n itemSize: 24,\r\n itemGap: 12,\r\n position: 'left',\r\n playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\r\n stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\r\n nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z',\r\n prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z',\r\n prevBtnSize: 18,\r\n nextBtnSize: 18,\r\n color: '#A4B1D7',\r\n borderColor: '#A4B1D7',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: '#6f778d'\r\n },\r\n itemStyle: {\r\n color: '#316BF3'\r\n },\r\n controlStyle: {\r\n color: '#316BF3',\r\n borderColor: '#316BF3',\r\n borderWidth: 2\r\n }\r\n },\r\n progress: {\r\n lineStyle: {\r\n color: '#316BF3'\r\n },\r\n itemStyle: {\r\n color: '#316BF3'\r\n },\r\n label: {\r\n color: '#6f778d'\r\n }\r\n },\r\n data: []\r\n });\r\n return SliderTimelineModel;\r\n }(TimelineModel));\r\n mixin(SliderTimelineModel, DataFormatMixin.prototype);\r\n ComponentModel.registerClass(SliderTimelineModel);\n\n var TimelineView = (function (_super) {\r\n __extends(TimelineView, _super);\r\n function TimelineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TimelineView.type;\r\n return _this;\r\n }\r\n TimelineView.type = 'timeline';\r\n return TimelineView;\r\n }(ComponentView));\n\n var TimelineAxis = (function (_super) {\r\n __extends(TimelineAxis, _super);\r\n function TimelineAxis(dim, scale, coordExtent, axisType) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n return _this;\r\n }\r\n TimelineAxis.prototype.getLabelModel = function () {\r\n return this.model.getModel('label');\r\n };\r\n TimelineAxis.prototype.isHorizontal = function () {\r\n return this.model.get('orient') === 'horizontal';\r\n };\r\n return TimelineAxis;\r\n }(Axis));\n\n var PI$8 = Math.PI;\r\n var labelDataIndexStore = makeInner();\r\n var SliderTimelineView = (function (_super) {\r\n __extends(SliderTimelineView, _super);\r\n function SliderTimelineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderTimelineView.type;\r\n return _this;\r\n }\r\n SliderTimelineView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n };\r\n SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\r\n this.model = timelineModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n this.group.removeAll();\r\n if (timelineModel.get('show', true)) {\r\n var layoutInfo_1 = this._layout(timelineModel, api);\r\n var mainGroup_1 = this._createGroup('_mainGroup');\r\n var labelGroup = this._createGroup('_labelGroup');\r\n var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\r\n timelineModel.formatTooltip = function (dataIndex) {\r\n return encodeHTML(axis_1.scale.getLabel({ value: dataIndex }));\r\n };\r\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\r\n this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\r\n }, this);\r\n this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\r\n this._position(layoutInfo_1, timelineModel);\r\n }\r\n this._doPlayStop();\r\n this._updateTicksStatus();\r\n };\r\n SliderTimelineView.prototype.remove = function () {\r\n this._clearTimer();\r\n this.group.removeAll();\r\n };\r\n SliderTimelineView.prototype.dispose = function () {\r\n this._clearTimer();\r\n };\r\n SliderTimelineView.prototype._layout = function (timelineModel, api) {\r\n var labelPosOpt = timelineModel.get(['label', 'position']);\r\n var orient = timelineModel.get('orient');\r\n var viewRect = getViewRect$5(timelineModel, api);\r\n var parsedLabelPos;\r\n if (labelPosOpt == null || labelPosOpt === 'auto') {\r\n parsedLabelPos = orient === 'horizontal'\r\n ? ((viewRect.y + viewRect.height / 2) < api.getHeight() / 2 ? '-' : '+')\r\n : ((viewRect.x + viewRect.width / 2) < api.getWidth() / 2 ? '+' : '-');\r\n }\r\n else if (isString(labelPosOpt)) {\r\n parsedLabelPos = {\r\n horizontal: { top: '-', bottom: '+' },\r\n vertical: { left: '-', right: '+' }\r\n }[orient][labelPosOpt];\r\n }\r\n else {\r\n parsedLabelPos = labelPosOpt;\r\n }\r\n var labelAlignMap = {\r\n horizontal: 'center',\r\n vertical: (parsedLabelPos >= 0 || parsedLabelPos === '+') ? 'left' : 'right'\r\n };\r\n var labelBaselineMap = {\r\n horizontal: (parsedLabelPos >= 0 || parsedLabelPos === '+') ? 'top' : 'bottom',\r\n vertical: 'middle'\r\n };\r\n var rotationMap = {\r\n horizontal: 0,\r\n vertical: PI$8 / 2\r\n };\r\n var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\r\n var controlModel = timelineModel.getModel('controlStyle');\r\n var showControl = controlModel.get('show', true);\r\n var controlSize = showControl ? controlModel.get('itemSize') : 0;\r\n var controlGap = showControl ? controlModel.get('itemGap') : 0;\r\n var sizePlusGap = controlSize + controlGap;\r\n var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\r\n labelRotation = labelRotation * PI$8 / 180;\r\n var playPosition;\r\n var prevBtnPosition;\r\n var nextBtnPosition;\r\n var controlPosition = controlModel.get('position', true);\r\n var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\r\n var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\r\n var showNextBtn = showControl && controlModel.get('showNextBtn', true);\r\n var xLeft = 0;\r\n var xRight = mainLength;\r\n if (controlPosition === 'left' || controlPosition === 'bottom') {\r\n showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\r\n showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\r\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n }\r\n else {\r\n showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\r\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n }\r\n var axisExtent = [xLeft, xRight];\r\n if (timelineModel.get('inverse')) {\r\n axisExtent.reverse();\r\n }\r\n return {\r\n viewRect: viewRect,\r\n mainLength: mainLength,\r\n orient: orient,\r\n rotation: rotationMap[orient],\r\n labelRotation: labelRotation,\r\n labelPosOpt: parsedLabelPos,\r\n labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\r\n labelBaseline: timelineModel.get(['label', 'verticalAlign'])\r\n || timelineModel.get(['label', 'baseline'])\r\n || labelBaselineMap[orient],\r\n playPosition: playPosition,\r\n prevBtnPosition: prevBtnPosition,\r\n nextBtnPosition: nextBtnPosition,\r\n axisExtent: axisExtent,\r\n controlSize: controlSize,\r\n controlGap: controlGap\r\n };\r\n };\r\n SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\r\n var mainGroup = this._mainGroup;\r\n var labelGroup = this._labelGroup;\r\n var viewRect = layoutInfo.viewRect;\r\n if (layoutInfo.orient === 'vertical') {\r\n var m = create$1();\r\n var rotateOriginX = viewRect.x;\r\n var rotateOriginY = viewRect.y + viewRect.height;\r\n translate(m, m, [-rotateOriginX, -rotateOriginY]);\r\n rotate(m, m, -PI$8 / 2);\r\n translate(m, m, [rotateOriginX, rotateOriginY]);\r\n viewRect = viewRect.clone();\r\n viewRect.applyTransform(m);\r\n }\r\n var viewBound = getBound(viewRect);\r\n var mainBound = getBound(mainGroup.getBoundingRect());\r\n var labelBound = getBound(labelGroup.getBoundingRect());\r\n var mainPosition = [mainGroup.x, mainGroup.y];\r\n var labelsPosition = [labelGroup.x, labelGroup.y];\r\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\r\n var labelPosOpt = layoutInfo.labelPosOpt;\r\n if (labelPosOpt == null || isString(labelPosOpt)) {\r\n var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\r\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\r\n toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\r\n }\r\n else {\r\n var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\r\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\r\n labelsPosition[1] = mainPosition[1] + labelPosOpt;\r\n }\r\n mainGroup.setPosition(mainPosition);\r\n labelGroup.setPosition(labelsPosition);\r\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\r\n setOrigin(mainGroup);\r\n setOrigin(labelGroup);\r\n function setOrigin(targetGroup) {\r\n targetGroup.originX = viewBound[0][0] - targetGroup.x;\r\n targetGroup.originY = viewBound[1][0] - targetGroup.y;\r\n }\r\n function getBound(rect) {\r\n return [\r\n [rect.x, rect.x + rect.width],\r\n [rect.y, rect.y + rect.height]\r\n ];\r\n }\r\n function toBound(fromPos, from, to, dimIdx, boundIdx) {\r\n fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\r\n }\r\n };\r\n SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\r\n var data = timelineModel.getData();\r\n var axisType = timelineModel.get('axisType');\r\n var scale = createScaleByModel$1(timelineModel, axisType);\r\n scale.getTicks = function () {\r\n return data.mapArray(['value'], function (value) {\r\n return { value: value };\r\n });\r\n };\r\n var dataExtent = data.getDataExtent('value');\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n scale.niceTicks();\r\n var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\r\n axis.model = timelineModel;\r\n return axis;\r\n };\r\n SliderTimelineView.prototype._createGroup = function (key) {\r\n var newGroup = this[key] = new Group();\r\n this.group.add(newGroup);\r\n return newGroup;\r\n };\r\n SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\r\n var axisExtent = axis.getExtent();\r\n if (!timelineModel.get(['lineStyle', 'show'])) {\r\n return;\r\n }\r\n var line = new Line({\r\n shape: {\r\n x1: axisExtent[0], y1: 0,\r\n x2: axisExtent[1], y2: 0\r\n },\r\n style: extend({ lineCap: 'round' }, timelineModel.getModel('lineStyle').getLineStyle()),\r\n silent: true,\r\n z2: 1\r\n });\r\n group.add(line);\r\n var progressLine = this._progressLine = new Line({\r\n shape: {\r\n x1: axisExtent[0],\r\n x2: this._currentPointer\r\n ? this._currentPointer.x : axisExtent[0],\r\n y1: 0, y2: 0\r\n },\r\n style: defaults({ lineCap: 'round', lineWidth: line.style.lineWidth }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\r\n silent: true,\r\n z2: 1\r\n });\r\n group.add(progressLine);\r\n };\r\n SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\r\n var _this = this;\r\n var data = timelineModel.getData();\r\n var ticks = axis.scale.getTicks();\r\n this._tickSymbols = [];\r\n each(ticks, function (tick) {\r\n var tickCoord = axis.dataToCoord(tick.value);\r\n var itemModel = data.getItemModel(tick.value);\r\n var itemStyleModel = itemModel.getModel('itemStyle');\r\n var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\r\n var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\r\n var symbolOpt = {\r\n position: [tickCoord, 0],\r\n onclick: bind(_this._changeTimeline, _this, tick.value)\r\n };\r\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\r\n el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\r\n el.ensureState('progress').style = progressStyleModel.getItemStyle();\r\n enableHoverEmphasis(el);\r\n var ecData = getECData(el);\r\n if (itemModel.get('tooltip')) {\r\n ecData.dataIndex = tick.value;\r\n ecData.dataModel = timelineModel;\r\n }\r\n else {\r\n ecData.dataIndex = ecData.dataModel = null;\r\n }\r\n _this._tickSymbols.push(el);\r\n });\r\n };\r\n SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\r\n var _this = this;\r\n var labelModel = axis.getLabelModel();\r\n if (!labelModel.get('show')) {\r\n return;\r\n }\r\n var data = timelineModel.getData();\r\n var labels = axis.getViewLabels();\r\n this._tickLabels = [];\r\n each(labels, function (labelItem) {\r\n var dataIndex = labelItem.tickValue;\r\n var itemModel = data.getItemModel(dataIndex);\r\n var normalLabelModel = itemModel.getModel('label');\r\n var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\r\n var progressLabelModel = itemModel.getModel(['progress', 'label']);\r\n var tickCoord = axis.dataToCoord(labelItem.tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: 0,\r\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\r\n onclick: bind(_this._changeTimeline, _this, dataIndex),\r\n silent: false,\r\n style: createTextStyle(normalLabelModel, {\r\n text: labelItem.formattedLabel,\r\n align: layoutInfo.labelAlign,\r\n verticalAlign: layoutInfo.labelBaseline\r\n })\r\n });\r\n textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\r\n textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\r\n group.add(textEl);\r\n enableHoverEmphasis(textEl);\r\n labelDataIndexStore(textEl).dataIndex = dataIndex;\r\n _this._tickLabels.push(textEl);\r\n });\r\n };\r\n SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\r\n var controlSize = layoutInfo.controlSize;\r\n var rotation = layoutInfo.rotation;\r\n var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\r\n var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\r\n var playState = timelineModel.getPlayState();\r\n var inverse = timelineModel.get('inverse', true);\r\n makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\r\n makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\r\n makeBtn(layoutInfo.playPosition, (playState ? 'stop' : 'play'), bind(this._handlePlayClick, this, !playState), true);\r\n function makeBtn(position, iconName, onclick, willRotate) {\r\n if (!position) {\r\n return;\r\n }\r\n var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\r\n var rect = [0, -iconSize / 2, iconSize, iconSize];\r\n var opt = {\r\n position: position,\r\n origin: [controlSize / 2, 0],\r\n rotation: willRotate ? -rotation : 0,\r\n rectHover: true,\r\n style: itemStyle,\r\n onclick: onclick\r\n };\r\n var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\r\n btn.ensureState('emphasis').style = hoverStyle;\r\n group.add(btn);\r\n enableHoverEmphasis(btn);\r\n }\r\n };\r\n SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\r\n var data = timelineModel.getData();\r\n var currentIndex = timelineModel.getCurrentIndex();\r\n var pointerModel = data.getItemModel(currentIndex)\r\n .getModel('checkpointStyle');\r\n var me = this;\r\n var callback = {\r\n onCreate: function (pointer) {\r\n pointer.draggable = true;\r\n pointer.drift = bind(me._handlePointerDrag, me);\r\n pointer.ondragend = bind(me._handlePointerDragend, me);\r\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\r\n },\r\n onUpdate: function (pointer) {\r\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\r\n }\r\n };\r\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\r\n };\r\n SliderTimelineView.prototype._handlePlayClick = function (nextState) {\r\n this._clearTimer();\r\n this.api.dispatchAction({\r\n type: 'timelinePlayChange',\r\n playState: nextState,\r\n from: this.uid\r\n });\r\n };\r\n SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\r\n this._clearTimer();\r\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\r\n };\r\n SliderTimelineView.prototype._handlePointerDragend = function (e) {\r\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\r\n };\r\n SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\r\n var toCoord = this._toAxisCoord(mousePos)[0];\r\n var axis = this._axis;\r\n var axisExtent = asc(axis.getExtent().slice());\r\n toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\r\n toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\r\n this._currentPointer.x = toCoord;\r\n this._currentPointer.markRedraw();\r\n this._progressLine.shape.x2 = toCoord;\r\n this._progressLine.dirty();\r\n var targetDataIndex = this._findNearestTick(toCoord);\r\n var timelineModel = this.model;\r\n if (trigger || (targetDataIndex !== timelineModel.getCurrentIndex()\r\n && timelineModel.get('realtime'))) {\r\n this._changeTimeline(targetDataIndex);\r\n }\r\n };\r\n SliderTimelineView.prototype._doPlayStop = function () {\r\n var _this = this;\r\n this._clearTimer();\r\n if (this.model.getPlayState()) {\r\n this._timer = setTimeout(function () {\r\n var timelineModel = _this.model;\r\n _this._changeTimeline(timelineModel.getCurrentIndex()\r\n + (timelineModel.get('rewind', true) ? -1 : 1));\r\n }, this.model.get('playInterval'));\r\n }\r\n };\r\n SliderTimelineView.prototype._toAxisCoord = function (vertex) {\r\n var trans = this._mainGroup.getLocalTransform();\r\n return applyTransform$1(vertex, trans, true);\r\n };\r\n SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\r\n var data = this.model.getData();\r\n var dist = Infinity;\r\n var targetDataIndex;\r\n var axis = this._axis;\r\n data.each(['value'], function (value, dataIndex) {\r\n var coord = axis.dataToCoord(value);\r\n var d = Math.abs(coord - axisCoord);\r\n if (d < dist) {\r\n dist = d;\r\n targetDataIndex = dataIndex;\r\n }\r\n });\r\n return targetDataIndex;\r\n };\r\n SliderTimelineView.prototype._clearTimer = function () {\r\n if (this._timer) {\r\n clearTimeout(this._timer);\r\n this._timer = null;\r\n }\r\n };\r\n SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\r\n var currentIndex = this.model.getCurrentIndex();\r\n if (nextIndex === '+') {\r\n nextIndex = currentIndex + 1;\r\n }\r\n else if (nextIndex === '-') {\r\n nextIndex = currentIndex - 1;\r\n }\r\n this.api.dispatchAction({\r\n type: 'timelineChange',\r\n currentIndex: nextIndex,\r\n from: this.uid\r\n });\r\n };\r\n SliderTimelineView.prototype._updateTicksStatus = function () {\r\n var currentIndex = this.model.getCurrentIndex();\r\n var tickSymbols = this._tickSymbols;\r\n var tickLabels = this._tickLabels;\r\n if (tickSymbols) {\r\n for (var i = 0; i < tickSymbols.length; i++) {\r\n tickSymbols && tickSymbols[i]\r\n && tickSymbols[i].toggleState('progress', i < currentIndex);\r\n }\r\n }\r\n if (tickLabels) {\r\n for (var i = 0; i < tickLabels.length; i++) {\r\n tickLabels && tickLabels[i]\r\n && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\r\n }\r\n }\r\n };\r\n SliderTimelineView.type = 'timeline.slider';\r\n return SliderTimelineView;\r\n }(TimelineView));\r\n function createScaleByModel$1(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n lang: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new IntervalScale();\r\n }\r\n }\r\n }\r\n function getViewRect$5(model, api) {\r\n return getLayoutRect(model.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, model.get('padding'));\r\n }\r\n function makeControlIcon(timelineModel, objPath, rect, opts) {\r\n var icon = makePath(timelineModel.get(['controlStyle', objPath]).replace(/^path:\\/\\//, ''), clone(opts || {}), new BoundingRect(rect[0], rect[1], rect[2], rect[3]), 'center');\r\n return icon;\r\n }\r\n function giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\r\n var color = itemStyleModel.get('color');\r\n if (!symbol) {\r\n var symbolType = hostModel.get('symbol');\r\n symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\r\n symbol.setStyle('strokeNoScale', true);\r\n group.add(symbol);\r\n callback && callback.onCreate(symbol);\r\n }\r\n else {\r\n symbol.setColor(color);\r\n group.add(symbol);\r\n callback && callback.onUpdate(symbol);\r\n }\r\n var itemStyle = itemStyleModel.getItemStyle(['color']);\r\n symbol.setStyle(itemStyle);\r\n opt = merge({\r\n rectHover: true,\r\n z2: 100\r\n }, opt, true);\r\n var symbolSize = hostModel.get('symbolSize');\r\n symbolSize = symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n opt.scaleX = symbolSize[0] / 2;\r\n opt.scaleY = symbolSize[1] / 2;\r\n var symbolOffset = hostModel.get('symbolOffset');\r\n if (symbolOffset) {\r\n opt.x = opt.x || 0;\r\n opt.y = opt.y || 0;\r\n opt.x += parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n opt.y += parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n var symbolRotate = hostModel.get('symbolRotate');\r\n opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n symbol.attr(opt);\r\n symbol.updateTransform();\r\n return symbol;\r\n }\r\n function pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\r\n if (pointer.dragging) {\r\n return;\r\n }\r\n var pointerModel = timelineModel.getModel('checkpointStyle');\r\n var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\r\n if (noAnimation || !pointerModel.get('animation', true)) {\r\n pointer.attr({\r\n x: toCoord,\r\n y: 0\r\n });\r\n progressLine && progressLine.attr({\r\n shape: { x2: toCoord }\r\n });\r\n }\r\n else {\r\n var animationCfg = {\r\n duration: pointerModel.get('animationDuration', true),\r\n easing: pointerModel.get('animationEasing', true)\r\n };\r\n pointer.stopAnimation(null, true);\r\n pointer.animateTo({\r\n x: toCoord,\r\n y: 0\r\n }, animationCfg);\r\n progressLine && progressLine.animateTo({\r\n shape: { x2: toCoord }\r\n }, animationCfg);\r\n }\r\n }\r\n ComponentView.registerClass(SliderTimelineView);\n\n registerPreprocessor(preprocessor$2);\n\n function fillLabel(opt) {\r\n defaultEmphasis(opt, 'label', ['show']);\r\n }\r\n var inner$i = makeInner();\r\n var MarkerModel = (function (_super) {\r\n __extends(MarkerModel, _super);\r\n function MarkerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerModel.type;\r\n _this.createdBySelf = false;\r\n return _this;\r\n }\r\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\r\n if (__DEV__) {\r\n if (this.type === 'marker') {\r\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\r\n }\r\n }\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._mergeOption(option, ecModel, false, true);\r\n };\r\n MarkerModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var hostSeries = this.__hostSeries;\r\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\r\n };\r\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\r\n this._mergeOption(newOpt, ecModel, false, false);\r\n };\r\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\r\n var componentType = this.mainType;\r\n if (!createdBySelf) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerOpt = seriesModel.get(this.mainType, true);\r\n var markerModel = inner$i(seriesModel)[componentType];\r\n if (!markerOpt || !markerOpt.data) {\r\n inner$i(seriesModel)[componentType] = null;\r\n return;\r\n }\r\n if (!markerModel) {\r\n if (isInit) {\r\n fillLabel(markerOpt);\r\n }\r\n each(markerOpt.data, function (item) {\r\n if (item instanceof Array) {\r\n fillLabel(item[0]);\r\n fillLabel(item[1]);\r\n }\r\n else {\r\n fillLabel(item);\r\n }\r\n });\r\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\r\n extend(markerModel, {\r\n mainType: this.mainType,\r\n seriesIndex: seriesModel.seriesIndex,\r\n name: seriesModel.name,\r\n createdBySelf: true\r\n });\r\n markerModel.__hostSeries = seriesModel;\r\n }\r\n else {\r\n markerModel._mergeOption(markerOpt, ecModel, true);\r\n }\r\n inner$i(seriesModel)[componentType] = markerModel;\r\n }, this);\r\n }\r\n };\r\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var formattedValue = isArray(value)\r\n ? map(value, addCommas).join(', ') : addCommas(value);\r\n var name = encodeHTML(data.getName(dataIndex));\r\n var html = \"
\" + encodeHTML(this.name) + \"
\";\r\n if (value != null || name) {\r\n html += renderMode === 'html' ? '' : '\\n';\r\n }\r\n if (name) {\r\n html += \"
\" + name + \"\";\r\n }\r\n if (value != null) {\r\n html = renderMode === 'html'\r\n ? concatTooltipHtml(html, formattedValue, true) + (name ? '
' : '')\r\n : (html + formattedValue);\r\n }\r\n return html;\r\n };\r\n MarkerModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n MarkerModel.prototype.setData = function (data) {\r\n this._data = data;\r\n };\r\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\r\n return inner$i(seriesModel)[componentType];\r\n };\r\n MarkerModel.type = 'marker';\r\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\r\n return MarkerModel;\r\n }(ComponentModel));\r\n mixin(MarkerModel, DataFormatMixin.prototype);\n\n var MarkPointModel = (function (_super) {\r\n __extends(MarkPointModel, _super);\r\n function MarkPointModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointModel.type;\r\n return _this;\r\n }\r\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkPointModel.type = 'markPoint';\r\n MarkPointModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: 'pin',\r\n symbolSize: 50,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'inside'\r\n },\r\n itemStyle: {\r\n borderWidth: 2\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return MarkPointModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkPointModel);\n\n function hasXOrY(item) {\r\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\r\n }\r\n function hasXAndY(item) {\r\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\r\n }\r\n function markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\r\n var coordArr = [];\r\n var stacked = isDimensionStacked(data, targetDataDim);\r\n var calcDataDim = stacked\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDataDim;\r\n var value = numCalculate(data, calcDataDim, markerType);\r\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\r\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\r\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\r\n var coordArrValue = data.get(targetDataDim, dataIndex);\r\n var precision = getPrecision(data.get(targetDataDim, dataIndex));\r\n precision = Math.min(precision, 20);\r\n if (precision >= 0) {\r\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\r\n }\r\n return [coordArr, coordArrValue];\r\n }\r\n var markerTypeCalculator = {\r\n min: curry(markerTypeCalculatorWithExtent, 'min'),\r\n max: curry(markerTypeCalculatorWithExtent, 'max'),\r\n average: curry(markerTypeCalculatorWithExtent, 'average'),\r\n median: curry(markerTypeCalculatorWithExtent, 'median')\r\n };\r\n function dataTransform(seriesModel, item) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\r\n var dims = coordSys.dimensions;\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n item = clone(item);\r\n if (item.type\r\n && markerTypeCalculator[item.type]\r\n && axisInfo.baseAxis && axisInfo.valueAxis) {\r\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\r\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\r\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\r\n item.coord = coordInfo[0];\r\n item.value = coordInfo[1];\r\n }\r\n else {\r\n var coord = [\r\n item.xAxis != null ? item.xAxis : item.radiusAxis,\r\n item.yAxis != null ? item.yAxis : item.angleAxis\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n if (markerTypeCalculator[coord[i]]) {\r\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\r\n }\r\n }\r\n item.coord = coord;\r\n }\r\n }\r\n return item;\r\n }\r\n function getAxisInfo$1(item, data, coordSys, seriesModel) {\r\n var ret = {};\r\n if (item.valueIndex != null || item.valueDim != null) {\r\n ret.valueDataDim = item.valueIndex != null\r\n ? data.getDimension(item.valueIndex) : item.valueDim;\r\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\r\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n }\r\n else {\r\n ret.baseAxis = seriesModel.getBaseAxis();\r\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\r\n }\r\n return ret;\r\n }\r\n function dataDimToCoordDim(seriesModel, dataDim) {\r\n var data = seriesModel.getData();\r\n var dimensions = data.dimensions;\r\n dataDim = data.getDimension(dataDim);\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimItem = data.getDimensionInfo(dimensions[i]);\r\n if (dimItem.name === dataDim) {\r\n return dimItem.coordDim;\r\n }\r\n }\r\n }\r\n function dataFilter$1(coordSys, item) {\r\n return (coordSys && coordSys.containData && item.coord && !hasXOrY(item))\r\n ? coordSys.containData(item.coord) : true;\r\n }\r\n function dimValueGetter(item, dimName, dataIndex, dimIndex) {\r\n if (dimIndex < 2) {\r\n return item.coord && item.coord[dimIndex];\r\n }\r\n return item.value;\r\n }\r\n function numCalculate(data, valueDataDim, type) {\r\n if (type === 'average') {\r\n var sum_1 = 0;\r\n var count_1 = 0;\r\n data.each(valueDataDim, function (val, idx) {\r\n if (!isNaN(val)) {\r\n sum_1 += val;\r\n count_1++;\r\n }\r\n });\r\n return sum_1 / count_1;\r\n }\r\n else if (type === 'median') {\r\n return data.getMedian(valueDataDim);\r\n }\r\n else {\r\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\r\n }\r\n }\n\n var inner$j = makeInner();\r\n var MarkerView = (function (_super) {\r\n __extends(MarkerView, _super);\r\n function MarkerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerView.type;\r\n return _this;\r\n }\r\n MarkerView.prototype.init = function () {\r\n this.markerGroupMap = createHashMap();\r\n };\r\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\r\n var _this = this;\r\n var markerGroupMap = this.markerGroupMap;\r\n markerGroupMap.each(function (item) {\r\n inner$j(item).keep = false;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\r\n });\r\n markerGroupMap.each(function (item) {\r\n !inner$j(item).keep && _this.group.remove(item.group);\r\n });\r\n };\r\n MarkerView.prototype.markKeep = function (drawGroup) {\r\n inner$j(drawGroup).keep = true;\r\n };\r\n MarkerView.prototype.blurSeries = function (seriesModelList) {\r\n var _this = this;\r\n each(seriesModelList, function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n if (markerModel) {\r\n var data = markerModel.getData();\r\n data.eachItemGraphicEl(function (el) {\r\n if (el) {\r\n enterBlur(el);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n MarkerView.type = 'marker';\r\n return MarkerView;\r\n }(ComponentView));\n\n function updateMarkerLayout(mpData, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\r\n }\r\n else if (coordSys) {\r\n var x = mpData.get(coordSys.dimensions[0], idx);\r\n var y = mpData.get(coordSys.dimensions[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n mpData.setItemLayout(idx, point);\r\n });\r\n }\r\n var MarkPointView = (function (_super) {\r\n __extends(MarkPointView, _super);\r\n function MarkPointView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointView.type;\r\n return _this;\r\n }\r\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\r\n if (mpModel) {\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var symbolDrawMap = this.markerGroupMap;\r\n var symbolDraw = symbolDrawMap.get(seriesId)\r\n || symbolDrawMap.set(seriesId, new SymbolDraw());\r\n var mpData = createList$1(coordSys, seriesModel, mpModel);\r\n mpModel.setData(mpData);\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var symbol = itemModel.getShallow('symbol');\r\n var symbolSize = itemModel.getShallow('symbolSize');\r\n if (isFunction(symbol) || isFunction(symbolSize)) {\r\n var rawIdx = mpModel.getRawValue(idx);\r\n var dataParams = mpModel.getDataParams(idx);\r\n if (isFunction(symbol)) {\r\n symbol = symbol(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolSize)) {\r\n symbolSize = symbolSize(rawIdx, dataParams);\r\n }\r\n }\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n var color = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color;\r\n }\r\n mpData.setItemVisual(idx, {\r\n symbol: symbol,\r\n symbolSize: symbolSize,\r\n style: style\r\n });\r\n });\r\n symbolDraw.updateData(mpData);\r\n this.group.add(symbolDraw.group);\r\n mpData.eachItemGraphicEl(function (el) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mpModel;\r\n });\r\n });\r\n this.markKeep(symbolDraw);\r\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkPointView.type = 'markPoint';\r\n return MarkPointView;\r\n }(MarkerView));\r\n function createList$1(coordSys, seriesModel, mpModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var mpData = new List(coordDimsInfos, mpModel);\r\n var dataOpt = map(mpModel.get('data'), curry(dataTransform, seriesModel));\r\n if (coordSys) {\r\n dataOpt = filter(dataOpt, curry(dataFilter$1, coordSys));\r\n }\r\n mpData.initData(dataOpt, null, coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n });\r\n return mpData;\r\n }\r\n ComponentView.registerClass(MarkPointView);\n\n registerPreprocessor(function (opt) {\r\n opt.markPoint = opt.markPoint || {};\r\n });\n\n var MarkLineModel = (function (_super) {\r\n __extends(MarkLineModel, _super);\r\n function MarkLineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineModel.type;\r\n return _this;\r\n }\r\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkLineModel.type = 'markLine';\r\n MarkLineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: ['circle', 'arrow'],\r\n symbolSize: [8, 16],\r\n precision: 2,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'end',\r\n distance: 5\r\n },\r\n lineStyle: {\r\n type: 'dashed'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n width: 3\r\n }\r\n },\r\n animationEasing: 'linear'\r\n };\r\n return MarkLineModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkLineModel);\n\n var inner$k = makeInner();\r\n var markLineTransform = function (seriesModel, coordSys, mlModel, item) {\r\n var data = seriesModel.getData();\r\n var itemArray;\r\n if (!isArray(item)) {\r\n var mlType = item.type;\r\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median'\r\n || (item.xAxis != null || item.yAxis != null)) {\r\n var valueAxis = void 0;\r\n var value = void 0;\r\n if (item.yAxis != null || item.xAxis != null) {\r\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\r\n value = retrieve(item.yAxis, item.xAxis);\r\n }\r\n else {\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n valueAxis = axisInfo.valueAxis;\r\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\r\n value = numCalculate(data, valueDataDim, mlType);\r\n }\r\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\r\n var baseIndex = 1 - valueIndex;\r\n var mlFrom = clone(item);\r\n var mlTo = {\r\n coord: []\r\n };\r\n mlFrom.type = null;\r\n mlFrom.coord = [];\r\n mlFrom.coord[baseIndex] = -Infinity;\r\n mlTo.coord[baseIndex] = Infinity;\r\n var precision = mlModel.get('precision');\r\n if (precision >= 0 && typeof value === 'number') {\r\n value = +value.toFixed(Math.min(precision, 20));\r\n }\r\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\r\n itemArray = [mlFrom, mlTo, {\r\n type: mlType,\r\n valueIndex: item.valueIndex,\r\n value: value\r\n }];\r\n }\r\n else {\r\n if (__DEV__) {\r\n logError('Invalid markLine data.');\r\n }\r\n itemArray = [];\r\n }\r\n }\r\n else {\r\n itemArray = item;\r\n }\r\n var normalizedItem = [\r\n dataTransform(seriesModel, itemArray[0]),\r\n dataTransform(seriesModel, itemArray[1]),\r\n extend({}, itemArray[2])\r\n ];\r\n normalizedItem[2].type = normalizedItem[2].type || null;\r\n merge(normalizedItem[2], normalizedItem[0]);\r\n merge(normalizedItem[2], normalizedItem[1]);\r\n return normalizedItem;\r\n };\r\n function isInifinity(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n var dimName = coordSys.dimensions[dimIndex];\r\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex])\r\n && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\r\n }\r\n function markLineFilter(coordSys, item) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var fromCoord = item[0].coord;\r\n var toCoord = item[1].coord;\r\n if (fromCoord && toCoord\r\n && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys)\r\n || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, item[0])\r\n && dataFilter$1(coordSys, item[1]);\r\n }\r\n function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\r\n }\r\n else {\r\n var dims = coordSys.dimensions;\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var dims = coordSys.dimensions;\r\n if (isInifinity(data.get(dims[0], idx))) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n else if (isInifinity(data.get(dims[1], idx))) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n data.setItemLayout(idx, point);\r\n }\r\n var MarkLineView = (function (_super) {\r\n __extends(MarkLineView, _super);\r\n function MarkLineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineView.type;\r\n return _this;\r\n }\r\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\r\n if (mlModel) {\r\n var mlData_1 = mlModel.getData();\r\n var fromData_1 = inner$k(mlModel).from;\r\n var toData_1 = inner$k(mlModel).to;\r\n fromData_1.each(function (idx) {\r\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\r\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\r\n });\r\n mlData_1.each(function (idx) {\r\n mlData_1.setItemLayout(idx, [\r\n fromData_1.getItemLayout(idx),\r\n toData_1.getItemLayout(idx)\r\n ]);\r\n });\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var lineDrawMap = this.markerGroupMap;\r\n var lineDraw = lineDrawMap.get(seriesId)\r\n || lineDrawMap.set(seriesId, new LineDraw());\r\n this.group.add(lineDraw.group);\r\n var mlData = createList$2(coordSys, seriesModel, mlModel);\r\n var fromData = mlData.from;\r\n var toData = mlData.to;\r\n var lineData = mlData.line;\r\n inner$k(mlModel).from = fromData;\r\n inner$k(mlModel).to = toData;\r\n mlModel.setData(lineData);\r\n var symbolType = mlModel.get('symbol');\r\n var symbolSize = mlModel.get('symbolSize');\r\n if (!isArray(symbolType)) {\r\n symbolType = [symbolType, symbolType];\r\n }\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [symbolSize, symbolSize];\r\n }\r\n mlData.from.each(function (idx) {\r\n updateDataVisualAndLayout(fromData, idx, true);\r\n updateDataVisualAndLayout(toData, idx, false);\r\n });\r\n lineData.each(function (idx) {\r\n var lineStyle = lineData.getItemModel(idx)\r\n .getModel('lineStyle').getLineStyle();\r\n lineData.setItemLayout(idx, [\r\n fromData.getItemLayout(idx),\r\n toData.getItemLayout(idx)\r\n ]);\r\n if (lineStyle.stroke == null) {\r\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\r\n }\r\n lineData.setItemVisual(idx, {\r\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\r\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\r\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\r\n toSymbol: toData.getItemVisual(idx, 'symbol'),\r\n style: lineStyle\r\n });\r\n });\r\n lineDraw.updateData(lineData);\r\n mlData.line.eachItemGraphicEl(function (el, idx) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mlModel;\r\n });\r\n });\r\n function updateDataVisualAndLayout(data, idx, isFrom) {\r\n var itemModel = data.getItemModel(idx);\r\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (style.fill == null) {\r\n style.fill = getVisualFromData(seriesData, 'color');\r\n }\r\n data.setItemVisual(idx, {\r\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\r\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\r\n style: style\r\n });\r\n }\r\n this.markKeep(lineDraw);\r\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkLineView.type = 'markLine';\r\n return MarkLineView;\r\n }(MarkerView));\r\n function createList$2(coordSys, seriesModel, mlModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var fromData = new List(coordDimsInfos, mlModel);\r\n var toData = new List(coordDimsInfos, mlModel);\r\n var lineData = new List([], mlModel);\r\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markLineFilter, coordSys));\r\n }\r\n var dimValueGetter$1 = coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n };\r\n fromData.initData(map(optData, function (item) {\r\n return item[0];\r\n }), null, dimValueGetter$1);\r\n toData.initData(map(optData, function (item) {\r\n return item[1];\r\n }), null, dimValueGetter$1);\r\n lineData.initData(map(optData, function (item) {\r\n return item[2];\r\n }));\r\n lineData.hasItemOption = true;\r\n return {\r\n from: fromData,\r\n to: toData,\r\n line: lineData\r\n };\r\n }\r\n ComponentView.registerClass(MarkLineView);\n\n registerPreprocessor(function (opt) {\r\n opt.markLine = opt.markLine || {};\r\n });\n\n var MarkAreaModel = (function (_super) {\r\n __extends(MarkAreaModel, _super);\r\n function MarkAreaModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaModel.type;\r\n return _this;\r\n }\r\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkAreaModel.type = 'markArea';\r\n MarkAreaModel.defaultOption = {\r\n zlevel: 0,\r\n z: 1,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n animation: false,\r\n label: {\r\n show: true,\r\n position: 'top'\r\n },\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n position: 'top'\r\n }\r\n }\r\n };\r\n return MarkAreaModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkAreaModel);\n\n var inner$l = makeInner();\r\n var markAreaTransform = function (seriesModel, coordSys, maModel, item) {\r\n var lt = dataTransform(seriesModel, item[0]);\r\n var rb = dataTransform(seriesModel, item[1]);\r\n var ltCoord = lt.coord;\r\n var rbCoord = rb.coord;\r\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\r\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\r\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\r\n rbCoord[1] = retrieve(rbCoord[1], Infinity);\r\n var result = mergeAll([{}, lt, rb]);\r\n result.coord = [\r\n lt.coord, rb.coord\r\n ];\r\n result.x0 = lt.x;\r\n result.y0 = lt.y;\r\n result.x1 = rb.x;\r\n result.y1 = rb.y;\r\n return result;\r\n };\r\n function isInifinity$1(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n return isInifinity$1(fromCoord[otherDimIndex]) && isInifinity$1(toCoord[otherDimIndex]);\r\n }\r\n function markAreaFilter(coordSys, item) {\r\n var fromCoord = item.coord[0];\r\n var toCoord = item.coord[1];\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n if (fromCoord && toCoord\r\n && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord)\r\n || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, {\r\n coord: fromCoord,\r\n x: item.x0,\r\n y: item.y0\r\n })\r\n || dataFilter$1(coordSys, {\r\n coord: toCoord,\r\n x: item.x1,\r\n y: item.y1\r\n });\r\n }\r\n function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get(dims[0]), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get(dims[1]), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\r\n }\r\n else {\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n var pt = [x, y];\r\n coordSys.clampData && coordSys.clampData(pt, pt);\r\n point = coordSys.dataToPoint(pt, true);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n if (isInifinity$1(x)) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\r\n }\r\n else if (isInifinity$1(y)) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n return point;\r\n }\r\n var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\r\n var MarkAreaView = (function (_super) {\r\n __extends(MarkAreaView, _super);\r\n function MarkAreaView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaView.type;\r\n return _this;\r\n }\r\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\r\n if (maModel) {\r\n var areaData_1 = maModel.getData();\r\n areaData_1.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\r\n });\r\n areaData_1.setItemLayout(idx, points);\r\n var el = areaData_1.getItemGraphicEl(idx);\r\n el.setShape('points', points);\r\n });\r\n }\r\n }, this);\r\n };\r\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var areaGroupMap = this.markerGroupMap;\r\n var polygonGroup = areaGroupMap.get(seriesId)\r\n || areaGroupMap.set(seriesId, { group: new Group() });\r\n this.group.add(polygonGroup.group);\r\n this.markKeep(polygonGroup);\r\n var areaData = createList$3(coordSys, seriesModel, maModel);\r\n maModel.setData(areaData);\r\n areaData.each(function (idx) {\r\n areaData.setItemLayout(idx, map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\r\n }));\r\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\r\n var color$1 = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color$1;\r\n if (typeof style.fill === 'string') {\r\n style.fill = modifyAlpha(style.fill, 0.4);\r\n }\r\n }\r\n if (!style.stroke) {\r\n style.stroke = color$1;\r\n }\r\n areaData.setItemVisual(idx, 'style', style);\r\n });\r\n areaData.diff(inner$l(polygonGroup).data)\r\n .add(function (idx) {\r\n var polygon = new Polygon({\r\n shape: {\r\n points: areaData.getItemLayout(idx)\r\n }\r\n });\r\n areaData.setItemGraphicEl(idx, polygon);\r\n polygonGroup.group.add(polygon);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var polygon = inner$l(polygonGroup).data.getItemGraphicEl(oldIdx);\r\n updateProps(polygon, {\r\n shape: {\r\n points: areaData.getItemLayout(newIdx)\r\n }\r\n }, maModel, newIdx);\r\n polygonGroup.group.add(polygon);\r\n areaData.setItemGraphicEl(newIdx, polygon);\r\n })\r\n .remove(function (idx) {\r\n var polygon = inner$l(polygonGroup).data.getItemGraphicEl(idx);\r\n polygonGroup.group.remove(polygon);\r\n })\r\n .execute();\r\n areaData.eachItemGraphicEl(function (polygon, idx) {\r\n var itemModel = areaData.getItemModel(idx);\r\n var style = areaData.getItemVisual(idx, 'style');\r\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\r\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\r\n labelFetcher: maModel,\r\n labelDataIndex: idx,\r\n defaultText: areaData.getName(idx) || '',\r\n inheritColor: typeof style.fill === 'string'\r\n ? modifyAlpha(style.fill, 1) : '#000'\r\n });\r\n setStatesStylesFromModel(polygon, itemModel);\r\n enableHoverEmphasis(polygon);\r\n getECData(polygon).dataModel = maModel;\r\n });\r\n inner$l(polygonGroup).data = areaData;\r\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkAreaView.type = 'markArea';\r\n return MarkAreaView;\r\n }(MarkerView));\r\n function createList$3(coordSys, seriesModel, maModel) {\r\n var coordDimsInfos;\r\n var areaData;\r\n var dims = ['x0', 'y0', 'x1', 'y1'];\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var data = seriesModel.getData();\r\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\r\n return defaults({\r\n name: coordDim\r\n }, info);\r\n });\r\n areaData = new List(map(dims, function (dim, idx) {\r\n return {\r\n name: dim,\r\n type: coordDimsInfos[idx % 2].type\r\n };\r\n }), maModel);\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n areaData = new List(coordDimsInfos, maModel);\r\n }\r\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markAreaFilter, coordSys));\r\n }\r\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\r\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\r\n } : function (item) {\r\n return item.value;\r\n };\r\n areaData.initData(optData, null, dimValueGetter);\r\n areaData.hasItemOption = true;\r\n return areaData;\r\n }\r\n ComponentView.registerClass(MarkAreaView);\n\n registerPreprocessor(function (opt) {\r\n opt.markArea = opt.markArea || {};\r\n });\n\n var getDefaultSelectorOptions = function (ecModel, type) {\r\n if (type === 'all') {\r\n return {\r\n type: 'all',\r\n title: ecModel.getLocale(['legend', 'selector', 'all'])\r\n };\r\n }\r\n else if (type === 'inverse') {\r\n return {\r\n type: 'inverse',\r\n title: ecModel.getLocale(['legend', 'selector', 'inverse'])\r\n };\r\n }\r\n };\r\n var LegendModel = (function (_super) {\r\n __extends(LegendModel, _super);\r\n function LegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendModel.type;\r\n _this.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n return _this;\r\n }\r\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n option.selected = option.selected || {};\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype._updateSelector = function (option) {\r\n var selector = option.selector;\r\n var ecModel = this.ecModel;\r\n if (selector === true) {\r\n selector = option.selector = ['all', 'inverse'];\r\n }\r\n if (isArray(selector)) {\r\n each(selector, function (item, index) {\r\n isString(item) && (item = { type: item });\r\n selector[index] = merge(item, getDefaultSelectorOptions(ecModel, item.type));\r\n });\r\n }\r\n };\r\n LegendModel.prototype.optionUpdated = function () {\r\n this._updateData(this.ecModel);\r\n var legendData = this._data;\r\n if (legendData[0] && this.get('selectedMode') === 'single') {\r\n var hasSelected = false;\r\n for (var i = 0; i < legendData.length; i++) {\r\n var name_1 = legendData[i].get('name');\r\n if (this.isSelected(name_1)) {\r\n this.select(name_1);\r\n hasSelected = true;\r\n break;\r\n }\r\n }\r\n !hasSelected && this.select(legendData[0].get('name'));\r\n }\r\n };\r\n LegendModel.prototype._updateData = function (ecModel) {\r\n var potentialData = [];\r\n var availableNames = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var seriesName = seriesModel.name;\r\n availableNames.push(seriesName);\r\n var isPotential;\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n var names = provider.getAllNames();\r\n if (!ecModel.isSeriesFiltered(seriesModel)) {\r\n availableNames = availableNames.concat(names);\r\n }\r\n if (names.length) {\r\n potentialData = potentialData.concat(names);\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n if (isPotential && isNameSpecified(seriesModel)) {\r\n potentialData.push(seriesModel.name);\r\n }\r\n });\r\n this._availableNames = availableNames;\r\n var rawData = this.get('data') || potentialData;\r\n var legendData = map(rawData, function (dataItem) {\r\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\r\n dataItem = {\r\n name: dataItem\r\n };\r\n }\r\n return new Model(dataItem, this, this.ecModel);\r\n }, this);\r\n this._data = legendData;\r\n };\r\n LegendModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n LegendModel.prototype.select = function (name) {\r\n var selected = this.option.selected;\r\n var selectedMode = this.get('selectedMode');\r\n if (selectedMode === 'single') {\r\n var data = this._data;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name')] = false;\r\n });\r\n }\r\n selected[name] = true;\r\n };\r\n LegendModel.prototype.unSelect = function (name) {\r\n if (this.get('selectedMode') !== 'single') {\r\n this.option.selected[name] = false;\r\n }\r\n };\r\n LegendModel.prototype.toggleSelected = function (name) {\r\n var selected = this.option.selected;\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n this[selected[name] ? 'unSelect' : 'select'](name);\r\n };\r\n LegendModel.prototype.allSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name', true)] = true;\r\n });\r\n };\r\n LegendModel.prototype.inverseSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n var name = dataItem.get('name', true);\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n selected[name] = !selected[name];\r\n });\r\n };\r\n LegendModel.prototype.isSelected = function (name) {\r\n var selected = this.option.selected;\r\n return !(selected.hasOwnProperty(name) && !selected[name])\r\n && indexOf(this._availableNames, name) >= 0;\r\n };\r\n LegendModel.prototype.getOrient = function () {\r\n return this.get('orient') === 'vertical'\r\n ? { index: 1, name: 'vertical' }\r\n : { index: 0, name: 'horizontal' };\r\n };\r\n LegendModel.type = 'legend.plain';\r\n LegendModel.dependencies = ['series'];\r\n LegendModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n orient: 'horizontal',\r\n left: 'center',\r\n top: 0,\r\n align: 'auto',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n itemWidth: 25,\r\n itemHeight: 14,\r\n inactiveColor: '#ccc',\r\n inactiveBorderColor: '#ccc',\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n textStyle: {\r\n color: '#333'\r\n },\r\n selectedMode: true,\r\n selector: false,\r\n selectorLabel: {\r\n show: true,\r\n borderRadius: 10,\r\n padding: [3, 5, 3, 5],\r\n fontSize: 12,\r\n fontFamily: ' sans-serif',\r\n color: '#666',\r\n borderWidth: 1,\r\n borderColor: '#666'\r\n },\r\n emphasis: {\r\n selectorLabel: {\r\n show: true,\r\n color: '#eee',\r\n backgroundColor: '#666'\r\n }\r\n },\r\n selectorPosition: 'auto',\r\n selectorItemGap: 7,\r\n selectorButtonGap: 10,\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return LegendModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(LegendModel);\n\n function legendSelectActionHandler(methodName, payload, ecModel) {\r\n var selectedMap = {};\r\n var isToggleSelect = methodName === 'toggleSelected';\r\n var isSelected;\r\n ecModel.eachComponent('legend', function (legendModel) {\r\n if (isToggleSelect && isSelected != null) {\r\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\r\n }\r\n else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\r\n legendModel[methodName]();\r\n }\r\n else {\r\n legendModel[methodName](payload.name);\r\n isSelected = legendModel.isSelected(payload.name);\r\n }\r\n var legendData = legendModel.getData();\r\n each(legendData, function (model) {\r\n var name = model.get('name');\r\n if (name === '\\n' || name === '') {\r\n return;\r\n }\r\n var isItemSelected = legendModel.isSelected(name);\r\n if (selectedMap.hasOwnProperty(name)) {\r\n selectedMap[name] = selectedMap[name] && isItemSelected;\r\n }\r\n else {\r\n selectedMap[name] = isItemSelected;\r\n }\r\n });\r\n });\r\n return (methodName === 'allSelect' || methodName === 'inverseSelect')\r\n ? {\r\n selected: selectedMap\r\n }\r\n : {\r\n name: payload.name,\r\n selected: selectedMap\r\n };\r\n }\r\n registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\r\n registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\r\n registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\r\n registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\r\n registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n\n var curry$1 = curry;\r\n var each$f = each;\r\n var Group$2 = Group;\r\n var LegendView = (function (_super) {\r\n __extends(LegendView, _super);\r\n function LegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendView.type;\r\n _this.newlineDisabled = false;\r\n return _this;\r\n }\r\n LegendView.prototype.init = function () {\r\n this.group.add(this._contentGroup = new Group$2());\r\n this.group.add(this._selectorGroup = new Group$2());\r\n this._isFirstRender = true;\r\n };\r\n LegendView.prototype.getContentGroup = function () {\r\n return this._contentGroup;\r\n };\r\n LegendView.prototype.getSelectorGroup = function () {\r\n return this._selectorGroup;\r\n };\r\n LegendView.prototype.render = function (legendModel, ecModel, api) {\r\n var isFirstRender = this._isFirstRender;\r\n this._isFirstRender = false;\r\n this.resetInner();\r\n if (!legendModel.get('show', true)) {\r\n return;\r\n }\r\n var itemAlign = legendModel.get('align');\r\n var orient = legendModel.get('orient');\r\n if (!itemAlign || itemAlign === 'auto') {\r\n itemAlign = (legendModel.get('left') === 'right'\r\n && orient === 'vertical') ? 'right' : 'left';\r\n }\r\n var selector = legendModel.get('selector', true);\r\n var selectorPosition = legendModel.get('selectorPosition', true);\r\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\r\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\r\n }\r\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var positionInfo = legendModel.getBoxLayoutParams();\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var padding = legendModel.get('padding');\r\n var maxSize = getLayoutRect(positionInfo, viewportSize, padding);\r\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\r\n var layoutRect = getLayoutRect(defaults({\r\n width: mainRect.width,\r\n height: mainRect.height\r\n }, positionInfo), viewportSize, padding);\r\n this.group.x = layoutRect.x - mainRect.x;\r\n this.group.y = layoutRect.y - mainRect.y;\r\n this.group.markRedraw();\r\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\r\n };\r\n LegendView.prototype.resetInner = function () {\r\n this.getContentGroup().removeAll();\r\n this._backgroundEl && this.group.remove(this._backgroundEl);\r\n this.getSelectorGroup().removeAll();\r\n };\r\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var legendDrawnMap = createHashMap();\r\n var selectMode = legendModel.get('selectedMode');\r\n var excludeSeriesId = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\r\n });\r\n each$f(legendModel.getData(), function (itemModel, dataIndex) {\r\n var name = itemModel.get('name');\r\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\r\n var g = new Group$2();\r\n g.newline = true;\r\n contentGroup.add(g);\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByName(name)[0];\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel) {\r\n var data = seriesModel.getData();\r\n var style = data.getVisual('style');\r\n var color = style[data.getVisual('drawType')] || style.fill;\r\n var borderColor = style.stroke;\r\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\r\n var symbolType = data.getVisual('symbol');\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, name, null, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n else {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n if (!provider.containName(name)) {\r\n return;\r\n }\r\n var idx = provider.indexOfName(name);\r\n var style = provider.getItemVisual(idx, 'style');\r\n var borderColor = style.stroke;\r\n var color = style.fill;\r\n var colorArr = parse(style.fill);\r\n if (colorArr && colorArr[3] === 0) {\r\n colorArr[3] = 0.2;\r\n color = stringify(colorArr, 'rgba');\r\n }\r\n var legendSymbolType = 'roundRect';\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, null, name, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, null, name, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, null, name, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n }, this);\r\n }\r\n if (__DEV__) {\r\n if (!legendDrawnMap.get(name)) {\r\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\r\n }\r\n }\r\n }, this);\r\n if (selector) {\r\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\r\n }\r\n };\r\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n each$f(selector, function createSelectorButton(selectorItem) {\r\n var type = selectorItem.type;\r\n var labelText = new ZRText({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n },\r\n onclick: function () {\r\n api.dispatchAction({\r\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\r\n });\r\n }\r\n });\r\n selectorGroup.add(labelText);\r\n var labelModel = legendModel.getModel('selectorLabel');\r\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\r\n setLabelStyle(labelText, { normal: labelModel, emphasis: emphasisLabelModel }, {\r\n defaultText: selectorItem.title\r\n });\r\n enableHoverEmphasis(labelText);\r\n });\r\n };\r\n LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, selectMode) {\r\n var itemWidth = legendModel.get('itemWidth');\r\n var itemHeight = legendModel.get('itemHeight');\r\n var inactiveColor = legendModel.get('inactiveColor');\r\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\r\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\r\n var legendModelItemStyle = legendModel.getModel('itemStyle');\r\n var isSelected = legendModel.isSelected(name);\r\n var itemGroup = new Group$2();\r\n var textStyleModel = itemModel.getModel('textStyle');\r\n var itemIcon = itemModel.get('icon');\r\n var tooltipModel = itemModel.getModel('tooltip');\r\n var legendGlobalTooltipModel = tooltipModel.parentModel;\r\n legendSymbolType = itemIcon || legendSymbolType;\r\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n if (!itemIcon && symbolType\r\n && ((symbolType !== legendSymbolType) || symbolType === 'none')) {\r\n var size = itemHeight * 0.8;\r\n if (symbolType === 'none') {\r\n symbolType = 'circle';\r\n }\r\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected));\r\n }\r\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\r\n var textAlign = itemAlign;\r\n var formatter = legendModel.get('formatter');\r\n var content = name;\r\n if (typeof formatter === 'string' && formatter) {\r\n content = formatter.replace('{name}', name != null ? name : '');\r\n }\r\n else if (typeof formatter === 'function') {\r\n content = formatter(name);\r\n }\r\n itemGroup.add(new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: content,\r\n x: textX,\r\n y: itemHeight / 2,\r\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\r\n align: textAlign,\r\n verticalAlign: 'middle'\r\n })\r\n }));\r\n var hitRect = new Rect({\r\n shape: itemGroup.getBoundingRect(),\r\n invisible: true\r\n });\r\n if (tooltipModel.get('show')) {\r\n var formatterParams = {\r\n componentType: 'legend',\r\n legendIndex: legendModel.componentIndex,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n hitRect.tooltip = extend({\r\n content: name,\r\n formatter: legendGlobalTooltipModel.get('formatter', true)\r\n || function (params) {\r\n return params.name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipModel.option);\r\n }\r\n itemGroup.add(hitRect);\r\n itemGroup.eachChild(function (child) {\r\n child.silent = true;\r\n });\r\n hitRect.silent = !selectMode;\r\n this.getContentGroup().add(itemGroup);\r\n enableHoverEmphasis(itemGroup);\r\n itemGroup.__legendDataIndex = dataIndex;\r\n return itemGroup;\r\n };\r\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var selectorGroup = this.getSelectorGroup();\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\r\n var contentRect = contentGroup.getBoundingRect();\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n selectorGroup.markRedraw();\r\n contentGroup.markRedraw();\r\n if (selector) {\r\n box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = orientIdx === 0 ? 'width' : 'height';\r\n var hw = orientIdx === 0 ? 'height' : 'width';\r\n var yx = orientIdx === 0 ? 'y' : 'x';\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\r\n }\r\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n return mainRect;\r\n }\r\n else {\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n return this.group.getBoundingRect();\r\n }\r\n };\r\n LegendView.prototype.remove = function () {\r\n this.getContentGroup().removeAll();\r\n this._isFirstRender = true;\r\n };\r\n LegendView.type = 'legend.plain';\r\n return LegendView;\r\n }(ComponentView));\r\n function setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, isSelected) {\r\n var itemStyle;\r\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\r\n itemStyle = legendModelItemStyle.getItemStyle();\r\n symbol.style.stroke = borderColor;\r\n if (!isSelected) {\r\n itemStyle.stroke = inactiveBorderColor;\r\n }\r\n }\r\n else {\r\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\r\n }\r\n symbol.setStyle(itemStyle);\r\n return symbol;\r\n }\r\n function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\r\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\r\n api.dispatchAction({\r\n type: 'legendToggleSelect',\r\n name: seriesName != null ? seriesName : dataName\r\n });\r\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\r\n }\r\n function isUseHoverLayer(api) {\r\n var list = api.getZr().storage.getDisplayList();\r\n var emphasisState;\r\n var i = 0;\r\n var len = list.length;\r\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\r\n i++;\r\n }\r\n return emphasisState && emphasisState.hoverLayer;\r\n }\r\n function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'highlight',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'downplay',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n ComponentView.registerClass(LegendView);\n\n function legendFilter (ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (legendModels && legendModels.length) {\r\n ecModel.filterSeries(function (series) {\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(series.name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\r\n ComponentModel.registerSubTypeDefaulter('legend', function () {\r\n return 'plain';\r\n });\n\n var ScrollableLegendModel = (function (_super) {\r\n __extends(ScrollableLegendModel, _super);\r\n function ScrollableLegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendModel.type;\r\n return _this;\r\n }\r\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\r\n this.option.scrollDataIndex = scrollDataIndex;\r\n };\r\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n mergeAndNormalizeLayoutParams$1(this, option, inputPositionParams);\r\n };\r\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n mergeAndNormalizeLayoutParams$1(this, this.option, option);\r\n };\r\n ScrollableLegendModel.type = 'legend.scroll';\r\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\r\n scrollDataIndex: 0,\r\n pageButtonItemGap: 5,\r\n pageButtonGap: null,\r\n pageButtonPosition: 'end',\r\n pageFormatter: '{current}/{total}',\r\n pageIcons: {\r\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\r\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\r\n },\r\n pageIconColor: '#2f4554',\r\n pageIconInactiveColor: '#aaa',\r\n pageIconSize: 15,\r\n pageTextStyle: {\r\n color: '#333'\r\n },\r\n animationDurationUpdate: 800\r\n });\r\n return ScrollableLegendModel;\r\n }(LegendModel));\r\n function mergeAndNormalizeLayoutParams$1(legendModel, target, raw) {\r\n var orient = legendModel.getOrient();\r\n var ignoreSize = [1, 1];\r\n ignoreSize[orient.index] = 0;\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: !!ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(ScrollableLegendModel);\n\n var Group$3 = Group;\r\n var WH$1 = ['width', 'height'];\r\n var XY$1 = ['x', 'y'];\r\n var ScrollableLegendView = (function (_super) {\r\n __extends(ScrollableLegendView, _super);\r\n function ScrollableLegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendView.type;\r\n _this.newlineDisabled = true;\r\n _this._currentIndex = 0;\r\n return _this;\r\n }\r\n ScrollableLegendView.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n this.group.add(this._containerGroup = new Group$3());\r\n this._containerGroup.add(this.getContentGroup());\r\n this.group.add(this._controllerGroup = new Group$3());\r\n };\r\n ScrollableLegendView.prototype.resetInner = function () {\r\n _super.prototype.resetInner.call(this);\r\n this._controllerGroup.removeAll();\r\n this._containerGroup.removeClipPath();\r\n this._containerGroup.__rectSize = null;\r\n };\r\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var self = this;\r\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var controllerGroup = this._controllerGroup;\r\n var pageIconSize = legendModel.get('pageIconSize', true);\r\n var pageIconSizeArr = isArray(pageIconSize)\r\n ? pageIconSize : [pageIconSize, pageIconSize];\r\n createPageButton('pagePrev', 0);\r\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\r\n controllerGroup.add(new ZRText({\r\n name: 'pageText',\r\n style: {\r\n text: 'xx/xx',\r\n fill: pageTextStyleModel.getTextColor(),\r\n font: pageTextStyleModel.getFont(),\r\n verticalAlign: 'middle',\r\n align: 'center'\r\n },\r\n silent: true\r\n }));\r\n createPageButton('pageNext', 1);\r\n function createPageButton(name, iconIdx) {\r\n var pageDataIndexName = (name + 'DataIndex');\r\n var icon = createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\r\n onclick: bind(self._pageGo, self, pageDataIndexName, legendModel, api)\r\n }, {\r\n x: -pageIconSizeArr[0] / 2,\r\n y: -pageIconSizeArr[1] / 2,\r\n width: pageIconSizeArr[0],\r\n height: pageIconSizeArr[1]\r\n });\r\n icon.name = name;\r\n controllerGroup.add(icon);\r\n }\r\n };\r\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH$1[orientIdx];\r\n var xy = XY$1[orientIdx];\r\n var hw = WH$1[1 - orientIdx];\r\n var yx = XY$1[1 - orientIdx];\r\n selector && box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var processMaxSize = clone(maxSize);\r\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\r\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\r\n if (selector) {\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n var offset = selectorRect[wh] + selectorButtonGap;\r\n selectorPos[orientIdx] -= offset;\r\n mainRect[xy] -= offset;\r\n }\r\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\r\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\r\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n selectorGroup.markRedraw();\r\n }\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\r\n var contentGroup = this.getContentGroup();\r\n var containerGroup = this._containerGroup;\r\n var controllerGroup = this._controllerGroup;\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\r\n box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\r\n var contentRect = contentGroup.getBoundingRect();\r\n var controllerRect = controllerGroup.getBoundingRect();\r\n var showController = this._showController = contentRect[wh] > maxSize[wh];\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n if (!isFirstRender) {\r\n contentPos[orientIdx] = contentGroup[yx];\r\n }\r\n var containerPos = [0, 0];\r\n var controllerPos = [-controllerRect.x, -controllerRect.y];\r\n var pageButtonGap = retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\r\n if (showController) {\r\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\r\n if (pageButtonPosition === 'end') {\r\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\r\n }\r\n else {\r\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\r\n }\r\n }\r\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\r\n contentGroup.setPosition(contentPos);\r\n containerGroup.setPosition(containerPos);\r\n controllerGroup.setPosition(controllerPos);\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\r\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\r\n containerGroup.__rectSize = maxSize[wh];\r\n if (showController) {\r\n var clipShape = { x: 0, y: 0 };\r\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\r\n clipShape[hw] = mainRect[hw];\r\n containerGroup.setClipPath(new Rect({ shape: clipShape }));\r\n containerGroup.__rectSize = clipShape[wh];\r\n }\r\n else {\r\n controllerGroup.eachChild(function (child) {\r\n child.attr({\r\n invisible: true,\r\n silent: true\r\n });\r\n });\r\n }\r\n var pageInfo = this._getPageInfo(legendModel);\r\n pageInfo.pageIndex != null && updateProps(contentGroup, { x: pageInfo.contentPosition[0], y: pageInfo.contentPosition[1] }, showController ? legendModel : null);\r\n this._updatePageInfoView(legendModel, pageInfo);\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\r\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\r\n scrollDataIndex != null && api.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: scrollDataIndex,\r\n legendId: legendModel.id\r\n });\r\n };\r\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\r\n var controllerGroup = this._controllerGroup;\r\n each(['pagePrev', 'pageNext'], function (name) {\r\n var key = (name + 'DataIndex');\r\n var canJump = pageInfo[key] != null;\r\n var icon = controllerGroup.childOfName(name);\r\n if (icon) {\r\n icon.setStyle('fill', canJump\r\n ? legendModel.get('pageIconColor', true)\r\n : legendModel.get('pageIconInactiveColor', true));\r\n icon.cursor = canJump ? 'pointer' : 'default';\r\n }\r\n });\r\n var pageText = controllerGroup.childOfName('pageText');\r\n var pageFormatter = legendModel.get('pageFormatter');\r\n var pageIndex = pageInfo.pageIndex;\r\n var current = pageIndex != null ? pageIndex + 1 : 0;\r\n var total = pageInfo.pageCount;\r\n pageText && pageFormatter && pageText.setStyle('text', isString(pageFormatter)\r\n ? pageFormatter.replace('{current}', current == null ? '' : current + '')\r\n .replace('{total}', total == null ? '' : total + '')\r\n : pageFormatter({ current: current, total: total }));\r\n };\r\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\r\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\r\n var contentGroup = this.getContentGroup();\r\n var containerRectSize = this._containerGroup.__rectSize;\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH$1[orientIdx];\r\n var xy = XY$1[orientIdx];\r\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\r\n var children = contentGroup.children();\r\n var targetItem = children[targetItemIndex];\r\n var itemCount = children.length;\r\n var pCount = !itemCount ? 0 : 1;\r\n var result = {\r\n contentPosition: [contentGroup.x, contentGroup.y],\r\n pageCount: pCount,\r\n pageIndex: pCount - 1,\r\n pagePrevDataIndex: null,\r\n pageNextDataIndex: null\r\n };\r\n if (!targetItem) {\r\n return result;\r\n }\r\n var targetItemInfo = getItemInfo(targetItem);\r\n result.contentPosition[orientIdx] = -targetItemInfo.s;\r\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize)\r\n || (currItemInfo && !intersect(currItemInfo, winStartItemInfo.s))) {\r\n if (winEndItemInfo.i > winStartItemInfo.i) {\r\n winStartItemInfo = winEndItemInfo;\r\n }\r\n else {\r\n winStartItemInfo = currItemInfo;\r\n }\r\n if (winStartItemInfo) {\r\n if (result.pageNextDataIndex == null) {\r\n result.pageNextDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n }\r\n }\r\n winEndItemInfo = currItemInfo;\r\n }\r\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s))\r\n && winStartItemInfo.i < winEndItemInfo.i) {\r\n winEndItemInfo = winStartItemInfo;\r\n if (result.pagePrevDataIndex == null) {\r\n result.pagePrevDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n ++result.pageIndex;\r\n }\r\n winStartItemInfo = currItemInfo;\r\n }\r\n return result;\r\n function getItemInfo(el) {\r\n if (el) {\r\n var itemRect = el.getBoundingRect();\r\n var start = itemRect[xy] + el[xy];\r\n return {\r\n s: start,\r\n e: start + itemRect[wh],\r\n i: el.__legendDataIndex\r\n };\r\n }\r\n }\r\n function intersect(itemInfo, winStart) {\r\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\r\n }\r\n };\r\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\r\n if (!this._showController) {\r\n return 0;\r\n }\r\n var index;\r\n var contentGroup = this.getContentGroup();\r\n var defaultIndex;\r\n contentGroup.eachChild(function (child, idx) {\r\n var legendDataIdx = child.__legendDataIndex;\r\n if (defaultIndex == null && legendDataIdx != null) {\r\n defaultIndex = idx;\r\n }\r\n if (legendDataIdx === targetDataIndex) {\r\n index = idx;\r\n }\r\n });\r\n return index != null ? index : defaultIndex;\r\n };\r\n ScrollableLegendView.type = 'legend.scroll';\r\n return ScrollableLegendView;\r\n }(LegendView));\r\n ComponentView.registerClass(ScrollableLegendView);\n\n registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\r\n var scrollDataIndex = payload.scrollDataIndex;\r\n scrollDataIndex != null && ecModel.eachComponent({ mainType: 'legend', subType: 'scroll', query: payload }, function (legendModel) {\r\n legendModel.setScrollDataIndex(scrollDataIndex);\r\n });\r\n });\n\n var SliderZoomModel = (function (_super) {\r\n __extends(SliderZoomModel, _super);\r\n function SliderZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomModel.type;\r\n return _this;\r\n }\r\n SliderZoomModel.type = 'dataZoom.slider';\r\n SliderZoomModel.layoutMode = 'box';\r\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n show: true,\r\n right: 'ph',\r\n top: 'ph',\r\n width: 'ph',\r\n height: 'ph',\r\n left: null,\r\n bottom: null,\r\n borderColor: '#d2dbee',\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(47,69,84,0)',\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#d2dbee',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#d2dbee',\r\n opacity: 0.2\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#8fb0f7',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#8fb0f7',\r\n opacity: 0.2\r\n }\r\n },\r\n fillerColor: 'rgba(135,175,274,0.2)',\r\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\r\n handleSize: '100%',\r\n handleStyle: {\r\n color: '#fff',\r\n borderColor: '#ACB8D1'\r\n },\r\n moveHandleSize: 7,\r\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\r\n moveHandleStyle: {\r\n color: '#D2DBEE',\r\n opacity: 0.7\r\n },\r\n showDetail: true,\r\n showDataShadow: 'auto',\r\n realtime: true,\r\n zoomLock: false,\r\n textStyle: {\r\n color: '#6E7079'\r\n },\r\n brushSelect: true,\r\n brushStyle: {\r\n color: 'rgba(135,175,274,0.15)'\r\n },\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#8FB0F7'\r\n },\r\n moveHandleStyle: {\r\n color: '#8FB0F7'\r\n }\r\n }\r\n });\r\n return SliderZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SliderZoomModel);\n\n var Rect$2 = Rect;\r\n var DEFAULT_LOCATION_EDGE_GAP = 7;\r\n var DEFAULT_FRAME_BORDER_WIDTH = 1;\r\n var DEFAULT_FILLER_SIZE = 30;\r\n var DEFAULT_MOVE_HANDLE_SIZE = 7;\r\n var HORIZONTAL = 'horizontal';\r\n var VERTICAL = 'vertical';\r\n var LABEL_GAP = 5;\r\n var SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\r\n var REALTIME_ANIMATION_CONFIG = {\r\n easing: 'cubicOut',\r\n duration: 100\r\n };\r\n var SliderZoomView = (function (_super) {\r\n __extends(SliderZoomView, _super);\r\n function SliderZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomView.type;\r\n _this._displayables = {};\r\n return _this;\r\n }\r\n SliderZoomView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n this._onBrush = bind(this._onBrush, this);\r\n this._onBrushEnd = bind(this._onBrushEnd, this);\r\n };\r\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n _super.prototype.render.apply(this, arguments);\r\n createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\r\n this._orient = dataZoomModel.getOrient();\r\n if (dataZoomModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n this._updateView();\r\n };\r\n SliderZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n SliderZoomView.prototype._clear = function () {\r\n clear(this, '_dispatchZoomAction');\r\n var zr = this.api.getZr();\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n };\r\n SliderZoomView.prototype._buildView = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n this._brushing = false;\r\n this._resetLocation();\r\n this._resetInterval();\r\n var barGroup = this._displayables.sliderGroup = new Group();\r\n this._renderBackground();\r\n this._renderHandle();\r\n this._renderDataShadow();\r\n thisGroup.add(barGroup);\r\n this._positionGroup();\r\n };\r\n SliderZoomView.prototype._resetLocation = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var showMoveHandle = dataZoomModel.get('brushSelect');\r\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\r\n var coordRect = this._findCoordRect();\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var positionInfo = this._orient === HORIZONTAL\r\n ? {\r\n right: ecSize.width - coordRect.x - coordRect.width,\r\n top: (ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize),\r\n width: coordRect.width,\r\n height: DEFAULT_FILLER_SIZE\r\n }\r\n : {\r\n right: DEFAULT_LOCATION_EDGE_GAP,\r\n top: coordRect.y,\r\n width: DEFAULT_FILLER_SIZE,\r\n height: coordRect.height\r\n };\r\n var layoutParams = getLayoutParams(dataZoomModel.option);\r\n each(['right', 'top', 'width', 'height'], function (name) {\r\n if (layoutParams[name] === 'ph') {\r\n layoutParams[name] = positionInfo[name];\r\n }\r\n });\r\n var layoutRect = getLayoutRect(layoutParams, ecSize);\r\n this._location = { x: layoutRect.x, y: layoutRect.y };\r\n this._size = [layoutRect.width, layoutRect.height];\r\n this._orient === VERTICAL && this._size.reverse();\r\n };\r\n SliderZoomView.prototype._positionGroup = function () {\r\n var thisGroup = this.group;\r\n var location = this._location;\r\n var orient = this._orient;\r\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\r\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\r\n sliderGroup.attr((orient === HORIZONTAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: 1 }\r\n : (orient === HORIZONTAL && inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: -1 }\r\n : (orient === VERTICAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 }\r\n : { scaleY: otherAxisInverse ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 });\r\n var rect = thisGroup.getBoundingRect([sliderGroup]);\r\n thisGroup.x = location.x - rect.x;\r\n thisGroup.y = location.y - rect.y;\r\n thisGroup.markRedraw();\r\n };\r\n SliderZoomView.prototype._getViewExtent = function () {\r\n return [0, this._size[0]];\r\n };\r\n SliderZoomView.prototype._renderBackground = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var size = this._size;\r\n var barGroup = this._displayables.sliderGroup;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n barGroup.add(new Rect$2({\r\n silent: true,\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: dataZoomModel.get('backgroundColor')\r\n },\r\n z2: -40\r\n }));\r\n var clickPanel = new Rect$2({\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: 'transparent'\r\n },\r\n z2: 0,\r\n onclick: bind(this._onClickPanel, this)\r\n });\r\n var zr = this.api.getZr();\r\n if (brushSelect) {\r\n clickPanel.on('mousedown', this._onBrushStart, this);\r\n clickPanel.cursor = 'crosshair';\r\n zr.on('mousemove', this._onBrush);\r\n zr.on('mouseup', this._onBrushEnd);\r\n }\r\n else {\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n }\r\n barGroup.add(clickPanel);\r\n };\r\n SliderZoomView.prototype._renderDataShadow = function () {\r\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\r\n this._displayables.dataShadowSegs = [];\r\n if (!info) {\r\n return;\r\n }\r\n var size = this._size;\r\n var seriesModel = info.series;\r\n var data = seriesModel.getRawData();\r\n var otherDim = seriesModel.getShadowDim\r\n ? seriesModel.getShadowDim()\r\n : info.otherDim;\r\n if (otherDim == null) {\r\n return;\r\n }\r\n var otherDataExtent = data.getDataExtent(otherDim);\r\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\r\n otherDataExtent = [\r\n otherDataExtent[0] - otherOffset,\r\n otherDataExtent[1] + otherOffset\r\n ];\r\n var otherShadowExtent = [0, size[1]];\r\n var thisShadowExtent = [0, size[0]];\r\n var areaPoints = [[size[0], 0], [0, 0]];\r\n var linePoints = [];\r\n var step = thisShadowExtent[1] / (data.count() - 1);\r\n var thisCoord = 0;\r\n var stride = Math.round(data.count() / size[0]);\r\n var lastIsEmpty;\r\n data.each([otherDim], function (value, index) {\r\n if (stride > 0 && (index % stride)) {\r\n thisCoord += step;\r\n return;\r\n }\r\n var isEmpty = value == null || isNaN(value) || value === '';\r\n var otherCoord = isEmpty\r\n ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\r\n if (isEmpty && !lastIsEmpty && index) {\r\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\r\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\r\n }\r\n else if (!isEmpty && lastIsEmpty) {\r\n areaPoints.push([thisCoord, 0]);\r\n linePoints.push([thisCoord, 0]);\r\n }\r\n areaPoints.push([thisCoord, otherCoord]);\r\n linePoints.push([thisCoord, otherCoord]);\r\n thisCoord += step;\r\n lastIsEmpty = isEmpty;\r\n });\r\n var dataZoomModel = this.dataZoomModel;\r\n function createDataShadowGroup(isSelectedArea) {\r\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\r\n var group = new Group();\r\n var polygon = new Polygon({\r\n shape: { points: areaPoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('areaStyle').getAreaStyle(),\r\n silent: true,\r\n z2: -20\r\n });\r\n var polyline = new Polyline({\r\n shape: { points: linePoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('lineStyle').getLineStyle(),\r\n silent: true,\r\n z2: -19\r\n });\r\n group.add(polygon);\r\n group.add(polyline);\r\n return group;\r\n }\r\n for (var i = 0; i < 3; i++) {\r\n var group = createDataShadowGroup(i === 1);\r\n this._displayables.sliderGroup.add(group);\r\n this._displayables.dataShadowSegs.push(group);\r\n }\r\n };\r\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var showDataShadow = dataZoomModel.get('showDataShadow');\r\n if (showDataShadow === false) {\r\n return;\r\n }\r\n var result;\r\n var ecModel = this.ecModel;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var seriesModels = dataZoomModel\r\n .getAxisProxy(axisDim, axisIndex)\r\n .getTargetSeriesModels();\r\n each(seriesModels, function (seriesModel) {\r\n if (result) {\r\n return;\r\n }\r\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\r\n return;\r\n }\r\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\r\n var otherDim = getOtherDim(axisDim);\r\n var otherAxisInverse;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (otherDim != null && coordSys.getOtherAxis) {\r\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\r\n }\r\n otherDim = seriesModel.getData().mapDimension(otherDim);\r\n result = {\r\n thisAxis: thisAxis,\r\n series: seriesModel,\r\n thisDim: axisDim,\r\n otherDim: otherDim,\r\n otherAxisInverse: otherAxisInverse\r\n };\r\n }, this);\r\n }, this);\r\n return result;\r\n };\r\n SliderZoomView.prototype._renderHandle = function () {\r\n var thisGroup = this.group;\r\n var displayables = this._displayables;\r\n var handles = displayables.handles = [null, null];\r\n var handleLabels = displayables.handleLabels = [null, null];\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var size = this._size;\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n var filler = displayables.filler = new Rect$2({\r\n silent: brushSelect,\r\n style: {\r\n fill: dataZoomModel.get('fillerColor')\r\n },\r\n textConfig: {\r\n position: 'inside'\r\n }\r\n });\r\n sliderGroup.add(filler);\r\n sliderGroup.add(new Rect$2({\r\n silent: true,\r\n subPixelOptimize: true,\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: size[0],\r\n height: size[1],\r\n r: borderRadius\r\n },\r\n style: {\r\n stroke: dataZoomModel.get('dataBackgroundColor')\r\n || dataZoomModel.get('borderColor'),\r\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\r\n fill: 'rgba(0,0,0,0)'\r\n }\r\n }));\r\n each([0, 1], function (handleIndex) {\r\n var iconStr = dataZoomModel.get('handleIcon');\r\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\r\n iconStr = 'path://' + iconStr;\r\n if (__DEV__) {\r\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\r\n }\r\n }\r\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\r\n path.attr({\r\n cursor: getCursor(this._orient),\r\n draggable: true,\r\n drift: bind(this._onDragMove, this, handleIndex),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false),\r\n z2: 5\r\n });\r\n var bRect = path.getBoundingRect();\r\n var handleSize = dataZoomModel.get('handleSize');\r\n this._handleHeight = parsePercent$2(handleSize, this._size[1]);\r\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\r\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\r\n path.style.strokeNoScale = true;\r\n path.rectHover = true;\r\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n enableHoverEmphasis(path);\r\n var handleColor = dataZoomModel.get('handleColor');\r\n if (handleColor != null) {\r\n path.style.fill = handleColor;\r\n }\r\n sliderGroup.add(handles[handleIndex] = path);\r\n var textStyleModel = dataZoomModel.getModel('textStyle');\r\n thisGroup.add(handleLabels[handleIndex] = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n verticalAlign: 'middle',\r\n align: 'center',\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n },\r\n z2: 10\r\n }));\r\n }, this);\r\n var actualMoveZone = filler;\r\n if (brushSelect) {\r\n var moveHandleHeight = parsePercent$2(dataZoomModel.get('moveHandleSize'), size[1]);\r\n var moveHandle_1 = displayables.moveHandle = new Rect({\r\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\r\n silent: true,\r\n shape: {\r\n r: [0, 0, 2, 2],\r\n y: size[1] - 0.5,\r\n height: moveHandleHeight\r\n }\r\n });\r\n var iconSize = moveHandleHeight * 0.8;\r\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\r\n moveHandleIcon.silent = true;\r\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\r\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\r\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\r\n actualMoveZone = displayables.moveZone = new Rect({\r\n invisible: true,\r\n shape: {\r\n y: size[1] - moveZoneExpandSize,\r\n height: moveHandleHeight + moveZoneExpandSize\r\n }\r\n });\r\n actualMoveZone.on('mouseover', function () {\r\n api.enterEmphasis(moveHandle_1);\r\n })\r\n .on('mouseout', function () {\r\n api.leaveEmphasis(moveHandle_1);\r\n });\r\n sliderGroup.add(moveHandle_1);\r\n sliderGroup.add(moveHandleIcon);\r\n sliderGroup.add(actualMoveZone);\r\n }\r\n actualMoveZone.attr({\r\n draggable: true,\r\n cursor: getCursor(this._orient),\r\n drift: bind(this._onDragMove, this, 'all'),\r\n ondragstart: bind(this._showDataInfo, this, true),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false)\r\n });\r\n };\r\n SliderZoomView.prototype._resetInterval = function () {\r\n var range = this._range = this.dataZoomModel.getPercentRange();\r\n var viewExtent = this._getViewExtent();\r\n this._handleEnds = [\r\n linearMap(range[0], [0, 100], viewExtent, true),\r\n linearMap(range[1], [0, 100], viewExtent, true)\r\n ];\r\n };\r\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var handleEnds = this._handleEnds;\r\n var viewExtend = this._getViewExtent();\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n var percentExtent = [0, 100];\r\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null\r\n ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null\r\n ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\r\n var lastRange = this._range;\r\n var range = this._range = asc([\r\n linearMap(handleEnds[0], viewExtend, percentExtent, true),\r\n linearMap(handleEnds[1], viewExtend, percentExtent, true)\r\n ]);\r\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\r\n };\r\n SliderZoomView.prototype._updateView = function (nonRealtime) {\r\n var displaybles = this._displayables;\r\n var handleEnds = this._handleEnds;\r\n var handleInterval = asc(handleEnds.slice());\r\n var size = this._size;\r\n each([0, 1], function (handleIndex) {\r\n var handle = displaybles.handles[handleIndex];\r\n var handleHeight = this._handleHeight;\r\n handle.attr({\r\n scaleX: handleHeight / 2,\r\n scaleY: handleHeight / 2,\r\n x: handleEnds[handleIndex],\r\n y: size[1] / 2 - handleHeight / 2\r\n });\r\n }, this);\r\n displaybles.filler.setShape({\r\n x: handleInterval[0],\r\n y: 0,\r\n width: handleInterval[1] - handleInterval[0],\r\n height: size[1]\r\n });\r\n var viewExtent = {\r\n x: handleInterval[0],\r\n width: handleInterval[1] - handleInterval[0]\r\n };\r\n if (displaybles.moveHandle) {\r\n displaybles.moveHandle.setShape(viewExtent);\r\n displaybles.moveZone.setShape(viewExtent);\r\n displaybles.moveZone.getBoundingRect();\r\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\r\n }\r\n var dataShadowSegs = displaybles.dataShadowSegs;\r\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\r\n for (var i = 0; i < dataShadowSegs.length; i++) {\r\n var segGroup = dataShadowSegs[i];\r\n var clipPath = segGroup.getClipPath();\r\n if (!clipPath) {\r\n clipPath = new Rect();\r\n segGroup.setClipPath(clipPath);\r\n }\r\n clipPath.setShape({\r\n x: segIntervals[i],\r\n y: 0,\r\n width: segIntervals[i + 1] - segIntervals[i],\r\n height: size[1]\r\n });\r\n }\r\n this._updateDataInfo(nonRealtime);\r\n };\r\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var displaybles = this._displayables;\r\n var handleLabels = displaybles.handleLabels;\r\n var orient = this._orient;\r\n var labelTexts = ['', ''];\r\n if (dataZoomModel.get('showDetail')) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var axis = axisProxy.getAxisModel().axis;\r\n var range = this._range;\r\n var dataInterval = nonRealtime\r\n ? axisProxy.calculateDataWindow({\r\n start: range[0], end: range[1]\r\n }).valueWindow\r\n : axisProxy.getDataValueWindow();\r\n labelTexts = [\r\n this._formatLabel(dataInterval[0], axis),\r\n this._formatLabel(dataInterval[1], axis)\r\n ];\r\n }\r\n }\r\n var orderedHandleEnds = asc(this._handleEnds.slice());\r\n setLabel.call(this, 0);\r\n setLabel.call(this, 1);\r\n function setLabel(handleIndex) {\r\n var barTransform = getTransform(displaybles.handles[handleIndex].parent, this.group);\r\n var direction = transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\r\n var offset = this._handleWidth / 2 + LABEL_GAP;\r\n var textPoint = applyTransform$1([\r\n orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset),\r\n this._size[1] / 2\r\n ], barTransform);\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\r\n align: orient === HORIZONTAL ? direction : 'center',\r\n text: labelTexts[handleIndex]\r\n });\r\n }\r\n };\r\n SliderZoomView.prototype._formatLabel = function (value, axis) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var labelFormatter = dataZoomModel.get('labelFormatter');\r\n var labelPrecision = dataZoomModel.get('labelPrecision');\r\n if (labelPrecision == null || labelPrecision === 'auto') {\r\n labelPrecision = axis.getPixelPrecision();\r\n }\r\n var valueStr = (value == null || isNaN(value))\r\n ? ''\r\n : (axis.type === 'category' || axis.type === 'time')\r\n ? axis.scale.getLabel({\r\n value: Math.round(value)\r\n })\r\n : value.toFixed(Math.min(labelPrecision, 20));\r\n return isFunction(labelFormatter)\r\n ? labelFormatter(value, valueStr)\r\n : isString(labelFormatter)\r\n ? labelFormatter.replace('{value}', valueStr)\r\n : valueStr;\r\n };\r\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\r\n showOrHide = this._dragging || showOrHide;\r\n var displayables = this._displayables;\r\n var handleLabels = displayables.handleLabels;\r\n handleLabels[0].attr('invisible', !showOrHide);\r\n handleLabels[1].attr('invisible', !showOrHide);\r\n displayables.moveHandle\r\n && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\r\n };\r\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\r\n this._dragging = true;\r\n stop(event.event);\r\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\r\n var vertex = applyTransform$1([dx, dy], barTransform, true);\r\n var changed = this._updateInterval(handleIndex, vertex[0]);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n this._updateView(!realtime);\r\n changed && realtime && this._dispatchZoomAction(true);\r\n };\r\n SliderZoomView.prototype._onDragEnd = function () {\r\n this._dragging = false;\r\n this._showDataInfo(false);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n !realtime && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onClickPanel = function (e) {\r\n var size = this._size;\r\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\r\n if (localPoint[0] < 0 || localPoint[0] > size[0]\r\n || localPoint[1] < 0 || localPoint[1] > size[1]) {\r\n return;\r\n }\r\n var handleEnds = this._handleEnds;\r\n var center = (handleEnds[0] + handleEnds[1]) / 2;\r\n var changed = this._updateInterval('all', localPoint[0] - center);\r\n this._updateView();\r\n changed && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrushStart = function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n this._brushStart = new Point(x, y);\r\n this._brushing = true;\r\n this._brushStartTime = +new Date();\r\n };\r\n SliderZoomView.prototype._onBrushEnd = function (e) {\r\n if (!this._brushing) {\r\n return;\r\n }\r\n var brushRect = this._displayables.brushRect;\r\n this._brushing = false;\r\n if (!brushRect) {\r\n return;\r\n }\r\n brushRect.attr('ignore', true);\r\n var brushShape = brushRect.shape;\r\n var brushEndTime = +new Date();\r\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\r\n return;\r\n }\r\n var viewExtend = this._getViewExtent();\r\n var percentExtent = [0, 100];\r\n this._range = asc([\r\n linearMap(brushShape.x, viewExtend, percentExtent, true),\r\n linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)\r\n ]);\r\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\r\n this._updateView();\r\n this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrush = function (e) {\r\n if (this._brushing) {\r\n stop(e.event);\r\n this._updateBrushRect(e.offsetX, e.offsetY);\r\n }\r\n };\r\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\r\n var displayables = this._displayables;\r\n var dataZoomModel = this.dataZoomModel;\r\n var brushRect = displayables.brushRect;\r\n if (!brushRect) {\r\n brushRect = displayables.brushRect = new Rect$2({\r\n silent: true,\r\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\r\n });\r\n displayables.sliderGroup.add(brushRect);\r\n }\r\n brushRect.ignore = false;\r\n var brushStart = this._brushStart;\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\r\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\r\n var size = this._size;\r\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\r\n brushRect.setShape({\r\n x: startPoint[0], y: 0,\r\n width: endPoint[0] - startPoint[0], height: size[1]\r\n });\r\n };\r\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\r\n var range = this._range;\r\n this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n dataZoomId: this.dataZoomModel.id,\r\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n };\r\n SliderZoomView.prototype._findCoordRect = function () {\r\n var rect;\r\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\r\n if (!rect && coordSysInfoList.length) {\r\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\r\n rect = coordSys.getRect && coordSys.getRect();\r\n }\r\n if (!rect) {\r\n var width = this.api.getWidth();\r\n var height = this.api.getHeight();\r\n rect = {\r\n x: width * 0.2,\r\n y: height * 0.2,\r\n width: width * 0.6,\r\n height: height * 0.6\r\n };\r\n }\r\n return rect;\r\n };\r\n SliderZoomView.type = 'dataZoom.slider';\r\n return SliderZoomView;\r\n }(DataZoomView));\r\n function getOtherDim(thisDim) {\r\n var map = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' };\r\n return map[thisDim];\r\n }\r\n function getCursor(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(SliderZoomView);\n\n var InsideZoomModel = (function (_super) {\r\n __extends(InsideZoomModel, _super);\r\n function InsideZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = InsideZoomModel.type;\r\n return _this;\r\n }\r\n InsideZoomModel.type = 'dataZoom.inside';\r\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n disabled: false,\r\n zoomLock: false,\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n return InsideZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(InsideZoomModel);\n\n var inner$m = makeInner();\r\n registerProcessor(PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\r\n var apiInner = inner$m(api);\r\n var coordSysRecordMap = apiInner.coordSysRecordMap\r\n || (apiInner.coordSysRecordMap = createHashMap());\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n coordSysRecord.dataZoomInfoMap = null;\r\n });\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'inside' }, function (dataZoomModel) {\r\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\r\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\r\n var coordSysUid = dzCoordSysInfo.model.uid;\r\n var coordSysRecord = coordSysRecordMap.get(coordSysUid)\r\n || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap\r\n || (coordSysRecord.dataZoomInfoMap = createHashMap());\r\n dataZoomInfoMap.set(dataZoomModel.uid, {\r\n dzReferCoordSysInfo: dzCoordSysInfo,\r\n model: dataZoomModel,\r\n getRange: null\r\n });\r\n });\r\n });\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n var controller = coordSysRecord.controller;\r\n var firstDzInfo;\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var firstDzKey = dataZoomInfoMap.keys()[0];\r\n if (firstDzKey != null) {\r\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\r\n }\r\n }\r\n if (!firstDzInfo) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n return;\r\n }\r\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\r\n controller.enable(controllerParams.controlType, controllerParams.opt);\r\n controller.setPointerChecker(coordSysRecord.containsPoint);\r\n createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\r\n });\r\n });\r\n function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\r\n inner$m(api).coordSysRecordMap.each(function (coordSysRecord) {\r\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\r\n if (dzInfo) {\r\n dzInfo.getRange = getRange;\r\n }\r\n });\r\n }\r\n function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\r\n var coordSysRecordMap = inner$m(api).coordSysRecordMap;\r\n var coordSysKeyArr = coordSysRecordMap.keys();\r\n for (var i = 0; i < coordSysKeyArr.length; i++) {\r\n var coordSysKey = coordSysKeyArr[i];\r\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var dzUid = dataZoomModel.uid;\r\n var dzInfo = dataZoomInfoMap.get(dzUid);\r\n if (dzInfo) {\r\n dataZoomInfoMap.removeKey(dzUid);\r\n if (!dataZoomInfoMap.keys().length) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\r\n if (coordSysRecord) {\r\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\r\n var controller = coordSysRecord.controller;\r\n controller && controller.dispose();\r\n }\r\n }\r\n function createCoordSysRecord(api, coordSysModel) {\r\n var coordSysRecord = {\r\n model: coordSysModel,\r\n containsPoint: curry(containsPoint, coordSysModel),\r\n dispatchAction: curry(dispatchAction$1, api),\r\n dataZoomInfoMap: null,\r\n controller: null\r\n };\r\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\r\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\r\n controller.on(eventName, function (event) {\r\n var batch = [];\r\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\r\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\r\n return;\r\n }\r\n var method = (dzInfo.getRange || {})[eventName];\r\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\r\n !dzInfo.model.get('disabled', true) && range && batch.push({\r\n dataZoomId: dzInfo.model.id,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n });\r\n batch.length && coordSysRecord.dispatchAction(batch);\r\n });\r\n });\r\n return coordSysRecord;\r\n }\r\n function dispatchAction$1(api, batch) {\r\n api.dispatchAction({\r\n type: 'dataZoom',\r\n animation: {\r\n easing: 'cubicOut',\r\n duration: 100\r\n },\r\n batch: batch\r\n });\r\n }\r\n function containsPoint(coordSysModel, e, x, y) {\r\n return coordSysModel.coordinateSystem.containPoint([x, y]);\r\n }\r\n function mergeControllerParams(dataZoomInfoMap) {\r\n var controlType;\r\n var prefix = 'type_';\r\n var typePriority = {\r\n 'type_true': 2,\r\n 'type_move': 1,\r\n 'type_false': 0,\r\n 'type_undefined': -1\r\n };\r\n var preventDefaultMouseMove = true;\r\n dataZoomInfoMap.each(function (dataZoomInfo) {\r\n var dataZoomModel = dataZoomInfo.model;\r\n var oneType = dataZoomModel.get('disabled', true)\r\n ? false\r\n : dataZoomModel.get('zoomLock', true)\r\n ? 'move'\r\n : true;\r\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\r\n controlType = oneType;\r\n }\r\n preventDefaultMouseMove = preventDefaultMouseMove\r\n && dataZoomModel.get('preventDefaultMouseMove', true);\r\n });\r\n return {\r\n controlType: controlType,\r\n opt: {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: true,\r\n preventDefaultMouseMove: !!preventDefaultMouseMove\r\n }\r\n };\r\n }\n\n var InsideZoomView = (function (_super) {\r\n __extends(InsideZoomView, _super);\r\n function InsideZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataZoom.inside';\r\n return _this;\r\n }\r\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\r\n _super.prototype.render.apply(this, arguments);\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n return;\r\n }\r\n this.range = dataZoomModel.getPercentRange();\r\n setViewInfoToCoordSysRecord(api, dataZoomModel, {\r\n pan: bind(getRangeHandlers.pan, this),\r\n zoom: bind(getRangeHandlers.zoom, this),\r\n scrollMove: bind(getRangeHandlers.scrollMove, this)\r\n });\r\n };\r\n InsideZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n InsideZoomView.prototype._clear = function () {\r\n disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\r\n this.range = null;\r\n };\r\n InsideZoomView.type = 'dataZoom.inside';\r\n return InsideZoomView;\r\n }(DataZoomView));\r\n var getRangeHandlers = {\r\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\r\n var percentPoint = (directionInfo.signal > 0\r\n ? (directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel)\r\n : (directionInfo.pixel - directionInfo.pixelStart)) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\r\n var scale = Math.max(1 / e.scale, 0);\r\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\r\n range[1] = (range[1] - percentPoint) * scale + percentPoint;\r\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n },\r\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal\r\n * (range[1] - range[0])\r\n * directionInfo.pixel / directionInfo.pixelLength;\r\n }),\r\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\r\n })\r\n };\r\n function makeMover(getPercentDelta) {\r\n return function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\r\n sliderMove(percentDelta, range, [0, 100], 'all');\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n };\r\n }\r\n var getDirectionInfo = {\r\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.dim === 'x') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var polar = coordSysInfo.model.coordinateSystem;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var angleExtent = polar.getAngleAxis().getExtent();\r\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\r\n newPoint = polar.pointToCoord(newPoint);\r\n if (axisModel.mainType === 'radiusAxis') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\r\n ret.pixelStart = radiusExtent[0];\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = angleExtent[1] - angleExtent[0];\r\n ret.pixelStart = angleExtent[0];\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n var ret = {};\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.orient === 'horizontal') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n }\r\n };\r\n ComponentView.registerClass(InsideZoomView);\n\n var each$g = each;\r\n function preprocessor$3 (option) {\r\n var visualMap = option && option.visualMap;\r\n if (!isArray(visualMap)) {\r\n visualMap = visualMap ? [visualMap] : [];\r\n }\r\n each$g(visualMap, function (opt) {\r\n if (!opt) {\r\n return;\r\n }\r\n if (has$1(opt, 'splitList') && !has$1(opt, 'pieces')) {\r\n opt.pieces = opt.splitList;\r\n delete opt.splitList;\r\n }\r\n var pieces = opt.pieces;\r\n if (pieces && isArray(pieces)) {\r\n each$g(pieces, function (piece) {\r\n if (isObject(piece)) {\r\n if (has$1(piece, 'start') && !has$1(piece, 'min')) {\r\n piece.min = piece.start;\r\n }\r\n if (has$1(piece, 'end') && !has$1(piece, 'max')) {\r\n piece.max = piece.end;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n function has$1(obj, name) {\r\n return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\r\n }\n\n ComponentModel.registerSubTypeDefaulter('visualMap', function (option) {\r\n return (!option.categories\r\n && (!(option.pieces\r\n ? option.pieces.length > 0\r\n : option.splitNumber > 0)\r\n || option.calculable))\r\n ? 'continuous' : 'piecewise';\r\n });\n\n var VISUAL_PRIORITY = PRIORITY.VISUAL.COMPONENT;\r\n registerVisual(VISUAL_PRIORITY, {\r\n createOnAllSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var resetDefines = [];\r\n ecModel.eachComponent('visualMap', function (visualMapModel) {\r\n var pipelineContext = seriesModel.pipelineContext;\r\n if (!visualMapModel.isTargetSeries(seriesModel)\r\n || (pipelineContext && pipelineContext.large)) {\r\n return;\r\n }\r\n resetDefines.push(incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\r\n });\r\n return resetDefines;\r\n }\r\n });\r\n registerVisual(VISUAL_PRIORITY, {\r\n createOnAllSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var visualMetaList = [];\r\n ecModel.eachComponent('visualMap', function (visualMapModel) {\r\n if (visualMapModel.isTargetSeries(seriesModel)) {\r\n var visualMeta = visualMapModel.getVisualMeta(bind(getColorVisual, null, seriesModel, visualMapModel)) || {\r\n stops: [],\r\n outerColors: []\r\n };\r\n var concreteDim = visualMapModel.getDataDimension(data);\r\n var dimInfo = data.getDimensionInfo(concreteDim);\r\n if (dimInfo != null) {\r\n visualMeta.dimension = dimInfo.index;\r\n visualMetaList.push(visualMeta);\r\n }\r\n }\r\n });\r\n seriesModel.getData().setVisual('visualMeta', visualMetaList);\r\n }\r\n });\r\n function getColorVisual(seriesModel, visualMapModel, value, valueState) {\r\n var mappings = visualMapModel.targetVisuals[valueState];\r\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\r\n var resultVisual = {\r\n color: getVisualFromData(seriesModel.getData(), 'color')\r\n };\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n var mapping = mappings[(type === 'opacity' ? '__alphaForOpacity' : type)];\r\n mapping && mapping.applyVisual(value, getVisual, setVisual);\r\n }\r\n return resultVisual.color;\r\n function getVisual(key) {\r\n return resultVisual[key];\r\n }\r\n function setVisual(key, value) {\r\n resultVisual[key] = value;\r\n }\r\n }\n\n var visualDefault = {\r\n get: function (visualType, key, isCategory) {\r\n var value = clone((defaultOption$2[visualType] || {})[key]);\r\n return isCategory\r\n ? (isArray(value) ? value[value.length - 1] : value)\r\n : value;\r\n }\r\n };\r\n var defaultOption$2 = {\r\n color: {\r\n active: ['#006edd', '#e0ffff'],\r\n inactive: ['rgba(0,0,0,0)']\r\n },\r\n colorHue: {\r\n active: [0, 360],\r\n inactive: [0, 0]\r\n },\r\n colorSaturation: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n colorLightness: {\r\n active: [0.9, 0.5],\r\n inactive: [0, 0]\r\n },\r\n colorAlpha: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n opacity: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n symbol: {\r\n active: ['circle', 'roundRect', 'diamond'],\r\n inactive: ['none']\r\n },\r\n symbolSize: {\r\n active: [10, 50],\r\n inactive: [0, 0]\r\n }\r\n };\n\n var mapVisual$1 = VisualMapping.mapVisual;\r\n var eachVisual = VisualMapping.eachVisual;\r\n var isArray$1 = isArray;\r\n var each$h = each;\r\n var asc$2 = asc;\r\n var linearMap$1 = linearMap;\r\n var VisualMapModel = (function (_super) {\r\n __extends(VisualMapModel, _super);\r\n function VisualMapModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = VisualMapModel.type;\r\n _this.stateList = ['inRange', 'outOfRange'];\r\n _this.replacableOptionKeys = [\r\n 'inRange', 'outOfRange', 'target', 'controller', 'color'\r\n ];\r\n _this.layoutMode = {\r\n type: 'box', ignoreSize: true\r\n };\r\n _this.dataBound = [-Infinity, Infinity];\r\n _this.targetVisuals = {};\r\n _this.controllerVisuals = {};\r\n return _this;\r\n }\r\n VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n if (!env.canvasSupported) {\r\n thisOption.realtime = false;\r\n }\r\n !isInit && replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\r\n this.textStyleModel = this.getModel('textStyle');\r\n this.resetItemSize();\r\n this.completeVisualOption();\r\n };\r\n VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\r\n var stateList = this.stateList;\r\n supplementVisualOption = bind(supplementVisualOption, this);\r\n this.controllerVisuals = createVisualMappings(this.option.controller, stateList, supplementVisualOption);\r\n this.targetVisuals = createVisualMappings(this.option.target, stateList, supplementVisualOption);\r\n };\r\n VisualMapModel.prototype.getTargetSeriesIndices = function () {\r\n var optionSeriesIndex = this.option.seriesIndex;\r\n var seriesIndices = [];\r\n if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\r\n this.ecModel.eachSeries(function (seriesModel, index) {\r\n seriesIndices.push(index);\r\n });\r\n }\r\n else {\r\n seriesIndices = normalizeToArray(optionSeriesIndex);\r\n }\r\n return seriesIndices;\r\n };\r\n VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\r\n each(this.getTargetSeriesIndices(), function (seriesIndex) {\r\n var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\r\n if (seriesModel) {\r\n callback.call(context, seriesModel);\r\n }\r\n }, this);\r\n };\r\n VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\r\n var is = false;\r\n this.eachTargetSeries(function (model) {\r\n model === seriesModel && (is = true);\r\n });\r\n return is;\r\n };\r\n VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\r\n var option = this.option;\r\n var precision = option.precision;\r\n var dataBound = this.dataBound;\r\n var formatter = option.formatter;\r\n var isMinMax;\r\n edgeSymbols = edgeSymbols || ['<', '>'];\r\n if (isArray(value)) {\r\n value = value.slice();\r\n isMinMax = true;\r\n }\r\n var textValue = isCategory\r\n ? value\r\n : (isMinMax\r\n ? [toFixed(value[0]), toFixed(value[1])]\r\n : toFixed(value));\r\n if (isString(formatter)) {\r\n return formatter\r\n .replace('{value}', isMinMax ? textValue[0] : textValue)\r\n .replace('{value2}', isMinMax ? textValue[1] : textValue);\r\n }\r\n else if (isFunction(formatter)) {\r\n return isMinMax\r\n ? formatter(value[0], value[1])\r\n : formatter(value);\r\n }\r\n if (isMinMax) {\r\n if (value[0] === dataBound[0]) {\r\n return edgeSymbols[0] + ' ' + textValue[1];\r\n }\r\n else if (value[1] === dataBound[1]) {\r\n return edgeSymbols[1] + ' ' + textValue[0];\r\n }\r\n else {\r\n return textValue[0] + ' - ' + textValue[1];\r\n }\r\n }\r\n else {\r\n return textValue;\r\n }\r\n function toFixed(val) {\r\n return val === dataBound[0]\r\n ? 'min'\r\n : val === dataBound[1]\r\n ? 'max'\r\n : (+val).toFixed(Math.min(precision, 20));\r\n }\r\n };\r\n VisualMapModel.prototype.resetExtent = function () {\r\n var thisOption = this.option;\r\n var extent = asc$2([thisOption.min, thisOption.max]);\r\n this._dataExtent = extent;\r\n };\r\n VisualMapModel.prototype.getDataDimension = function (list) {\r\n var optDim = this.option.dimension;\r\n var listDimensions = list.dimensions;\r\n if (optDim == null && !listDimensions.length) {\r\n return;\r\n }\r\n if (optDim != null) {\r\n return list.getDimension(optDim);\r\n }\r\n var dimNames = list.dimensions;\r\n for (var i = dimNames.length - 1; i >= 0; i--) {\r\n var dimName = dimNames[i];\r\n var dimInfo = list.getDimensionInfo(dimName);\r\n if (!dimInfo.isCalculationCoord) {\r\n return dimName;\r\n }\r\n }\r\n };\r\n VisualMapModel.prototype.getExtent = function () {\r\n return this._dataExtent.slice();\r\n };\r\n VisualMapModel.prototype.completeVisualOption = function () {\r\n var ecModel = this.ecModel;\r\n var thisOption = this.option;\r\n var base = {\r\n inRange: thisOption.inRange,\r\n outOfRange: thisOption.outOfRange\r\n };\r\n var target = thisOption.target || (thisOption.target = {});\r\n var controller = thisOption.controller || (thisOption.controller = {});\r\n merge(target, base);\r\n merge(controller, base);\r\n var isCategory = this.isCategory();\r\n completeSingle.call(this, target);\r\n completeSingle.call(this, controller);\r\n completeInactive.call(this, target, 'inRange', 'outOfRange');\r\n completeController.call(this, controller);\r\n function completeSingle(base) {\r\n if (isArray$1(thisOption.color)\r\n && !base.inRange) {\r\n base.inRange = { color: thisOption.color.slice().reverse() };\r\n }\r\n base.inRange = base.inRange || { color: ecModel.get('gradientColor') };\r\n }\r\n function completeInactive(base, stateExist, stateAbsent) {\r\n var optExist = base[stateExist];\r\n var optAbsent = base[stateAbsent];\r\n if (optExist && !optAbsent) {\r\n optAbsent = base[stateAbsent] = {};\r\n each$h(optExist, function (visualData, visualType) {\r\n if (!VisualMapping.isValidType(visualType)) {\r\n return;\r\n }\r\n var defa = visualDefault.get(visualType, 'inactive', isCategory);\r\n if (defa != null) {\r\n optAbsent[visualType] = defa;\r\n if (visualType === 'color'\r\n && !optAbsent.hasOwnProperty('opacity')\r\n && !optAbsent.hasOwnProperty('colorAlpha')) {\r\n optAbsent.opacity = [0, 0];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function completeController(controller) {\r\n var symbolExists = (controller.inRange || {}).symbol\r\n || (controller.outOfRange || {}).symbol;\r\n var symbolSizeExists = (controller.inRange || {}).symbolSize\r\n || (controller.outOfRange || {}).symbolSize;\r\n var inactiveColor = this.get('inactiveColor');\r\n each$h(this.stateList, function (state) {\r\n var itemSize = this.itemSize;\r\n var visuals = controller[state];\r\n if (!visuals) {\r\n visuals = controller[state] = {\r\n color: isCategory ? inactiveColor : [inactiveColor]\r\n };\r\n }\r\n if (visuals.symbol == null) {\r\n visuals.symbol = symbolExists\r\n && clone(symbolExists)\r\n || (isCategory ? 'roundRect' : ['roundRect']);\r\n }\r\n if (visuals.symbolSize == null) {\r\n visuals.symbolSize = symbolSizeExists\r\n && clone(symbolSizeExists)\r\n || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\r\n }\r\n visuals.symbol = mapVisual$1(visuals.symbol, function (symbol) {\r\n return (symbol === 'none' || symbol === 'square') ? 'roundRect' : symbol;\r\n });\r\n var symbolSize = visuals.symbolSize;\r\n if (symbolSize != null) {\r\n var max_1 = -Infinity;\r\n eachVisual(symbolSize, function (value) {\r\n value > max_1 && (max_1 = value);\r\n });\r\n visuals.symbolSize = mapVisual$1(symbolSize, function (value) {\r\n return linearMap$1(value, [0, max_1], [0, itemSize[0]], true);\r\n });\r\n }\r\n }, this);\r\n }\r\n };\r\n VisualMapModel.prototype.resetItemSize = function () {\r\n this.itemSize = [\r\n parseFloat(this.get('itemWidth')),\r\n parseFloat(this.get('itemHeight'))\r\n ];\r\n };\r\n VisualMapModel.prototype.isCategory = function () {\r\n return !!this.option.categories;\r\n };\r\n VisualMapModel.prototype.setSelected = function (selected) { };\r\n VisualMapModel.prototype.getSelected = function () {\r\n return null;\r\n };\r\n VisualMapModel.prototype.getValueState = function (value) {\r\n return null;\r\n };\r\n VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\r\n return null;\r\n };\r\n VisualMapModel.type = 'visualMap';\r\n VisualMapModel.dependencies = ['series'];\r\n VisualMapModel.defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 4,\r\n seriesIndex: 'all',\r\n min: 0,\r\n max: 200,\r\n left: 0,\r\n right: null,\r\n top: null,\r\n bottom: 0,\r\n itemWidth: null,\r\n itemHeight: null,\r\n inverse: false,\r\n orient: 'vertical',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n contentColor: '#5793f3',\r\n inactiveColor: '#aaa',\r\n borderWidth: 0,\r\n padding: 5,\r\n textGap: 10,\r\n precision: 0,\r\n textStyle: {\r\n color: '#333'\r\n }\r\n };\r\n return VisualMapModel;\r\n }(ComponentModel));\n\n var DEFAULT_BAR_BOUND = [20, 140];\r\n var ContinuousModel = (function (_super) {\r\n __extends(ContinuousModel, _super);\r\n function ContinuousModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ContinuousModel.type;\r\n return _this;\r\n }\r\n ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n this.resetExtent();\r\n this.resetVisual(function (mappingOption) {\r\n mappingOption.mappingMethod = 'linear';\r\n mappingOption.dataExtent = this.getExtent();\r\n });\r\n this._resetRange();\r\n };\r\n ContinuousModel.prototype.resetItemSize = function () {\r\n _super.prototype.resetItemSize.apply(this, arguments);\r\n var itemSize = this.itemSize;\r\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\r\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\r\n };\r\n ContinuousModel.prototype._resetRange = function () {\r\n var dataExtent = this.getExtent();\r\n var range = this.option.range;\r\n if (!range || range.auto) {\r\n dataExtent.auto = 1;\r\n this.option.range = dataExtent;\r\n }\r\n else if (isArray(range)) {\r\n if (range[0] > range[1]) {\r\n range.reverse();\r\n }\r\n range[0] = Math.max(range[0], dataExtent[0]);\r\n range[1] = Math.min(range[1], dataExtent[1]);\r\n }\r\n };\r\n ContinuousModel.prototype.completeVisualOption = function () {\r\n _super.prototype.completeVisualOption.apply(this, arguments);\r\n each(this.stateList, function (state) {\r\n var symbolSize = this.option.controller[state].symbolSize;\r\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\r\n symbolSize[0] = symbolSize[1] / 3;\r\n }\r\n }, this);\r\n };\r\n ContinuousModel.prototype.setSelected = function (selected) {\r\n this.option.range = selected.slice();\r\n this._resetRange();\r\n };\r\n ContinuousModel.prototype.getSelected = function () {\r\n var dataExtent = this.getExtent();\r\n var dataInterval = asc((this.get('range') || []).slice());\r\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\r\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\r\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\r\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\r\n return dataInterval;\r\n };\r\n ContinuousModel.prototype.getValueState = function (value) {\r\n var range = this.option.range;\r\n var dataExtent = this.getExtent();\r\n return ((range[0] <= dataExtent[0] || range[0] <= value)\r\n && (range[1] >= dataExtent[1] || value <= range[1])) ? 'inRange' : 'outOfRange';\r\n };\r\n ContinuousModel.prototype.findTargetDataIndices = function (range) {\r\n var result = [];\r\n this.eachTargetSeries(function (seriesModel) {\r\n var dataIndices = [];\r\n var data = seriesModel.getData();\r\n data.each(this.getDataDimension(data), function (value, dataIndex) {\r\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\r\n }, this);\r\n result.push({\r\n seriesId: seriesModel.id,\r\n dataIndex: dataIndices\r\n });\r\n }, this);\r\n return result;\r\n };\r\n ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\r\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\r\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\r\n var stops = [];\r\n function setStop(value, valueState) {\r\n stops.push({\r\n value: value,\r\n color: getColorVisual(value, valueState)\r\n });\r\n }\r\n var iIdx = 0;\r\n var oIdx = 0;\r\n var iLen = iVals.length;\r\n var oLen = oVals.length;\r\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\r\n if (oVals[oIdx] < iVals[iIdx]) {\r\n setStop(oVals[oIdx], 'outOfRange');\r\n }\r\n }\r\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\r\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\r\n setStop(iVals[iIdx], 'inRange');\r\n }\r\n for (var first = 1; oIdx < oLen; oIdx++) {\r\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\r\n if (first) {\r\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\r\n first = 0;\r\n }\r\n setStop(oVals[oIdx], 'outOfRange');\r\n }\r\n }\r\n var stopsLen = stops.length;\r\n return {\r\n stops: stops,\r\n outerColors: [\r\n stopsLen ? stops[0].color : 'transparent',\r\n stopsLen ? stops[stopsLen - 1].color : 'transparent'\r\n ]\r\n };\r\n };\r\n ContinuousModel.type = 'visualMap.continuous';\r\n ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\r\n align: 'auto',\r\n calculable: false,\r\n hoverLink: true,\r\n realtime: true,\r\n handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\r\n handleSize: '120%',\r\n handleStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 1\r\n },\r\n indicatorIcon: 'circle',\r\n indicatorSize: '50%',\r\n indicatorStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 2,\r\n shadowBlur: 2,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0,0,0,0.2)'\r\n }\r\n });\r\n return ContinuousModel;\r\n }(VisualMapModel));\r\n function getColorStopValues(visualMapModel, valueState, dataExtent) {\r\n if (dataExtent[0] === dataExtent[1]) {\r\n return dataExtent.slice();\r\n }\r\n var count = 200;\r\n var step = (dataExtent[1] - dataExtent[0]) / count;\r\n var value = dataExtent[0];\r\n var stopValues = [];\r\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\r\n stopValues.push(value);\r\n value += step;\r\n }\r\n stopValues.push(dataExtent[1]);\r\n return stopValues;\r\n }\r\n ComponentModel.registerClass(ContinuousModel);\n\n var VisualMapView = (function (_super) {\r\n __extends(VisualMapView, _super);\r\n function VisualMapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = VisualMapView.type;\r\n _this.autoPositionValues = { left: 1, right: 1, top: 1, bottom: 1 };\r\n return _this;\r\n }\r\n VisualMapView.prototype.init = function (ecModel, api) {\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\r\n this.visualMapModel = visualMapModel;\r\n if (visualMapModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n this.doRender(visualMapModel, ecModel, api, payload);\r\n };\r\n VisualMapView.prototype.renderBackground = function (group) {\r\n var visualMapModel = this.visualMapModel;\r\n var padding = normalizeCssArray$1(visualMapModel.get('padding') || 0);\r\n var rect = group.getBoundingRect();\r\n group.add(new Rect({\r\n z2: -1,\r\n silent: true,\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[3] + padding[1],\r\n height: rect.height + padding[0] + padding[2]\r\n },\r\n style: {\r\n fill: visualMapModel.get('backgroundColor'),\r\n stroke: visualMapModel.get('borderColor'),\r\n lineWidth: visualMapModel.get('borderWidth')\r\n }\r\n }));\r\n };\r\n VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\r\n opts = opts || {};\r\n var forceState = opts.forceState;\r\n var visualMapModel = this.visualMapModel;\r\n var visualObj = {};\r\n if (visualCluster === 'symbol') {\r\n visualObj.symbol = visualMapModel.get('itemSymbol');\r\n }\r\n if (visualCluster === 'color') {\r\n var defaultColor = visualMapModel.get('contentColor');\r\n visualObj.color = defaultColor;\r\n }\r\n function getter(key) {\r\n return visualObj[key];\r\n }\r\n function setter(key, value) {\r\n visualObj[key] = value;\r\n }\r\n var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\r\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\r\n each(visualTypes, function (type) {\r\n var visualMapping = mappings[type];\r\n if (opts.convertOpacityToAlpha && type === 'opacity') {\r\n type = 'colorAlpha';\r\n visualMapping = mappings.__alphaForOpacity;\r\n }\r\n if (VisualMapping.dependsOn(type, visualCluster)) {\r\n visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\r\n }\r\n });\r\n return visualObj[visualCluster];\r\n };\r\n VisualMapView.prototype.positionGroup = function (group) {\r\n var model = this.visualMapModel;\r\n var api = this.api;\r\n positionElement(group, model.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() });\r\n };\r\n VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) { };\r\n VisualMapView.type = 'visualMap';\r\n return VisualMapView;\r\n }(ComponentView));\r\n ComponentView.registerClass(VisualMapView);\n\n var paramsSet = [\r\n ['left', 'right', 'width'],\r\n ['top', 'bottom', 'height']\r\n ];\r\n function getItemAlign(visualMapModel, api, itemSize) {\r\n var modelOption = visualMapModel.option;\r\n var itemAlign = modelOption.align;\r\n if (itemAlign != null && itemAlign !== 'auto') {\r\n return itemAlign;\r\n }\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\r\n var reals = paramsSet[realIndex];\r\n var fakeValue = [0, null, 10];\r\n var layoutInput = {};\r\n for (var i = 0; i < 3; i++) {\r\n layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\r\n layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\r\n }\r\n var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\r\n var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\r\n return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5\r\n < ecSize[rParam[1]] * 0.5 ? 0 : 1];\r\n }\r\n function makeHighDownBatch(batch, visualMapModel) {\r\n each(batch || [], function (batchItem) {\r\n if (batchItem.dataIndex != null) {\r\n batchItem.dataIndexInside = batchItem.dataIndex;\r\n batchItem.dataIndex = null;\r\n }\r\n batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\r\n });\r\n return batch;\r\n }\n\n var linearMap$2 = linearMap;\r\n var each$i = each;\r\n var mathMin$8 = Math.min;\r\n var mathMax$8 = Math.max;\r\n var HOVER_LINK_SIZE = 12;\r\n var HOVER_LINK_OUT = 6;\r\n var ContinuousView = (function (_super) {\r\n __extends(ContinuousView, _super);\r\n function ContinuousView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ContinuousView.type;\r\n _this._shapes = {};\r\n _this._dataInterval = [];\r\n _this._handleEnds = [];\r\n _this._hoverLinkDataIndices = [];\r\n return _this;\r\n }\r\n ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\r\n this._api = api;\r\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n };\r\n ContinuousView.prototype._buildView = function () {\r\n this.group.removeAll();\r\n var visualMapModel = this.visualMapModel;\r\n var thisGroup = this.group;\r\n this._orient = visualMapModel.get('orient');\r\n this._useHandle = visualMapModel.get('calculable');\r\n this._resetInterval();\r\n this._renderBar(thisGroup);\r\n var dataRangeText = visualMapModel.get('text');\r\n this._renderEndsText(thisGroup, dataRangeText, 0);\r\n this._renderEndsText(thisGroup, dataRangeText, 1);\r\n this._updateView(true);\r\n this.renderBackground(thisGroup);\r\n this._updateView();\r\n this._enableHoverLinkToSeries();\r\n this._enableHoverLinkFromSeries();\r\n this.positionGroup(thisGroup);\r\n };\r\n ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\r\n if (!dataRangeText) {\r\n return;\r\n }\r\n var text = dataRangeText[1 - endsIndex];\r\n text = text != null ? text + '' : '';\r\n var visualMapModel = this.visualMapModel;\r\n var textGap = visualMapModel.get('textGap');\r\n var itemSize = visualMapModel.itemSize;\r\n var barGroup = this._shapes.mainGroup;\r\n var position = this._applyTransform([\r\n itemSize[0] / 2,\r\n endsIndex === 0 ? -textGap : itemSize[1] + textGap\r\n ], barGroup);\r\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\r\n var orient = this._orient;\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n this.group.add(new ZRText({\r\n style: {\r\n x: position[0],\r\n y: position[1],\r\n verticalAlign: orient === 'horizontal' ? 'middle' : align,\r\n align: orient === 'horizontal' ? align : 'center',\r\n text: text,\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n }));\r\n };\r\n ContinuousView.prototype._renderBar = function (targetGroup) {\r\n var visualMapModel = this.visualMapModel;\r\n var shapes = this._shapes;\r\n var itemSize = visualMapModel.itemSize;\r\n var orient = this._orient;\r\n var useHandle = this._useHandle;\r\n var itemAlign = getItemAlign(visualMapModel, this.api, itemSize);\r\n var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\r\n var gradientBarGroup = new Group();\r\n mainGroup.add(gradientBarGroup);\r\n gradientBarGroup.add(shapes.outOfRange = createPolygon());\r\n gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor$1(this._orient) : null, bind(this._dragHandle, this, 'all', false), bind(this._dragHandle, this, 'all', true)));\r\n gradientBarGroup.setClipPath(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: itemSize[0],\r\n height: itemSize[1],\r\n r: 3\r\n }\r\n }));\r\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\r\n var textSize = mathMax$8(textRect.width, textRect.height);\r\n if (useHandle) {\r\n shapes.handleThumbs = [];\r\n shapes.handleLabels = [];\r\n shapes.handleLabelPoints = [];\r\n this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\r\n this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\r\n }\r\n this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\r\n targetGroup.add(mainGroup);\r\n };\r\n ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\r\n var onDrift = bind(this._dragHandle, this, handleIndex, false);\r\n var onDragEnd = bind(this._dragHandle, this, handleIndex, true);\r\n var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\r\n var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\r\n var cursor = getCursor$1(this._orient);\r\n handleThumb.attr({\r\n cursor: cursor,\r\n draggable: true,\r\n drift: onDrift,\r\n ondragend: onDragEnd,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n }\r\n });\r\n handleThumb.x = itemSize[0] / 2;\r\n handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\r\n handleThumb.setStyle({\r\n strokeNoScale: true,\r\n strokeFirst: true\r\n });\r\n handleThumb.style.lineWidth *= 2;\r\n handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n setAsHighDownDispatcher(handleThumb, true);\r\n mainGroup.add(handleThumb);\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n var handleLabel = new ZRText({\r\n cursor: cursor,\r\n draggable: true,\r\n drift: onDrift,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n ondragend: onDragEnd,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n });\r\n handleLabel.ensureState('blur').style = {\r\n opacity: 0.1\r\n };\r\n handleLabel.stateTransition = { duration: 200 };\r\n this.group.add(handleLabel);\r\n var handleLabelPoint = [handleSize, 0];\r\n var shapes = this._shapes;\r\n shapes.handleThumbs[handleIndex] = handleThumb;\r\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\r\n shapes.handleLabels[handleIndex] = handleLabel;\r\n };\r\n ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\r\n var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\r\n var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\r\n indicator.attr({\r\n cursor: 'move',\r\n invisible: true,\r\n silent: true,\r\n x: itemSize[0] / 2\r\n });\r\n var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\r\n if (indicator instanceof ZRImage) {\r\n var pathStyle = indicator.style;\r\n indicator.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, indicatorStyle));\r\n }\r\n else {\r\n indicator.useStyle(indicatorStyle);\r\n }\r\n mainGroup.add(indicator);\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n var indicatorLabel = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n });\r\n this.group.add(indicatorLabel);\r\n var indicatorLabelPoint = [\r\n (orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2,\r\n 0\r\n ];\r\n var shapes = this._shapes;\r\n shapes.indicator = indicator;\r\n shapes.indicatorLabel = indicatorLabel;\r\n shapes.indicatorLabelPoint = indicatorLabelPoint;\r\n this._firstShowIndicator = true;\r\n };\r\n ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\r\n if (!this._useHandle) {\r\n return;\r\n }\r\n this._dragging = !isEnd;\r\n if (!isEnd) {\r\n var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\r\n this._updateInterval(handleIndex, vertex[1]);\r\n this._hideIndicator();\r\n this._updateView();\r\n }\r\n if (isEnd === !this.visualMapModel.get('realtime')) {\r\n this.api.dispatchAction({\r\n type: 'selectDataRange',\r\n from: this.uid,\r\n visualMapId: this.visualMapModel.id,\r\n selected: this._dataInterval.slice()\r\n });\r\n }\r\n if (isEnd) {\r\n !this._hovering && this._clearHoverLinkToSeries();\r\n }\r\n else if (useHoverLinkOnHandle(this.visualMapModel)) {\r\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\r\n }\r\n };\r\n ContinuousView.prototype._resetInterval = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\r\n var dataExtent = visualMapModel.getExtent();\r\n var sizeExtent = [0, visualMapModel.itemSize[1]];\r\n this._handleEnds = [\r\n linearMap$2(dataInterval[0], dataExtent, sizeExtent, true),\r\n linearMap$2(dataInterval[1], dataExtent, sizeExtent, true)\r\n ];\r\n };\r\n ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\r\n delta = delta || 0;\r\n var visualMapModel = this.visualMapModel;\r\n var handleEnds = this._handleEnds;\r\n var sizeExtent = [0, visualMapModel.itemSize[1]];\r\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\r\n var dataExtent = visualMapModel.getExtent();\r\n this._dataInterval = [\r\n linearMap$2(handleEnds[0], sizeExtent, dataExtent, true),\r\n linearMap$2(handleEnds[1], sizeExtent, dataExtent, true)\r\n ];\r\n };\r\n ContinuousView.prototype._updateView = function (forSketch) {\r\n var visualMapModel = this.visualMapModel;\r\n var dataExtent = visualMapModel.getExtent();\r\n var shapes = this._shapes;\r\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\r\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\r\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\r\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\r\n shapes.inRange\r\n .setStyle({\r\n fill: visualInRange.barColor\r\n })\r\n .setShape('points', visualInRange.barPoints);\r\n shapes.outOfRange\r\n .setStyle({\r\n fill: visualOutOfRange.barColor\r\n })\r\n .setShape('points', visualOutOfRange.barPoints);\r\n this._updateHandle(inRangeHandleEnds, visualInRange);\r\n };\r\n ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\r\n var opts = {\r\n forceState: forceState,\r\n convertOpacityToAlpha: true\r\n };\r\n var colorStops = this._makeColorGradient(dataInterval, opts);\r\n var symbolSizes = [\r\n this.getControllerVisual(dataInterval[0], 'symbolSize', opts),\r\n this.getControllerVisual(dataInterval[1], 'symbolSize', opts)\r\n ];\r\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\r\n return {\r\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\r\n barPoints: barPoints,\r\n handlesColor: [\r\n colorStops[0].color,\r\n colorStops[colorStops.length - 1].color\r\n ]\r\n };\r\n };\r\n ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\r\n var sampleNumber = 100;\r\n var colorStops = [];\r\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\r\n colorStops.push({\r\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\r\n offset: 0\r\n });\r\n for (var i = 1; i < sampleNumber; i++) {\r\n var currValue = dataInterval[0] + step * i;\r\n if (currValue > dataInterval[1]) {\r\n break;\r\n }\r\n colorStops.push({\r\n color: this.getControllerVisual(currValue, 'color', opts),\r\n offset: i / sampleNumber\r\n });\r\n }\r\n colorStops.push({\r\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\r\n offset: 1\r\n });\r\n return colorStops;\r\n };\r\n ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\r\n var itemSize = this.visualMapModel.itemSize;\r\n return [\r\n [itemSize[0] - symbolSizes[0], handleEnds[0]],\r\n [itemSize[0], handleEnds[0]],\r\n [itemSize[0], handleEnds[1]],\r\n [itemSize[0] - symbolSizes[1], handleEnds[1]]\r\n ];\r\n };\r\n ContinuousView.prototype._createBarGroup = function (itemAlign) {\r\n var orient = this._orient;\r\n var inverse = this.visualMapModel.get('inverse');\r\n return new Group((orient === 'horizontal' && !inverse)\r\n ? { scaleX: itemAlign === 'bottom' ? 1 : -1, rotation: Math.PI / 2 }\r\n : (orient === 'horizontal' && inverse)\r\n ? { scaleX: itemAlign === 'bottom' ? -1 : 1, rotation: -Math.PI / 2 }\r\n : (orient === 'vertical' && !inverse)\r\n ? { scaleX: itemAlign === 'left' ? 1 : -1, scaleY: -1 }\r\n : { scaleX: itemAlign === 'left' ? 1 : -1 });\r\n };\r\n ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\r\n if (!this._useHandle) {\r\n return;\r\n }\r\n var shapes = this._shapes;\r\n var visualMapModel = this.visualMapModel;\r\n var handleThumbs = shapes.handleThumbs;\r\n var handleLabels = shapes.handleLabels;\r\n var itemSize = visualMapModel.itemSize;\r\n var dataExtent = visualMapModel.getExtent();\r\n each$i([0, 1], function (handleIndex) {\r\n var handleThumb = handleThumbs[handleIndex];\r\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\r\n handleThumb.y = handleEnds[handleIndex];\r\n var val = linearMap$2(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\r\n var symbolSize = this.getControllerVisual(val, 'symbolSize');\r\n handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\r\n handleThumb.x = itemSize[0] - symbolSize / 2;\r\n var textPoint = applyTransform$1(shapes.handleLabelPoints[handleIndex], getTransform(handleThumb, this.group));\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\r\n verticalAlign: 'middle',\r\n align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\r\n });\r\n }, this);\r\n };\r\n ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\r\n var visualMapModel = this.visualMapModel;\r\n var dataExtent = visualMapModel.getExtent();\r\n var itemSize = visualMapModel.itemSize;\r\n var sizeExtent = [0, itemSize[1]];\r\n var shapes = this._shapes;\r\n var indicator = shapes.indicator;\r\n if (!indicator) {\r\n return;\r\n }\r\n indicator.attr('invisible', false);\r\n var opts = { convertOpacityToAlpha: true };\r\n var color = this.getControllerVisual(cursorValue, 'color', opts);\r\n var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\r\n var y = linearMap$2(cursorValue, dataExtent, sizeExtent, true);\r\n var x = itemSize[0] - symbolSize / 2;\r\n var oldIndicatorPos = { x: indicator.x, y: indicator.y };\r\n indicator.y = y;\r\n indicator.x = x;\r\n var textPoint = applyTransform$1(shapes.indicatorLabelPoint, getTransform(indicator, this.group));\r\n var indicatorLabel = shapes.indicatorLabel;\r\n indicatorLabel.attr('invisible', false);\r\n var align = this._applyTransform('left', shapes.mainGroup);\r\n var orient = this._orient;\r\n var isHorizontal = orient === 'horizontal';\r\n indicatorLabel.setStyle({\r\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\r\n verticalAlign: isHorizontal ? align : 'middle',\r\n align: isHorizontal ? 'center' : align\r\n });\r\n var indicatorNewProps = {\r\n x: x,\r\n y: y,\r\n style: {\r\n fill: color\r\n }\r\n };\r\n var labelNewProps = {\r\n style: {\r\n x: textPoint[0],\r\n y: textPoint[1]\r\n }\r\n };\r\n if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\r\n var animationCfg = {\r\n duration: 100,\r\n easing: 'cubicInOut',\r\n additive: true\r\n };\r\n indicator.x = oldIndicatorPos.x;\r\n indicator.y = oldIndicatorPos.y;\r\n indicator.animateTo(indicatorNewProps, animationCfg);\r\n indicatorLabel.animateTo(labelNewProps, animationCfg);\r\n }\r\n else {\r\n indicator.attr(indicatorNewProps);\r\n indicatorLabel.attr(labelNewProps);\r\n }\r\n this._firstShowIndicator = false;\r\n var handleLabels = this._shapes.handleLabels;\r\n if (handleLabels) {\r\n for (var i = 0; i < handleLabels.length; i++) {\r\n this._api.enterBlur(handleLabels[i]);\r\n }\r\n }\r\n };\r\n ContinuousView.prototype._enableHoverLinkToSeries = function () {\r\n var self = this;\r\n this._shapes.mainGroup\r\n .on('mousemove', function (e) {\r\n self._hovering = true;\r\n if (!self._dragging) {\r\n var itemSize = self.visualMapModel.itemSize;\r\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\r\n pos[1] = mathMin$8(mathMax$8(0, pos[1]), itemSize[1]);\r\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\r\n }\r\n })\r\n .on('mouseout', function () {\r\n self._hovering = false;\r\n !self._dragging && self._clearHoverLinkToSeries();\r\n });\r\n };\r\n ContinuousView.prototype._enableHoverLinkFromSeries = function () {\r\n var zr = this.api.getZr();\r\n if (this.visualMapModel.option.hoverLink) {\r\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\r\n zr.on('mouseout', this._hideIndicator, this);\r\n }\r\n else {\r\n this._clearHoverLinkFromSeries();\r\n }\r\n };\r\n ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\r\n var visualMapModel = this.visualMapModel;\r\n var itemSize = visualMapModel.itemSize;\r\n if (!visualMapModel.option.hoverLink) {\r\n return;\r\n }\r\n var sizeExtent = [0, itemSize[1]];\r\n var dataExtent = visualMapModel.getExtent();\r\n cursorPos = mathMin$8(mathMax$8(sizeExtent[0], cursorPos), sizeExtent[1]);\r\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\r\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\r\n var cursorValue = linearMap$2(cursorPos, sizeExtent, dataExtent, true);\r\n var valueRange = [\r\n linearMap$2(hoverRange[0], sizeExtent, dataExtent, true),\r\n linearMap$2(hoverRange[1], sizeExtent, dataExtent, true)\r\n ];\r\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\r\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\r\n if (hoverOnBar) {\r\n if (valueRange[0] === -Infinity) {\r\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\r\n }\r\n else if (valueRange[1] === Infinity) {\r\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\r\n }\r\n else {\r\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\r\n }\r\n }\r\n var oldBatch = this._hoverLinkDataIndices;\r\n var newBatch = [];\r\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\r\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\r\n }\r\n var resultBatches = compressBatches(oldBatch, newBatch);\r\n this._dispatchHighDown('downplay', makeHighDownBatch(resultBatches[0], visualMapModel));\r\n this._dispatchHighDown('highlight', makeHighDownBatch(resultBatches[1], visualMapModel));\r\n };\r\n ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\r\n var el = e.target;\r\n var visualMapModel = this.visualMapModel;\r\n if (!el || getECData(el).dataIndex == null) {\r\n return;\r\n }\r\n var ecData = getECData(el);\r\n var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n if (!visualMapModel.isTargetSeries(dataModel)) {\r\n return;\r\n }\r\n var data = dataModel.getData(ecData.dataType);\r\n var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\r\n if (!isNaN(value)) {\r\n this._showIndicator(value, value);\r\n }\r\n };\r\n ContinuousView.prototype._hideIndicator = function () {\r\n var shapes = this._shapes;\r\n shapes.indicator && shapes.indicator.attr('invisible', true);\r\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\r\n var handleLabels = this._shapes.handleLabels;\r\n if (handleLabels) {\r\n for (var i = 0; i < handleLabels.length; i++) {\r\n this._api.leaveBlur(handleLabels[i]);\r\n }\r\n }\r\n };\r\n ContinuousView.prototype._clearHoverLinkToSeries = function () {\r\n this._hideIndicator();\r\n var indices = this._hoverLinkDataIndices;\r\n this._dispatchHighDown('downplay', makeHighDownBatch(indices, this.visualMapModel));\r\n indices.length = 0;\r\n };\r\n ContinuousView.prototype._clearHoverLinkFromSeries = function () {\r\n this._hideIndicator();\r\n var zr = this.api.getZr();\r\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\r\n zr.off('mouseout', this._hideIndicator);\r\n };\r\n ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\r\n var transform = getTransform(element, global ? null : this.group);\r\n return isArray(vertex)\r\n ? applyTransform$1(vertex, transform, inverse)\r\n : transformDirection(vertex, transform, inverse);\r\n };\r\n ContinuousView.prototype._dispatchHighDown = function (type, batch) {\r\n batch && batch.length && this.api.dispatchAction({\r\n type: type,\r\n batch: batch\r\n });\r\n };\r\n ContinuousView.prototype.dispose = function () {\r\n this._clearHoverLinkFromSeries();\r\n this._clearHoverLinkToSeries();\r\n };\r\n ContinuousView.prototype.remove = function () {\r\n this._clearHoverLinkFromSeries();\r\n this._clearHoverLinkToSeries();\r\n };\r\n ContinuousView.type = 'visualMap.continuous';\r\n return ContinuousView;\r\n }(VisualMapView));\r\n function createPolygon(points, cursor, onDrift, onDragEnd) {\r\n return new Polygon({\r\n shape: { points: points },\r\n draggable: !!onDrift,\r\n cursor: cursor,\r\n drift: onDrift,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n ondragend: onDragEnd\r\n });\r\n }\r\n function getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\r\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\r\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\r\n if (hoverLinkDataSize) {\r\n halfHoverLinkSize = linearMap$2(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\r\n }\r\n return halfHoverLinkSize;\r\n }\r\n function useHoverLinkOnHandle(visualMapModel) {\r\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\r\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\r\n }\r\n function getCursor$1(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(ContinuousView);\n\n var actionInfo$2 = {\r\n type: 'selectDataRange',\r\n event: 'dataRangeSelected',\r\n update: 'update'\r\n };\r\n registerAction(actionInfo$2, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'visualMap', query: payload }, function (model) {\r\n model.setSelected(payload.selected);\r\n });\r\n });\n\n registerPreprocessor(preprocessor$3);\n\n var PiecewiseModel = (function (_super) {\r\n __extends(PiecewiseModel, _super);\r\n function PiecewiseModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PiecewiseModel.type;\r\n _this._pieceList = [];\r\n return _this;\r\n }\r\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n this.resetExtent();\r\n var mode = this._mode = this._determineMode();\r\n this._pieceList = [];\r\n resetMethods[this._mode].call(this, this._pieceList);\r\n this._resetSelected(newOption, isInit);\r\n var categories = this.option.categories;\r\n this.resetVisual(function (mappingOption, state) {\r\n if (mode === 'categories') {\r\n mappingOption.mappingMethod = 'category';\r\n mappingOption.categories = clone(categories);\r\n }\r\n else {\r\n mappingOption.dataExtent = this.getExtent();\r\n mappingOption.mappingMethod = 'piecewise';\r\n mappingOption.pieceList = map(this._pieceList, function (piece) {\r\n piece = clone(piece);\r\n if (state !== 'inRange') {\r\n piece.visual = null;\r\n }\r\n return piece;\r\n });\r\n }\r\n });\r\n };\r\n PiecewiseModel.prototype.completeVisualOption = function () {\r\n var option = this.option;\r\n var visualTypesInPieces = {};\r\n var visualTypes = VisualMapping.listVisualTypes();\r\n var isCategory = this.isCategory();\r\n each(option.pieces, function (piece) {\r\n each(visualTypes, function (visualType) {\r\n if (piece.hasOwnProperty(visualType)) {\r\n visualTypesInPieces[visualType] = 1;\r\n }\r\n });\r\n });\r\n each(visualTypesInPieces, function (v, visualType) {\r\n var exists = false;\r\n each(this.stateList, function (state) {\r\n exists = exists || has(option, state, visualType)\r\n || has(option.target, state, visualType);\r\n }, this);\r\n !exists && each(this.stateList, function (state) {\r\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\r\n });\r\n }, this);\r\n function has(obj, state, visualType) {\r\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\r\n }\r\n _super.prototype.completeVisualOption.apply(this, arguments);\r\n };\r\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var pieceList = this._pieceList;\r\n var selected = (isInit ? thisOption : newOption).selected || {};\r\n thisOption.selected = selected;\r\n each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n if (!selected.hasOwnProperty(key)) {\r\n selected[key] = true;\r\n }\r\n }, this);\r\n if (thisOption.selectedMode === 'single') {\r\n var hasSel_1 = false;\r\n each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n if (selected[key]) {\r\n hasSel_1\r\n ? (selected[key] = false)\r\n : (hasSel_1 = true);\r\n }\r\n }, this);\r\n }\r\n };\r\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\r\n return this._mode === 'categories'\r\n ? piece.value + '' : piece.index + '';\r\n };\r\n PiecewiseModel.prototype.getPieceList = function () {\r\n return this._pieceList;\r\n };\r\n PiecewiseModel.prototype._determineMode = function () {\r\n var option = this.option;\r\n return option.pieces && option.pieces.length > 0\r\n ? 'pieces'\r\n : this.option.categories\r\n ? 'categories'\r\n : 'splitNumber';\r\n };\r\n PiecewiseModel.prototype.setSelected = function (selected) {\r\n this.option.selected = clone(selected);\r\n };\r\n PiecewiseModel.prototype.getValueState = function (value) {\r\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\r\n return index != null\r\n ? (this.option.selected[this.getSelectedMapKey(this._pieceList[index])]\r\n ? 'inRange' : 'outOfRange')\r\n : 'outOfRange';\r\n };\r\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\r\n var result = [];\r\n var pieceList = this._pieceList;\r\n this.eachTargetSeries(function (seriesModel) {\r\n var dataIndices = [];\r\n var data = seriesModel.getData();\r\n data.each(this.getDataDimension(data), function (value, dataIndex) {\r\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\r\n pIdx === pieceIndex && dataIndices.push(dataIndex);\r\n }, this);\r\n result.push({ seriesId: seriesModel.id, dataIndex: dataIndices });\r\n }, this);\r\n return result;\r\n };\r\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\r\n var representValue;\r\n if (this.isCategory()) {\r\n representValue = piece.value;\r\n }\r\n else {\r\n if (piece.value != null) {\r\n representValue = piece.value;\r\n }\r\n else {\r\n var pieceInterval = piece.interval || [];\r\n representValue = (pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity)\r\n ? 0\r\n : (pieceInterval[0] + pieceInterval[1]) / 2;\r\n }\r\n }\r\n return representValue;\r\n };\r\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\r\n if (this.isCategory()) {\r\n return;\r\n }\r\n var stops = [];\r\n var outerColors = ['', ''];\r\n var visualMapModel = this;\r\n function setStop(interval, valueState) {\r\n var representValue = visualMapModel.getRepresentValue({\r\n interval: interval\r\n });\r\n if (!valueState) {\r\n valueState = visualMapModel.getValueState(representValue);\r\n }\r\n var color = getColorVisual(representValue, valueState);\r\n if (interval[0] === -Infinity) {\r\n outerColors[0] = color;\r\n }\r\n else if (interval[1] === Infinity) {\r\n outerColors[1] = color;\r\n }\r\n else {\r\n stops.push({ value: interval[0], color: color }, { value: interval[1], color: color });\r\n }\r\n }\r\n var pieceList = this._pieceList.slice();\r\n if (!pieceList.length) {\r\n pieceList.push({ interval: [-Infinity, Infinity] });\r\n }\r\n else {\r\n var edge = pieceList[0].interval[0];\r\n edge !== -Infinity && pieceList.unshift({ interval: [-Infinity, edge] });\r\n edge = pieceList[pieceList.length - 1].interval[1];\r\n edge !== Infinity && pieceList.push({ interval: [edge, Infinity] });\r\n }\r\n var curr = -Infinity;\r\n each(pieceList, function (piece) {\r\n var interval = piece.interval;\r\n if (interval) {\r\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\r\n setStop(interval.slice());\r\n curr = interval[1];\r\n }\r\n }, this);\r\n return { stops: stops, outerColors: outerColors };\r\n };\r\n PiecewiseModel.type = 'visualMap.piecewise';\r\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\r\n selected: null,\r\n minOpen: false,\r\n maxOpen: false,\r\n align: 'auto',\r\n itemWidth: 20,\r\n itemHeight: 14,\r\n itemSymbol: 'roundRect',\r\n pieces: null,\r\n categories: null,\r\n splitNumber: 5,\r\n selectedMode: 'multiple',\r\n itemGap: 10,\r\n hoverLink: true\r\n });\r\n return PiecewiseModel;\r\n }(VisualMapModel));\r\n var resetMethods = {\r\n splitNumber: function (outPieceList) {\r\n var thisOption = this.option;\r\n var precision = Math.min(thisOption.precision, 20);\r\n var dataExtent = this.getExtent();\r\n var splitNumber = thisOption.splitNumber;\r\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\r\n thisOption.splitNumber = splitNumber;\r\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\r\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\r\n precision++;\r\n }\r\n thisOption.precision = precision;\r\n splitStep = +splitStep.toFixed(precision);\r\n if (thisOption.minOpen) {\r\n outPieceList.push({\r\n interval: [-Infinity, dataExtent[0]],\r\n close: [0, 0]\r\n });\r\n }\r\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\r\n var max = index === splitNumber - 1 ? dataExtent[1] : (curr + splitStep);\r\n outPieceList.push({\r\n interval: [curr, max],\r\n close: [1, 1]\r\n });\r\n }\r\n if (thisOption.maxOpen) {\r\n outPieceList.push({\r\n interval: [dataExtent[1], Infinity],\r\n close: [0, 0]\r\n });\r\n }\r\n reformIntervals(outPieceList);\r\n each(outPieceList, function (piece, index) {\r\n piece.index = index;\r\n piece.text = this.formatValueText(piece.interval);\r\n }, this);\r\n },\r\n categories: function (outPieceList) {\r\n var thisOption = this.option;\r\n each(thisOption.categories, function (cate) {\r\n outPieceList.push({\r\n text: this.formatValueText(cate, true),\r\n value: cate\r\n });\r\n }, this);\r\n normalizeReverse(thisOption, outPieceList);\r\n },\r\n pieces: function (outPieceList) {\r\n var thisOption = this.option;\r\n each(thisOption.pieces, function (pieceListItem, index) {\r\n if (!isObject(pieceListItem)) {\r\n pieceListItem = { value: pieceListItem };\r\n }\r\n var item = { text: '', index: index };\r\n if (pieceListItem.label != null) {\r\n item.text = pieceListItem.label;\r\n }\r\n if (pieceListItem.hasOwnProperty('value')) {\r\n var value = item.value = pieceListItem.value;\r\n item.interval = [value, value];\r\n item.close = [1, 1];\r\n }\r\n else {\r\n var interval = item.interval = [];\r\n var close_1 = item.close = [0, 0];\r\n var closeList = [1, 0, 1];\r\n var infinityList = [-Infinity, Infinity];\r\n var useMinMax = [];\r\n for (var lg = 0; lg < 2; lg++) {\r\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\r\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\r\n interval[lg] = pieceListItem[names[i]];\r\n close_1[lg] = closeList[i];\r\n useMinMax[lg] = i === 2;\r\n }\r\n interval[lg] == null && (interval[lg] = infinityList[lg]);\r\n }\r\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\r\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\r\n if (__DEV__) {\r\n if (interval[0] > interval[1]) {\r\n console.warn('Piece ' + index + 'is illegal: ' + interval\r\n + ' lower bound should not greater then uppper bound.');\r\n }\r\n }\r\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\r\n item.value = interval[0];\r\n }\r\n }\r\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\r\n outPieceList.push(item);\r\n }, this);\r\n normalizeReverse(thisOption, outPieceList);\r\n reformIntervals(outPieceList);\r\n each(outPieceList, function (piece) {\r\n var close = piece.close;\r\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\r\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\r\n }, this);\r\n }\r\n };\r\n function normalizeReverse(thisOption, pieceList) {\r\n var inverse = thisOption.inverse;\r\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\r\n pieceList.reverse();\r\n }\r\n }\r\n ComponentModel.registerClass(PiecewiseModel);\n\n var PiecewiseVisualMapView = (function (_super) {\r\n __extends(PiecewiseVisualMapView, _super);\r\n function PiecewiseVisualMapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PiecewiseVisualMapView.type;\r\n return _this;\r\n }\r\n PiecewiseVisualMapView.prototype.doRender = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n var visualMapModel = this.visualMapModel;\r\n var textGap = visualMapModel.get('textGap');\r\n var textStyleModel = visualMapModel.textStyleModel;\r\n var textFont = textStyleModel.getFont();\r\n var textFill = textStyleModel.getTextColor();\r\n var itemAlign = this._getItemAlign();\r\n var itemSize = visualMapModel.itemSize;\r\n var viewData = this._getViewData();\r\n var endsText = viewData.endsText;\r\n var showLabel = retrieve(visualMapModel.get('showLabel', true), !endsText);\r\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\r\n each(viewData.viewPieceList, function (item) {\r\n var piece = item.piece;\r\n var itemGroup = new Group();\r\n itemGroup.onclick = bind(this._onItemClick, this, piece);\r\n this._enableHoverLink(itemGroup, item.indexInModelPieceList);\r\n var representValue = visualMapModel.getRepresentValue(piece);\r\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\r\n if (showLabel) {\r\n var visualState = this.visualMapModel.getValueState(representValue);\r\n itemGroup.add(new ZRText({\r\n style: {\r\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\r\n y: itemSize[1] / 2,\r\n text: piece.text,\r\n verticalAlign: 'middle',\r\n align: itemAlign,\r\n font: textFont,\r\n fill: textFill,\r\n opacity: visualState === 'outOfRange' ? 0.5 : 1\r\n }\r\n }));\r\n }\r\n thisGroup.add(itemGroup);\r\n }, this);\r\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\r\n box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\r\n this.renderBackground(thisGroup);\r\n this.positionGroup(thisGroup);\r\n };\r\n PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\r\n var _this = this;\r\n itemGroup\r\n .on('mouseover', function () { return onHoverLink('highlight'); })\r\n .on('mouseout', function () { return onHoverLink('downplay'); });\r\n var onHoverLink = function (method) {\r\n var visualMapModel = _this.visualMapModel;\r\n visualMapModel.option.hoverLink && _this.api.dispatchAction({\r\n type: method,\r\n batch: makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\r\n });\r\n };\r\n };\r\n PiecewiseVisualMapView.prototype._getItemAlign = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var modelOption = visualMapModel.option;\r\n if (modelOption.orient === 'vertical') {\r\n return getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\r\n }\r\n else {\r\n var align = modelOption.align;\r\n if (!align || align === 'auto') {\r\n align = 'left';\r\n }\r\n return align;\r\n }\r\n };\r\n PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\r\n if (!text) {\r\n return;\r\n }\r\n var itemGroup = new Group();\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n itemGroup.add(new ZRText({\r\n style: {\r\n x: showLabel ? (itemAlign === 'right' ? itemSize[0] : 0) : itemSize[0] / 2,\r\n y: itemSize[1] / 2,\r\n verticalAlign: 'middle',\r\n align: showLabel ? itemAlign : 'center',\r\n text: text,\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n }));\r\n group.add(itemGroup);\r\n };\r\n PiecewiseVisualMapView.prototype._getViewData = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var viewPieceList = map(visualMapModel.getPieceList(), function (piece, index) {\r\n return { piece: piece, indexInModelPieceList: index };\r\n });\r\n var endsText = visualMapModel.get('text');\r\n var orient = visualMapModel.get('orient');\r\n var inverse = visualMapModel.get('inverse');\r\n if (orient === 'horizontal' ? inverse : !inverse) {\r\n viewPieceList.reverse();\r\n }\r\n else if (endsText) {\r\n endsText = endsText.slice().reverse();\r\n }\r\n return { viewPieceList: viewPieceList, endsText: endsText };\r\n };\r\n PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\r\n group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\r\n };\r\n PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\r\n var visualMapModel = this.visualMapModel;\r\n var option = visualMapModel.option;\r\n var selected = clone(option.selected);\r\n var newKey = visualMapModel.getSelectedMapKey(piece);\r\n if (option.selectedMode === 'single') {\r\n selected[newKey] = true;\r\n each(selected, function (o, key) {\r\n selected[key] = key === newKey;\r\n });\r\n }\r\n else {\r\n selected[newKey] = !selected[newKey];\r\n }\r\n this.api.dispatchAction({\r\n type: 'selectDataRange',\r\n from: this.uid,\r\n visualMapId: this.visualMapModel.id,\r\n selected: selected\r\n });\r\n };\r\n PiecewiseVisualMapView.type = 'visualMap.piecewise';\r\n return PiecewiseVisualMapView;\r\n }(VisualMapView));\r\n ComponentView.registerClass(PiecewiseVisualMapView);\n\n registerPreprocessor(preprocessor$3);\n\n function createElement(name) {\r\n return document.createElementNS('http://www.w3.org/2000/svg', name);\r\n }\n\n var CMD$4 = PathProxy.CMD;\r\n var NONE = 'none';\r\n var mathRound = Math.round;\r\n var mathSin$3 = Math.sin;\r\n var mathCos$3 = Math.cos;\r\n var PI$9 = Math.PI;\r\n var PI2$8 = Math.PI * 2;\r\n var degree = 180 / PI$9;\r\n var EPSILON$4 = 1e-4;\r\n function round4(val) {\r\n return mathRound(val * 1e4) / 1e4;\r\n }\r\n function isAroundZero$1(val) {\r\n return val < EPSILON$4 && val > -EPSILON$4;\r\n }\r\n function pathHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== NONE;\r\n }\r\n function pathHasStroke(style) {\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== NONE;\r\n }\r\n function reduceNumberString(n, precision) {\r\n return n > 1 ? +n.toFixed(precision) : +n.toPrecision(precision);\r\n }\r\n function setTransform(svgEl, m) {\r\n if (m) {\r\n attr(svgEl, 'transform', 'matrix('\r\n + reduceNumberString(m[0], 3) + ','\r\n + reduceNumberString(m[1], 3) + ','\r\n + reduceNumberString(m[2], 3) + ','\r\n + reduceNumberString(m[3], 3) + ','\r\n + reduceNumberString(m[4], 4) + ','\r\n + reduceNumberString(m[5], 4)\r\n + ')');\r\n }\r\n }\r\n function attr(el, key, val) {\r\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\r\n el.setAttribute(key, val);\r\n }\r\n }\r\n function attrXLink(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\r\n }\r\n function bindStyle(svgEl, style, el) {\r\n var opacity = style.opacity == null ? 1 : style.opacity;\r\n if (pathHasFill(style)) {\r\n var fill = style.fill;\r\n fill = fill === 'transparent' ? NONE : fill;\r\n attr(svgEl, 'fill', fill);\r\n attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\r\n }\r\n else {\r\n attr(svgEl, 'fill', NONE);\r\n }\r\n if (pathHasStroke(style)) {\r\n var stroke = style.stroke;\r\n stroke = stroke === 'transparent' ? NONE : stroke;\r\n attr(svgEl, 'stroke', stroke);\r\n var strokeWidth = style.lineWidth;\r\n var strokeScale_1 = style.strokeNoScale\r\n ? el.getLineScale()\r\n : 1;\r\n attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\r\n attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\r\n attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\r\n var lineDash = style.lineDash;\r\n if (lineDash) {\r\n var lineDashOffset = style.lineDashOffset;\r\n if (strokeScale_1 && strokeScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / strokeScale_1;\r\n });\r\n if (lineDashOffset) {\r\n lineDashOffset /= strokeScale_1;\r\n lineDashOffset = mathRound(lineDashOffset);\r\n }\r\n }\r\n attr(svgEl, 'stroke-dasharray', lineDash.join(','));\r\n attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke-dasharray', '');\r\n }\r\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\r\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\r\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke', NONE);\r\n }\r\n }\r\n function pathDataToString(path) {\r\n if (!path) {\r\n return '';\r\n }\r\n var str = [];\r\n var data = path.data;\r\n var dataLength = path.len();\r\n var x;\r\n var y;\r\n for (var i = 0; i < dataLength;) {\r\n var cmd = data[i++];\r\n var cmdStr = '';\r\n var nData = 0;\r\n switch (cmd) {\r\n case CMD$4.M:\r\n cmdStr = 'M';\r\n nData = 2;\r\n break;\r\n case CMD$4.L:\r\n cmdStr = 'L';\r\n nData = 2;\r\n break;\r\n case CMD$4.Q:\r\n cmdStr = 'Q';\r\n nData = 4;\r\n break;\r\n case CMD$4.C:\r\n cmdStr = 'C';\r\n nData = 6;\r\n break;\r\n case CMD$4.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n var psi = data[i++];\r\n var clockwise = data[i++];\r\n var dThetaPositive = Math.abs(dTheta);\r\n var isCircle = isAroundZero$1(dThetaPositive - PI2$8)\r\n || (clockwise ? dTheta >= PI2$8 : -dTheta >= PI2$8);\r\n var unifiedTheta = dTheta > 0 ? dTheta % PI2$8 : (dTheta % PI2$8 + PI2$8);\r\n var large = false;\r\n if (isCircle) {\r\n large = true;\r\n }\r\n else if (isAroundZero$1(dThetaPositive)) {\r\n large = false;\r\n }\r\n else {\r\n large = (unifiedTheta >= PI$9) === !!clockwise;\r\n }\r\n var x0 = round4(cx + rx * mathCos$3(theta));\r\n var y0 = round4(cy + ry * mathSin$3(theta));\r\n if (isCircle) {\r\n if (clockwise) {\r\n dTheta = PI2$8 - 1e-4;\r\n }\r\n else {\r\n dTheta = -PI2$8 + 1e-4;\r\n }\r\n large = true;\r\n if (i === 9) {\r\n str.push('M', x0, y0);\r\n }\r\n }\r\n x = round4(cx + rx * mathCos$3(theta + dTheta));\r\n y = round4(cy + ry * mathSin$3(theta + dTheta));\r\n if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\r\n return '';\r\n }\r\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\r\n break;\r\n case CMD$4.Z:\r\n cmdStr = 'Z';\r\n break;\r\n case CMD$4.R:\r\n x = round4(data[i++]);\r\n y = round4(data[i++]);\r\n var w = round4(data[i++]);\r\n var h = round4(data[i++]);\r\n if (isNaN(x) || isNaN(y) || isNaN(w) || isNaN(h)) {\r\n return '';\r\n }\r\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\r\n break;\r\n }\r\n cmdStr && str.push(cmdStr);\r\n for (var j = 0; j < nData; j++) {\r\n var val = round4(data[i++]);\r\n if (isNaN(val)) {\r\n return '';\r\n }\r\n str.push(val);\r\n }\r\n }\r\n return str.join(' ');\r\n }\r\n function wrapSVGBuildPath(el) {\r\n if (!el.__svgBuildPath) {\r\n var oldBuildPath_1 = el.buildPath;\r\n el.__svgBuildPath = el.buildPath = function (path, shape, inBundle) {\r\n oldBuildPath_1.call(this, el.path, shape, inBundle);\r\n el.__svgPathStr = pathDataToString(el.path);\r\n };\r\n if (!el.shapeChanged()) {\r\n el.__svgPathStr = pathDataToString(el.path);\r\n }\r\n }\r\n }\r\n var svgPath = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('path');\r\n el.__svgEl = svgEl;\r\n }\r\n if (!el.path) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path;\r\n wrapSVGBuildPath(el);\r\n if (el.shapeChanged()) {\r\n path.beginPath();\r\n el.buildPath(path, el.shape);\r\n el.pathUpdated();\r\n }\r\n attr(svgEl, 'd', el.__svgPathStr);\r\n bindStyle(svgEl, style, el);\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var svgImage = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var image = style.image;\r\n if (image instanceof HTMLImageElement) {\r\n var src = image.src;\r\n image = src;\r\n }\r\n if (!image) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var dw = style.width;\r\n var dh = style.height;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('image');\r\n el.__svgEl = svgEl;\r\n }\r\n if (image !== el.__imageSrc) {\r\n attrXLink(svgEl, 'href', image);\r\n el.__imageSrc = image;\r\n }\r\n attr(svgEl, 'width', dw + '');\r\n attr(svgEl, 'height', dh + '');\r\n attr(svgEl, 'x', x + '');\r\n attr(svgEl, 'y', y + '');\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var TEXT_ALIGN_TO_ANCHOR = {\r\n left: 'start',\r\n right: 'end',\r\n center: 'middle',\r\n middle: 'middle'\r\n };\r\n function adjustTextY$1(y, lineHeight, textBaseline) {\r\n if (textBaseline === 'top') {\r\n y += lineHeight / 2;\r\n }\r\n else if (textBaseline === 'bottom') {\r\n y -= lineHeight / 2;\r\n }\r\n return y;\r\n }\r\n var svgText = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (!text) {\r\n return;\r\n }\r\n var textSvgEl = el.__svgEl;\r\n if (!textSvgEl) {\r\n textSvgEl = createElement('text');\r\n el.__svgEl = textSvgEl;\r\n }\r\n var font = style.font || DEFAULT_FONT;\r\n var textSvgElStyle = textSvgEl.style;\r\n textSvgElStyle.font = font;\r\n textSvgEl.textContent = text;\r\n bindStyle(textSvgEl, style, el);\r\n setTransform(textSvgEl, el.transform);\r\n var x = style.x || 0;\r\n var y = adjustTextY$1(style.y || 0, getLineHeight(font), style.textBaseline);\r\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\r\n || style.textAlign;\r\n attr(textSvgEl, 'dominant-baseline', 'middle');\r\n attr(textSvgEl, 'text-anchor', textAlign);\r\n attr(textSvgEl, 'x', x + '');\r\n attr(textSvgEl, 'y', y + '');\r\n }\r\n };\n\n function diff(oldArr, newArr, equals) {\r\n if (!equals) {\r\n equals = function (a, b) {\r\n return a === b;\r\n };\r\n }\r\n oldArr = oldArr.slice();\r\n newArr = newArr.slice();\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n var indices = [];\r\n for (var i = 0; i < newArr.length; i++) {\r\n indices.push(i);\r\n }\r\n return [{\r\n indices: indices,\r\n count: newArr.length,\r\n added: false,\r\n removed: false\r\n }];\r\n }\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath;\r\n var addPath = bestPath[diagonalPath - 1];\r\n var removePath = bestPath[diagonalPath + 1];\r\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n var canAdd = addPath && addPath.newPos + 1 < newLen;\r\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\r\n basePath = clonePath(removePath);\r\n pushComponent(basePath.components, false, true);\r\n }\r\n else {\r\n basePath = addPath;\r\n basePath.newPos++;\r\n pushComponent(basePath.components, true, false);\r\n }\r\n oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\r\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n return buildValues(basePath.components);\r\n }\r\n else {\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n editLength++;\r\n }\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n function extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var newPos = basePath.newPos;\r\n var oldPos = newPos - diagonalPath;\r\n var commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n if (commonCount) {\r\n basePath.components.push({\r\n count: commonCount,\r\n added: false,\r\n removed: false,\r\n indices: []\r\n });\r\n }\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n }\r\n function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n components[components.length - 1] = {\r\n count: last.count + 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n };\r\n }\r\n else {\r\n components.push({\r\n count: 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n });\r\n }\r\n }\r\n function buildValues(components) {\r\n var componentPos = 0;\r\n var componentLen = components.length;\r\n var newPos = 0;\r\n var oldPos = 0;\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n var indices = [];\r\n for (var i = newPos; i < newPos + component.count; i++) {\r\n indices.push(i);\r\n }\r\n component.indices = indices;\r\n newPos += component.count;\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n }\r\n else {\r\n for (var i = oldPos; i < oldPos + component.count; i++) {\r\n component.indices.push(i);\r\n }\r\n oldPos += component.count;\r\n }\r\n }\r\n return components;\r\n }\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n function arrayDiff (oldArr, newArr, equal) {\r\n return diff(oldArr, newArr, equal);\r\n }\n\n var MARK_UNUSED = '0';\r\n var MARK_USED = '1';\r\n var Definable = (function () {\r\n function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\r\n this.nextId = 0;\r\n this._domName = '_dom';\r\n this.createElement = createElement;\r\n this._zrId = zrId;\r\n this._svgRoot = svgRoot;\r\n this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\r\n this._markLabel = markLabel;\r\n if (domName) {\r\n this._domName = domName;\r\n }\r\n }\r\n Definable.prototype.getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgRoot;\r\n var defs = this._svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n Definable.prototype.doUpdate = function (target, onUpdate) {\r\n if (!target) {\r\n return;\r\n }\r\n var defs = this.getDefs(false);\r\n if (target[this._domName] && defs.contains(target[this._domName])) {\r\n if (typeof onUpdate === 'function') {\r\n onUpdate(target);\r\n }\r\n }\r\n else {\r\n var dom = this.add(target);\r\n if (dom) {\r\n target[this._domName] = dom;\r\n }\r\n }\r\n };\r\n Definable.prototype.add = function (target) {\r\n return null;\r\n };\r\n Definable.prototype.addDom = function (dom) {\r\n var defs = this.getDefs(true);\r\n defs.appendChild(dom);\r\n };\r\n Definable.prototype.removeDom = function (target) {\r\n var defs = this.getDefs(false);\r\n if (defs && target[this._domName]) {\r\n defs.removeChild(target[this._domName]);\r\n target[this._domName] = null;\r\n }\r\n };\r\n Definable.prototype.getDoms = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return [];\r\n }\r\n var doms = [];\r\n each(this._tagNames, function (tagName) {\r\n var tags = defs.getElementsByTagName(tagName);\r\n doms = doms.concat([].slice.call(tags));\r\n });\r\n return doms;\r\n };\r\n Definable.prototype.markAllUnused = function () {\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n dom[that._markLabel] = MARK_UNUSED;\r\n });\r\n };\r\n Definable.prototype.markDomUsed = function (dom) {\r\n if (dom) {\r\n dom[this._markLabel] = MARK_USED;\r\n }\r\n };\r\n Definable.prototype.removeUnused = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n if (dom[that._markLabel] !== MARK_USED) {\r\n defs.removeChild(dom);\r\n }\r\n });\r\n };\r\n Definable.prototype.getSvgProxy = function (displayable) {\r\n if (displayable instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (displayable instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (displayable instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n };\r\n Definable.prototype.getSvgElement = function (displayable) {\r\n return displayable.__svgEl;\r\n };\r\n return Definable;\r\n }());\n\n function isLinearGradient(value) {\r\n return value.type === 'linear';\r\n }\r\n function isRadialGradient(value) {\r\n return value.type === 'radial';\r\n }\r\n var GradientManager = (function (_super) {\r\n __extends(GradientManager, _super);\r\n function GradientManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\r\n }\r\n GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var value = displayable.style[fillOrStroke];\r\n if (value\r\n && (value.type === 'linear'\r\n || value.type === 'radial')) {\r\n var gradient = value;\r\n var defs = that_1.getDefs(true);\r\n var dom = void 0;\r\n if (gradient.__dom) {\r\n dom = gradient.__dom;\r\n if (!defs.contains(gradient.__dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(gradient);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n GradientManager.prototype.add = function (gradient) {\r\n var dom;\r\n if (isLinearGradient(gradient)) {\r\n dom = this.createElement('linearGradient');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom = this.createElement('radialGradient');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return null;\r\n }\r\n gradient.id = gradient.id || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-gradient-' + gradient.id);\r\n this.updateDom(gradient, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n GradientManager.prototype.update = function (gradient) {\r\n var that = this;\r\n this.doUpdate(gradient, function () {\r\n var type = gradient.type;\r\n var tagName = gradient.__dom.tagName;\r\n if (type === 'linear' && tagName === 'linearGradient'\r\n || type === 'radial' && tagName === 'radialGradient') {\r\n that.updateDom(gradient, gradient.__dom);\r\n }\r\n else {\r\n that.removeDom(gradient);\r\n that.add(gradient);\r\n }\r\n });\r\n };\r\n GradientManager.prototype.updateDom = function (gradient, dom) {\r\n if (isLinearGradient(gradient)) {\r\n dom.setAttribute('x1', gradient.x + '');\r\n dom.setAttribute('y1', gradient.y + '');\r\n dom.setAttribute('x2', gradient.x2 + '');\r\n dom.setAttribute('y2', gradient.y2 + '');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom.setAttribute('cx', gradient.x + '');\r\n dom.setAttribute('cy', gradient.y + '');\r\n dom.setAttribute('r', gradient.r + '');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return;\r\n }\r\n if (gradient.global) {\r\n dom.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n }\r\n else {\r\n dom.setAttribute('gradientUnits', 'objectBoundingBox');\r\n }\r\n dom.innerHTML = '';\r\n var colors = gradient.colorStops;\r\n for (var i = 0, len = colors.length; i < len; ++i) {\r\n var stop_1 = this.createElement('stop');\r\n stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\r\n var color$1 = colors[i].color;\r\n if (color$1.indexOf('rgba') > -1) {\r\n var opacity = parse(color$1)[3];\r\n var hex = toHex(color$1);\r\n stop_1.setAttribute('stop-color', '#' + hex);\r\n stop_1.setAttribute('stop-opacity', opacity + '');\r\n }\r\n else {\r\n stop_1.setAttribute('stop-color', colors[i].color);\r\n }\r\n dom.appendChild(stop_1);\r\n }\r\n gradient.__dom = dom;\r\n };\r\n GradientManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n var gradient = displayable.style.fill;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n gradient = displayable.style.stroke;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n }\r\n };\r\n return GradientManager;\r\n }(Definable));\n\n var ClippathManager = (function (_super) {\r\n __extends(ClippathManager, _super);\r\n function ClippathManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\r\n }\r\n ClippathManager.prototype.update = function (displayable) {\r\n var svgEl = this.getSvgElement(displayable);\r\n if (svgEl) {\r\n this.updateDom(svgEl, displayable.__clipPaths, false);\r\n }\r\n this.markUsed(displayable);\r\n };\r\n ClippathManager.prototype.updateDom = function (parentEl, clipPaths, isText) {\r\n if (clipPaths && clipPaths.length > 0) {\r\n var defs = this.getDefs(true);\r\n var clipPath = clipPaths[0];\r\n var clipPathEl = void 0;\r\n var id = void 0;\r\n var domKey = isText ? '_textDom' : '_dom';\r\n if (clipPath[domKey]) {\r\n id = clipPath[domKey].getAttribute('id');\r\n clipPathEl = clipPath[domKey];\r\n if (!defs.contains(clipPathEl)) {\r\n defs.appendChild(clipPathEl);\r\n }\r\n }\r\n else {\r\n id = 'zr' + this._zrId + '-clip-' + this.nextId;\r\n ++this.nextId;\r\n clipPathEl = this.createElement('clipPath');\r\n clipPathEl.setAttribute('id', id);\r\n defs.appendChild(clipPathEl);\r\n clipPath[domKey] = clipPathEl;\r\n }\r\n var svgProxy = this.getSvgProxy(clipPath);\r\n if (clipPath.transform\r\n && clipPath.parent.invTransform\r\n && !isText) {\r\n var transform = Array.prototype.slice.call(clipPath.transform);\r\n mul$1(clipPath.transform, clipPath.parent.invTransform, clipPath.transform);\r\n svgProxy.brush(clipPath);\r\n clipPath.transform = transform;\r\n }\r\n else {\r\n svgProxy.brush(clipPath);\r\n }\r\n var pathEl = this.getSvgElement(clipPath);\r\n clipPathEl.innerHTML = '';\r\n clipPathEl.appendChild(pathEl.cloneNode());\r\n parentEl.setAttribute('clip-path', 'url(#' + id + ')');\r\n if (clipPaths.length > 1) {\r\n this.updateDom(clipPathEl, clipPaths.slice(1), isText);\r\n }\r\n }\r\n else {\r\n if (parentEl) {\r\n parentEl.setAttribute('clip-path', 'none');\r\n }\r\n }\r\n };\r\n ClippathManager.prototype.markUsed = function (displayable) {\r\n var _this = this;\r\n if (displayable.__clipPaths) {\r\n each(displayable.__clipPaths, function (clipPath) {\r\n if (clipPath._dom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._dom);\r\n }\r\n if (clipPath._textDom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._textDom);\r\n }\r\n });\r\n }\r\n };\r\n return ClippathManager;\r\n }(Definable));\n\n var ShadowManager = (function (_super) {\r\n __extends(ShadowManager, _super);\r\n function ShadowManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\r\n }\r\n ShadowManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && hasShadow(displayable.style)) {\r\n var dom = void 0;\r\n if (displayable._shadowDom) {\r\n dom = displayable._shadowDom;\r\n var defs = this.getDefs(true);\r\n if (!defs.contains(displayable._shadowDom)) {\r\n this.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = this.add(displayable);\r\n }\r\n this.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.style.filter = 'url(#' + id + ')';\r\n }\r\n };\r\n ShadowManager.prototype.add = function (displayable) {\r\n var dom = this.createElement('filter');\r\n displayable._shadowDomId = displayable._shadowDomId || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-shadow-' + displayable._shadowDomId);\r\n this.updateDom(displayable, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n ShadowManager.prototype.update = function (svgElement, displayable) {\r\n var style = displayable.style;\r\n if (hasShadow(style)) {\r\n var that_1 = this;\r\n _super.prototype.doUpdate.call(this, displayable, function () {\r\n that_1.updateDom(displayable, displayable._shadowDom);\r\n });\r\n }\r\n else {\r\n this.remove(svgElement, displayable);\r\n }\r\n };\r\n ShadowManager.prototype.remove = function (svgElement, displayable) {\r\n if (displayable._shadowDomId != null) {\r\n this.removeDom(svgElement);\r\n svgElement.style.filter = '';\r\n }\r\n };\r\n ShadowManager.prototype.updateDom = function (displayable, dom) {\r\n var domChildArr = dom.getElementsByTagName('feDropShadow');\r\n var domChild = domChildArr.length\r\n ? domChildArr[0]\r\n : this.createElement('feDropShadow');\r\n var style = displayable.style;\r\n var scaleX = displayable.scaleX || 1;\r\n var scaleY = displayable.scaleY || 1;\r\n var offsetX;\r\n var offsetY;\r\n var blur;\r\n var color;\r\n if (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY) {\r\n offsetX = style.shadowOffsetX || 0;\r\n offsetY = style.shadowOffsetY || 0;\r\n blur = style.shadowBlur;\r\n color = style.shadowColor;\r\n }\r\n else if (style.textShadowBlur) {\r\n offsetX = style.textShadowOffsetX || 0;\r\n offsetY = style.textShadowOffsetY || 0;\r\n blur = style.textShadowBlur;\r\n color = style.textShadowColor;\r\n }\r\n else {\r\n this.removeDom(dom);\r\n return;\r\n }\r\n domChild.setAttribute('dx', offsetX / scaleX + '');\r\n domChild.setAttribute('dy', offsetY / scaleY + '');\r\n domChild.setAttribute('flood-color', color);\r\n var stdDx = blur / 2 / scaleX;\r\n var stdDy = blur / 2 / scaleY;\r\n var stdDeviation = stdDx + ' ' + stdDy;\r\n domChild.setAttribute('stdDeviation', stdDeviation);\r\n dom.setAttribute('x', '-100%');\r\n dom.setAttribute('y', '-100%');\r\n dom.setAttribute('width', Math.ceil(blur / 2 * 200) + '%');\r\n dom.setAttribute('height', Math.ceil(blur / 2 * 200) + '%');\r\n dom.appendChild(domChild);\r\n displayable._shadowDom = dom;\r\n };\r\n ShadowManager.prototype.markUsed = function (displayable) {\r\n if (displayable._shadowDom) {\r\n _super.prototype.markDomUsed.call(this, displayable._shadowDom);\r\n }\r\n };\r\n return ShadowManager;\r\n }(Definable));\r\n function hasShadow(style) {\r\n return style\r\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\r\n }\n\n function parseInt10$1(val) {\r\n return parseInt(val, 10);\r\n }\r\n function getSvgProxy(el) {\r\n if (el instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (el instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (el instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n }\r\n function checkParentAvailable(parent, child) {\r\n return child && parent && child.parentNode !== parent;\r\n }\r\n function insertAfter(parent, child, prevSibling) {\r\n if (checkParentAvailable(parent, child) && prevSibling) {\r\n var nextSibling = prevSibling.nextSibling;\r\n nextSibling ? parent.insertBefore(child, nextSibling)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function prepend(parent, child) {\r\n if (checkParentAvailable(parent, child)) {\r\n var firstChild = parent.firstChild;\r\n firstChild ? parent.insertBefore(child, firstChild)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function remove(parent, child) {\r\n if (child && parent && child.parentNode === parent) {\r\n parent.removeChild(child);\r\n }\r\n }\r\n function getSvgElement(displayable) {\r\n return displayable.__svgEl;\r\n }\r\n var SVGPainter = (function () {\r\n function SVGPainter(root, storage, opts, zrId) {\r\n this.type = 'svg';\r\n this.refreshHover = createMethodNotSupport('refreshHover');\r\n this.pathToImage = createMethodNotSupport('pathToImage');\r\n this.configLayer = createMethodNotSupport('configLayer');\r\n this.root = root;\r\n this.storage = storage;\r\n this._opts = opts = extend({}, opts || {});\r\n var svgDom = createElement('svg');\r\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svgDom.setAttribute('version', '1.1');\r\n svgDom.setAttribute('baseProfile', 'full');\r\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\r\n var bgRoot = createElement('g');\r\n svgDom.appendChild(bgRoot);\r\n var svgRoot = createElement('g');\r\n svgDom.appendChild(svgRoot);\r\n this._gradientManager = new GradientManager(zrId, svgRoot);\r\n this._clipPathManager = new ClippathManager(zrId, svgRoot);\r\n this._shadowManager = new ShadowManager(zrId, svgRoot);\r\n var viewport = document.createElement('div');\r\n viewport.style.cssText = 'overflow:hidden;position:relative';\r\n this._svgDom = svgDom;\r\n this._svgRoot = svgRoot;\r\n this._backgroundRoot = bgRoot;\r\n this._viewport = viewport;\r\n root.appendChild(viewport);\r\n viewport.appendChild(svgDom);\r\n this.resize(opts.width, opts.height);\r\n this._visibleList = [];\r\n }\r\n SVGPainter.prototype.getType = function () {\r\n return 'svg';\r\n };\r\n SVGPainter.prototype.getViewportRoot = function () {\r\n return this._viewport;\r\n };\r\n SVGPainter.prototype.getSvgDom = function () {\r\n return this._svgDom;\r\n };\r\n SVGPainter.prototype.getSvgRoot = function () {\r\n return this._svgRoot;\r\n };\r\n SVGPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n SVGPainter.prototype.refresh = function () {\r\n var list = this.storage.getDisplayList(true);\r\n this._paintList(list);\r\n };\r\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this._backgroundRoot && this._backgroundNode) {\r\n this._backgroundRoot.removeChild(this._backgroundNode);\r\n }\r\n var bgNode = createElement('rect');\r\n bgNode.setAttribute('width', this.getWidth());\r\n bgNode.setAttribute('height', this.getHeight());\r\n bgNode.setAttribute('x', 0);\r\n bgNode.setAttribute('y', 0);\r\n bgNode.setAttribute('id', 0);\r\n bgNode.style.fill = backgroundColor;\r\n this._backgroundRoot.appendChild(bgNode);\r\n this._backgroundNode = bgNode;\r\n };\r\n SVGPainter.prototype._paintList = function (list) {\r\n this._gradientManager.markAllUnused();\r\n this._clipPathManager.markAllUnused();\r\n this._shadowManager.markAllUnused();\r\n var svgRoot = this._svgRoot;\r\n var visibleList = this._visibleList;\r\n var listLen = list.length;\r\n var newVisibleList = [];\r\n for (var i = 0; i < listLen; i++) {\r\n var displayable = list[i];\r\n var svgProxy = getSvgProxy(displayable);\r\n var svgElement = getSvgElement(displayable);\r\n if (!displayable.invisible) {\r\n if (displayable.__dirty || !svgElement) {\r\n svgProxy && svgProxy.brush(displayable);\r\n this._clipPathManager.update(displayable);\r\n if (displayable.style) {\r\n this._gradientManager\r\n .update(displayable.style.fill);\r\n this._gradientManager\r\n .update(displayable.style.stroke);\r\n this._shadowManager\r\n .update(svgElement, displayable);\r\n }\r\n displayable.__dirty = 0;\r\n }\r\n if (getSvgElement(displayable)) {\r\n newVisibleList.push(displayable);\r\n }\r\n }\r\n }\r\n var diff = arrayDiff(visibleList, newVisibleList);\r\n var prevSvgElement;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = visibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n remove(svgRoot, svgElement);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.added) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n prevSvgElement\r\n ? insertAfter(svgRoot, svgElement, prevSvgElement)\r\n : prepend(svgRoot, svgElement);\r\n prevSvgElement = svgElement || prevSvgElement;\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n }\r\n }\r\n else if (!item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n this._gradientManager.markUsed(displayable);\r\n this._gradientManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._shadowManager.markUsed(displayable);\r\n this._shadowManager\r\n .addWithoutUpdate(svgElement, displayable);\r\n this._clipPathManager.markUsed(displayable);\r\n prevSvgElement = svgElement\r\n || prevSvgElement;\r\n }\r\n }\r\n }\r\n this._gradientManager.removeUnused();\r\n this._clipPathManager.removeUnused();\r\n this._shadowManager.removeUnused();\r\n this._visibleList = newVisibleList;\r\n };\r\n SVGPainter.prototype._getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgDom;\r\n var defs = svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n SVGPainter.prototype.resize = function (width, height) {\r\n var viewport = this._viewport;\r\n viewport.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n viewport.style.display = '';\r\n if (this._width !== width || this._height !== height) {\r\n this._width = width;\r\n this._height = height;\r\n var viewportStyle = viewport.style;\r\n viewportStyle.width = width + 'px';\r\n viewportStyle.height = height + 'px';\r\n var svgRoot = this._svgDom;\r\n svgRoot.setAttribute('width', width + '');\r\n svgRoot.setAttribute('height', height + '');\r\n }\r\n if (this._backgroundNode) {\r\n this._backgroundNode.setAttribute('width', width);\r\n this._backgroundNode.setAttribute('height', height);\r\n }\r\n };\r\n SVGPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n SVGPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n SVGPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10$1(stl[wh]) || parseInt10$1(root.style[wh]))\r\n - (parseInt10$1(stl[plt]) || 0)\r\n - (parseInt10$1(stl[prb]) || 0)) | 0;\r\n };\r\n SVGPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this._svgRoot\r\n = this._backgroundRoot\r\n = this._svgDom\r\n = this._backgroundNode\r\n = this._viewport\r\n = this.storage\r\n = null;\r\n };\r\n SVGPainter.prototype.clear = function () {\r\n if (this._viewport) {\r\n this.root.removeChild(this._viewport);\r\n }\r\n };\r\n SVGPainter.prototype.toDataURL = function () {\r\n this.refresh();\r\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/>\\n\\r<'));\r\n return 'data:image/svg+xml;charset=UTF-8,' + html;\r\n };\r\n return SVGPainter;\r\n }());\r\n function createMethodNotSupport(method) {\r\n return function () {\r\n logError('In SVG mode painter not support method \"' + method + '\"');\r\n };\r\n }\n\n registerPainter('svg', SVGPainter);\n\n exports.Axis = Axis;\n exports.List = List;\n exports.Model = Model;\n exports.PRIORITY = PRIORITY;\n exports.color = color;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose$1;\n exports.env = env;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.format = format$1;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.graphic = graphic$1;\n exports.helper = helper;\n exports.init = init$1;\n exports.matrix = matrix;\n exports.number = number;\n exports.parseGeoJSON = parseGeoJson;\n exports.parseGeoJson = parseGeoJson$1;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.throttle = throttle;\n exports.time = time;\n exports.util = ecUtil;\n exports.vector = vector;\n exports.version = version$1;\n exports.zrender = zrender;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file diff --git a/dist/echarts.min.js b/dist/echarts.min.js index 6edea55c8af3f0bc8031251436bd1703590ccadc..692dc34c51461bd4e48c64c5ee8ce7ba0ba88b92 100644 --- a/dist/echarts.min.js +++ b/dist/echarts.min.js @@ -19,4 +19,4 @@ */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).echarts={})}(this,function(t){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function u(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var e=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.weChat=!1},v=new function(){this.browser=new e,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(v.wxa=!0,v.canvasSupported=!0,v.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(v.worker=!0,v.canvasSupported=!0):"undefined"==typeof navigator?(v.node=!0,v.canvasSupported=!0,v.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),o=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),r=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);o&&(n.ie=!0,n.version=o[1]);r&&(n.edge=!0,n.version=r[1]);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&11<=+n.version),e.domSupported="undefined"!=typeof document}(navigator.userAgent,v);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},h=Object.prototype.toString,n=Array.prototype,a=n.forEach,c=n.filter,o=n.slice,p=n.map,r=function(){}.constructor,d=r?r.prototype:null,f={};function g(t,e){f[t]=e}var y=2311;function m(){return y++}function x(){for(var t=[],e=0;e>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",o[u]+":0",i[1-l]+":auto",o[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,r),r,o);if(a)return a(t,n,i),!0}return!1}function Ut(t){return"CANVAS"===t.nodeName.toUpperCase()}var Zt="undefined"!=typeof window&&!!window.addEventListener,jt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,qt=[];function Kt(t,e,n,i){return n=n||{},i||!v.canvasSupported?$t(t,e,n):v.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):$t(t,e,n),n}function $t(t,e,n){if(v.domSupported&&t.getBoundingClientRect){var i=e.clientX,o=e.clientY;if(Ut(t)){var r=t.getBoundingClientRect();return n.zrX=i-r.left,void(n.zrY=o-r.top)}if(Xt(qt,t,i,o))return n.zrX=qt[0],void(n.zrY=qt[1])}n.zrX=n.zrY=0}function Jt(t){return t||window.event}function Qt(t,e,n){if(null!=(e=Jt(e)).zrX)return e;var i,o,r=e.type;r&&0<=r.indexOf("touch")?(i="touchend"!==r?e.targetTouches[0]:e.changedTouches[0])&&Kt(t,i,e,n):(Kt(t,e,e,n),o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;return null!=n&&null!=i?3*(0!==i?Math.abs(i):Math.abs(n))*(0i.getWidth()||n<0||n>i.getHeight()}W(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(a){ge.prototype[a]=function(t){var e,n,i=t.zrX,o=t.zrY,r=me(this,i,o);if("mouseup"===a&&r||(n=(e=this.findHover(i,o)).target),"mousedown"===a)this._downEl=n,this._downPoint=[t.zrX,t.zrY],this._upEl=n;else if("mouseup"===a)this._upEl=n;else if("click"===a){if(this._downEl!==this._upEl||!this._downPoint||4>>1])<0?l=r:s=1+r;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);r(t,e[n+h])<0?l=h:a=h+1}return l}function Me(f,g){var a,s,y=xe,l=0,m=(f.length,[]);function e(t){var e=a[t],n=s[t],i=a[t+1],o=s[t+1];s[t]=n+o,t===l-3&&(a[t+1]=a[t+2],s[t+1]=s[t+2]),l--;var r=Se(f[i],f,e,n,0,g);e+=r,0!=(n-=r)&&0!==(o=we(f[e+n-1],f,i,o,o-1,g))&&(n<=o?function(t,e,n,i){var o=0;for(o=0;os[t+1])break;e(t)}},forceMergeRuns:function(){for(;1>=1;return t+e}(o);do{(r=_e(t,n,i,e))=this._maxSize&&0>4|(3840&i)>>8,240&i|(240&i)>>4,15&i|(15&i)<<4,1),$e(t,e),e):void Ze(e,0,0,0,1):7===o.length?0<=(i=parseInt(o.substr(1),16))&&i<=16777215?(Ze(e,(16711680&i)>>16,(65280&i)>>8,255&i,1),$e(t,e),e):void Ze(e,0,0,0,1):void 0;var r=o.indexOf("("),a=o.indexOf(")");if(-1!==r&&a+1===o.length){var s=o.substr(0,r),l=o.substr(r+1,a-(r+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Ze(e,0,0,0,1);u=Ye(l.pop());case"rgb":return 3!==l.length?void Ze(e,0,0,0,1):(Ze(e,We(l[0]),We(l[1]),We(l[2]),u),$e(t,e),e);case"hsla":return 4!==l.length?void Ze(e,0,0,0,1):(l[3]=Ye(l[3]),Qe(l,e),$e(t,e),e);case"hsl":return 3!==l.length?void Ze(e,0,0,0,1):(Qe(l,e),$e(t,e),e);default:return}}Ze(e,0,0,0,1)}}function Qe(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Ye(t[1]),o=Ye(t[2]),r=o<=.5?o*(i+1):o+i-o*i,a=2*o-r;return Ze(e=e||[],Fe(255*Xe(a,r,n+1/3)),Fe(255*Xe(a,r,n)),Fe(255*Xe(a,r,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function tn(t,e){var n=Je(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,255=this.maxTime?this.maxTime=t:this._needsSort=!0;var n,i=this.keyframes,o=i.length;if(this.interpolable)if(k(e)){var r,a=k((n=e)&&n[0])?2:1;if(0e);u++);u=Math.min(u-1,r-2)}var h,c,p,d,f,g,y,m,v,x,_=o[u+1],b=o[u];b&&_&&(this._lastFrame=u,this._lastFramePercent=e,0!=(h=_.percent-b.percent)&&(c=(e-b.percent)/h,p=n?this._additiveValue:l?_n:t[a],(0=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height},Ii.prototype.clone=function(){return new Ii(this.x,this.y,this.width,this.height)},Ii.prototype.copy=function(t){Ii.copy(this,t)},Ii.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},Ii.create=function(t){return new Ii(t.x,t.y,t.width,t.height)},Ii.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},Ii.applyTransform=function(t,e,n){if(n){if(n[1]<1e-5&&-1e-5this._ux||tr(e-this._yi)>this._uy||this._len<5;return this.addData(Ho.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},or.prototype.bezierCurveTo=function(t,e,n,i,o,r){return this.addData(Ho.C,t,e,n,i,o,r),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,o,r):this._ctx.bezierCurveTo(t,e,n,i,o,r)),this._xi=o,this._yi=r,this},or.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(Ho.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},or.prototype.arc=function(t,e,n,i,o,r){var a=o-i;return o=i+a,this.addData(Ho.A,t,e,n,n,i,a,0,r?0:1),this._ctx&&this._ctx.arc(t,e,n,i,o,r),this._xi=$o(o)*n+t,this._yi=Jo(o)*n+e,this},or.prototype.arcTo=function(t,e,n,i,o){return this._ctx&&this._ctx.arcTo(t,e,n,i,o),this},or.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Ho.R,t,e,n,i),this},or.prototype.closePath=function(){this.addData(Ho.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},or.prototype.fill=function(t){t&&t.fill(),this.toStatic()},or.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},or.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;hn||tr(g)>i||c===e-1)&&(d=Math.sqrt(D*D+g*g),o=f,r=v);break;case Ho.C:var y=t[c++],m=t[c++],f=t[c++],v=t[c++],x=t[c++],_=t[c++],d=function(t,e,n,i,o,r,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=xo(t,n,o,a,f),y=xo(e,i,r,s,f),m=g-u,v=y-h;c+=Math.sqrt(m*m+v*v),u=g,h=y}return c}(o,r,y,m,f,v,x,_,10),o=x,r=_;break;case Ho.Q:d=function(t,e,n,i,o,r,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Mo(t,n,o,p),f=Mo(e,i,r,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}(o,r,y=t[c++],m=t[c++],f=t[c++],v=t[c++],10),o=f,r=v;break;case Ho.A:var b=t[c++],w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=T+I;c+=1,t[c++],1===c&&(a=$o(I)*S+b,s=Jo(I)*M+w),d=Ko(S,M)*qo(er,Math.abs(T)),o=$o(C)*S+b,r=Jo(C)*M+w;break;case Ho.R:a=o=t[c++],s=r=t[c++],d=2*t[c++]+2*t[c++];break;case Ho.Z:var D=a-o,g=s-r;d=Math.sqrt(D*D+g*g),o=a,r=s}0<=d&&(u+=l[h++]=d)}return this._pathLen=u},or.prototype.rebuildPath=function(t,e){var n,i,o,r,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var m=0;mc||tr(s-r)>p||m===d-1){if(f){if(u=fr[i=0]+t&&a<=fr[1]+t?c:0}(o=r?(u=i,i=lr(o),lr(u)):(i=lr(i),lr(o)))Math.PI/2&&f<1.5*Math.PI&&(c=-c),p+=c))}return p}(f,g,m,v,v+x,_,S,o);l=Math.cos(v+x)*y+f,u=Math.sin(v+x)*m+g;break;case cr.R:h=l=t[p++],c=u=t[p++];if(b=h+t[p++],w=c+t[p++],n){if(rr(h,c,b,c,e,i,o)||rr(b,c,b,w,e,i,o)||rr(b,w,h,w,e,i,o)||rr(h,w,h,c,e,i,o))return!0}else s+=hr(b,c,b,w,i,o),s+=hr(h,w,h,c,i,o);break;case cr.Z:if(n){if(rr(l,u,h,c,e,i,o))return!0}else s+=hr(l,u,h,c,i,o);l=h,u=c}}return n||(r=u,a=c,Math.abs(r-a)=e.maxIterations){t+=e.ellipsis;break}var a=0===r?function(t,e,n,i){for(var o=0,r=0,a=t.length;rr){0<_?(m.tokens=m.tokens.slice(0,_),n.lines=n.lines.slice(0,y+1)):n.lines=n.lines.slice(0,y);break t}var T,C,D,A=b.width,k=null==A||"auto"===A;"string"==typeof A&&"%"===A.charAt(A.length-1)?(L.percentWidth=A,h.push(L),L.contentWidth=Li(L.text,M)):(!k||(C=(T=b.backgroundColor)&&T.image)&&cs(C=function(t){if("string"!=typeof t)return t;var e=ls.get(t);return e&&e.image}(C))&&(L.width=Math.max(L.width,C.width*I/C.height)),null!=(D=f&&null!=o?o-x:null)&&Di.width&&(r=e.split("\n"),g=!0),i.accumWidth=u):(h=ws(e,f,i.width,i.breakAll,i.accumWidth),i.accumWidth=h.accumWidth+l,a=h.linesWidths,r=h.lines)):r=e.split("\n");for(var y=0;yi.len()&&(u=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/o*r+n[0]}function Zl(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?t.replace(/^\s+|\s+$/g,"").match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function jl(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function ql(t){return t.sort(function(t,e){return t-e}),t}function Kl(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function $l(t){var e=t.toString(),n=e.indexOf("e");if(0h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/o}var tu=9007199254740991;function eu(t){var e=2*Math.PI;return(t%e+e)%e}function nu(t){return-XlMath.abs(r[1])?0"'])/g,Xp={"&":"&","<":"<",">":">",'"':""","'":"'"};function Up(t){return null==t?"":(t+"").replace(Yp,function(t,e){return Xp[e]})}function Zp(t,e,n){return(n?t:''+Up(t)+"")+(e?'':"")+Up(e)+(e?"":"")}function jp(t,e){return"{"+t+(null==e?"":e)+"}"}var qp=["a","b","c","d","e","f","g"];function Kp(t,e,n){N(e)||(e=[e]);var i=e.length;if(!i)return"";if(e[0].axisType&&0<=e[0].axisType.indexOf("time"))return Wc(ou(e[0].data[e[0].axisIndex]),t);for(var o=e[0].$vars||[],r=0;r':'':{renderMode:o,content:"{marker"+r+"|} ",style:{color:i}}:""}function Qp(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=ou(e),o=n?"UTC":"",r=i["get"+o+"FullYear"](),a=i["get"+o+"Month"]()+1,s=i["get"+o+"Date"](),l=i["get"+o+"Hours"](),u=i["get"+o+"Minutes"](),h=i["get"+o+"Seconds"](),c=i["get"+o+"Milliseconds"]();return t=t.replace("MM",Vc(a,2)).replace("M",a).replace("yyyy",r).replace("yy",r%100+"").replace("dd",Vc(s,2)).replace("d",s).replace("hh",Vc(l,2)).replace("h",l).replace("mm",Vc(u,2)).replace("m",u).replace("ss",Vc(h,2)).replace("s",h).replace("SSS",Vc(c,3))}function td(t,e){var n;"_blank"===e||"blank"===e?((n=window.open()).opener=null,n.location.href=t):window.open(t,e)}var ed=Object.freeze({__proto__:null,addCommas:Fp,toCamelCase:Hp,normalizeCssArray:Wp,encodeHTML:Up,concatTooltipHtml:Zp,formatTpl:Kp,formatTplSimple:$p,getTooltipMarker:Jp,formatTime:Qp,capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},windowOpen:td,truncateText:ds,getTextRect:function(t,e,n,i,o,r,a,s){return Yh(),new Ts({style:{text:t,font:e,align:n,verticalAlign:i,padding:o,rich:r,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),nd=W,id=["left","right","top","bottom","width","height"],od=[["width","left","right"],["height","top","bottom"]];function rd(u,h,c,p,d){var f=0,g=0;null==p&&(p=1/0),null==d&&(d=1/0);var y=0;h.eachChild(function(t,e){var n,i,o,r,a=t.getBoundingRect(),s=h.childAt(e+1),l=s&&s.getBoundingRect();y="horizontal"===u?(n=a.width+(l?-l.x+a.x:0),p<(i=f+n)||t.newline?(f=0,i=n,g+=y+c,a.height):Math.max(y,a.height)):(o=a.height+(l?-l.y+a.y:0),d<(r=g+o)||t.newline?(f+=y+c,g=0,r=o,a.width):Math.max(y,a.width)),t.newline||(t.x=f,t.y=g,t.markRedraw(),"horizontal"===u?f=i+c:g=r+c)})}var ad=rd;R(rd,"vertical"),R(rd,"horizontal");function sd(t,e,n){n=Wp(n||0);var i=e.width,o=e.height,r=Zl(t.left,i),a=Zl(t.top,o),s=Zl(t.right,i),l=Zl(t.bottom,o),u=Zl(t.width,i),h=Zl(t.height,o),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-r),isNaN(h)&&(h=o-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(i/oe)return t[i];return t[n-1]}(s,n):a;if((l=l||a)&&l.length){var u=l[o];return t&&(r[t]=u),i.colorIdx=(o+1)%l.length,u}},Td);function Td(){}var Cd=ut(["tooltip","label","itemName","itemId","seriesName"]),Dd="original",Ad="arrayRows",kd="objectRows",Ld="keyedColumns",Pd="typedArray",Nd="unknown",Od="column",Rd="row",Ed=(zd.seriesDataToSource=function(t){return new zd({data:t,sourceFormat:X(t)?Pd:Dd})},zd);function zd(t){this.data=t.data||(t.sourceFormat===Ld?{}:[]),this.sourceFormat=t.sourceFormat||Nd,this.seriesLayoutBy=t.seriesLayoutBy||Od,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectCount=t.dimensionsDetectCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption}var Bd={Must:1,Might:2,Not:3},Vd=Tu();function Gd(t,e,n,i){var o=function(t,e,n,i,o){var r,a;if(!t)return{dimensionsDefine:Wd(o),startIndex:a,dimensionsDetectCount:r};{var s,l;e===Ad?(s=t,"auto"===i||null==i?Yd(function(t){null!=t&&"-"!==t&&(B(t)?null==a&&(a=1):a=0)},n,s,10):a=G(i)?i:i?1:0,o||1!==a||(o=[],Yd(function(t,e){o[e]=null!=t?t+"":""},n,s,1/0)),r=o?o.length:n===Rd?s.length:s[0]?s[0].length:null):e===kd?o=o||function(t){var e,n=0;for(;n'+r+Up(s.displayName||"-")+"":"")+''+Up("ordinal"===n?t+"":"time"===n?h?"":Qp("yyyy/MM/dd hh:mm:ss",t):Fp(t))+"")&&u.push('
'+a+"
"),d&&(f[i]=y,++g))}r.length?W(r,function(t){e(Qf(m,o,t),t)}):W(t,e);var n=l&&d?"\n":"",i=n+u.join(n||"");return{renderMode:c,content:i,style:f}}(a):n(i?Qf(m,o,r[0]):s?a[0]:a),v=d?u.content:1"+u.content+"":''+u.content+"",x=p.seriesIndex+"at"+g,_=Jp({color:y,type:"item",renderMode:c,markerId:x});f[x]=y,++g;var b=m.getName(o),w=this.name;return wu(this)||(w=""),w=w?Up(w)+(h?" ":e):"",y=B(_)?_:_.content,{html:d?h?""+y+w+": "+v:w+(w?"\n":"")+y+(b?Up(b)+": "+v:v):(w=w?h?''+w+"":'
'+w+"
":"",h?'
'+y+w+v+"
":w+'
'+y+(b?''+Up(b)+""+v:v)+"
"),markers:f}},Lg.prototype.isAnimationEnabled=function(){if(v.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},Lg.prototype.restoreData=function(){this.dataTask.dirty()},Lg.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return Id.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},Lg.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},Lg.prototype.getProgressive=function(){return this.get("progressive")},Lg.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},Lg.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},Lg.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),o=0;oe.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Eg(e,n){W(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,R(zg,n))})}function zg(t){var e=Bg(t);e&&e.setOutputEnd(this.count())}function Bg(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i,o=n.currentTask;return!o||(i=o.agentStubMap)&&(o=i.get(t.uid)),o}}M(kg,eg),M(kg,Id),Vu(kg,xd);var Vg=(Gg.prototype.init=function(t,e){},Gg.prototype.render=function(t,e,n,i){},Gg.prototype.dispose=function(t,e){},Gg.prototype.updateView=function(t,e,n,i){},Gg.prototype.updateLayout=function(t,e,n,i){},Gg.prototype.updateVisual=function(t,e,n,i){},Gg.prototype.blurSeries=function(t,e){},Gg);function Gg(){this.group=new Ur,this.uid=_c("viewComponent")}function Fg(){var s=Tu();return function(t){var e=s(t),n=t.pipelineContext,i=e.large,o=e.progressiveRender,r=e.large=n&&n.large,a=e.progressiveRender=n&&n.progressiveRender;return!!(i^r||o^a)&&"reset"}}Bu(Vg),Wu(Vg,{registerWhenExtend:!0});var Hg=Tu(),Wg=Fg(),Yg=(Xg.prototype.init=function(t,e){},Xg.prototype.render=function(t,e,n,i){},Xg.prototype.highlight=function(t,e,n,i){Zg(t.getData(),i,"emphasis")},Xg.prototype.downplay=function(t,e,n,i){Zg(t.getData(),i,"normal")},Xg.prototype.remove=function(t,e){this.group.removeAll()},Xg.prototype.dispose=function(t,e){},Xg.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},Xg.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},Xg.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},Xg.markUpdateMethod=function(t,e){Hg(t).updateMethod=e},Xg.protoInitialize=void(Xg.prototype.type="chart"),Xg);function Xg(){this.group=new Ur,this.uid=_c("viewChart"),this.renderTask=ig({plan:jg,reset:qg}),this.renderTask.context={view:this}}function Ug(t,e,n){t&&("emphasis"===e?Th:Ch)(t,n)}function Zg(e,t,n){var i,o,r=Iu(e,t),a=t&&null!=t.highlightKey?(i=t.highlightKey,null==(o=Ku[i])&&qu<=32&&(o=Ku[i]=qu++),o):null;null!=r?W(fu(r),function(t){Ug(e.getItemGraphicEl(t),n,a)}):e.eachItemGraphicEl(function(t){Ug(t,n,a)})}function jg(t){return Wg(t.model)}function qg(t){var e=t.model,n=t.ecModel,i=t.api,o=t.payload,r=e.pipelineContext.progressiveRender,a=t.view,s=o&&Hg(o).updateMethod,l=r?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,o),Kg[l]}Bu(Yg),Wu(Yg,{registerWhenExtend:!0});var Kg={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},$g="\0__throttleOriginMethod",Jg="\0__throttleRate",Qg="\0__throttleType";function ty(t,o,r){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}o=o||0;function e(){for(var t=[],e=0;ed?n+=y(m("data.partialData"),{displayCnt:d}):n+=m("data.allData");for(var a,s,l=[],u=0;un.blockIndex?n.step:null,r=i&&i.modDataCount;return{step:o,modBy:null!=r?Math.ceil(r/o):null,modDataCount:r}}},fy.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},fy.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),o=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,r=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:a,large:r}},fy.prototype.restorePipelines=function(t){var i=this,o=i._pipelineMap=ut();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;o.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},fy.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.ecInstance.getModel(),o=this.api;W(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});t.reset&&this._createSeriesStageTask(t,e,i,o),t.overallReset&&this._createOverallStageTask(t,e,i,o)},this)},fy.prototype.prepareView=function(t,e,n,i){var o=t.renderTask,r=o.context;r.model=e,r.ecModel=n,r.api=i,o.__block=!t.incrementalPrepareRender,this._pipe(e,o)},fy.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},fy.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},fy.prototype._performStageTasks=function(t,l,u,h){h=h||{};var c=!1,p=this;function d(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}W(t,function(i,t){var e,n,o,r,a,s;h.visualType&&h.visualType!==i.visualType||(n=(e=p._stageTaskMap.get(i.uid)).seriesTaskMap,(o=e.overallTask)?((a=o.agentStubMap).each(function(t){d(h,t)&&(t.dirty(),r=!0)}),r&&o.dirty(),p.updatePayload(o,u),s=p.getPerformArgs(o,h.block),a.each(function(t){t.perform(s)}),o.perform(s)&&(c=!0)):n&&n.each(function(t,e){d(h,t)&&t.dirty();var n=p.getPerformArgs(t,h.block);n.skip=!i.performRawSeries&&l.isSeriesFiltered(t.context.model),p.updatePayload(t,u),t.perform(n)&&(c=!0)}))}),this.unfinished=c||this.unfinished},fy.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},fy.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})},fy.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},fy.prototype._createSeriesStageTask=function(i,t,o,r){var a=this,s=t.seriesTaskMap||(t.seriesTaskMap=ut()),e=i.seriesType,n=i.getTargetSeries;function l(t){var e=t.uid,n=s.get(e)||s.set(e,ig({plan:xy,reset:_y,count:Sy}));n.context={model:t,ecModel:o,api:r,useClearVisual:i.isVisual&&!i.isLayout,plan:i.plan,reset:i.reset,scheduler:a},a._pipe(t,n)}i.createOnAllSeries?o.eachRawSeries(l):e?o.eachRawSeriesByType(e,l):n&&n(o,r).each(l);var u=a._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})},fy.prototype._createOverallStageTask=function(t,e,n,i){var o=this,r=e.overallTask=e.overallTask||ig({reset:gy});r.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:o};var a=r.agentStubMap=r.agentStubMap||ut(),s=t.seriesType,l=t.getTargetSeries,u=!0;function h(t){var e=t.uid,n=a.get(e);n||(n=a.set(e,ig({reset:yy,onDirty:vy})),r.dirty()),n.context={model:t,overallProgress:u},n.agent=r,n.__block=u,o._pipe(t,n)}s?n.eachRawSeriesByType(s,h):l?l(n,i).each(h):(u=!1,W(n.getSeries(),h));var c=o._pipelineMap;a.each(function(t,e){c.get(e)||(t.dispose(),r.dirty(),a.removeKey(e))})},fy.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);i.head||(i.head=e),i.tail&&i.tail.pipe(e),(i.tail=e).__idxInPipeline=i.count++,e.__pipeline=i},fy.wrapStageHandler=function(t,e){return E(t)&&(t={overallReset:t,seriesType:function(t){My=null;try{t(Iy,Ty)}catch(t){}return My}(t)}),t.uid=_c("stageHandler"),e&&(t.visualType=e),t},fy);function fy(t,e,n,i){this._stageTaskMap=ut(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function gy(t){t.overallReset(t.ecModel,t.api,t.payload)}function yy(t){return t.overallProgress&&my}function my(){this.agent.dirty(),this.getDownstream().dirty()}function vy(){this.agent&&this.agent.dirty()}function xy(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function _y(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=fu(t.reset(t.model,t.ecModel,t.api,t.payload));return 1o[0]){for(l=0;lt);l++);s=i[o[l]]}o.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.__painter=this}else x("Layer of zlevel "+t+" is not valid")},ov.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,o.connectedBackgroundColor&&f.painter.setBackgroundColor(o.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()}return o.connectedBackgroundColor&&f.add(new ha({shape:{x:0,y:0,width:t,height:e},style:{fill:o.connectedBackgroundColor}})),av(d,function(t){var e=new $r({style:{x:t.left*n-u,y:t.top*n-h,image:t.dom}});f.add(e)}),f.refreshImmediately(),i.toDataURL("image/"+(o&&o.type||"png"))}return this.getDataURL(o)}},Yv.prototype.convertToPixel=function(t,e){return Iv(this,"convertToPixel",t,e)},Yv.prototype.convertFromPixel=function(t,e){return Iv(this,"convertFromPixel",t,e)},Yv.prototype.containPixel=function(t,o){var r;if(!this._disposed)return W(Du(this._model,t),function(t,i){0<=i.indexOf("Models")&&W(t,function(t){var e,n=t.coordinateSystem;n&&n.containPoint?r=r||!!n.containPoint(o):"seriesModels"===i&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(r=r||e.containPoint(o,t))},this)},this),!!r;$v(this.id)},Yv.prototype.getVisual=function(t,e){var n=Du(this._model,t,{defaultMainType:"series"}),i=n.seriesModel,o=i.getData(),r=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?o.indexOfRawIndex(n.dataIndex):null;return null!=r?jy(o,r,e):qy(o,e)},Yv.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},Yv.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},Yv.prototype._initEvents=function(){var t,e,p=this;av(Kv,function(c){function t(t){var e,n,i,o,r,a,s=p.getModel(),l=t.target,u="globalout"===c,h=l&&ju(l);u?n={}:h&&null!=h.dataIndex?n=(e=h.dataModel||s.getSeriesByIndex(h.seriesIndex))&&e.getDataParams(h.dataIndex,h.dataType)||{}:l&&h.eventData&&(n=z({},h.eventData)),n&&(i=n.componentType,o=n.componentIndex,"markLine"!==i&&"markPoint"!==i&&"markArea"!==i||(i="series",o=n.seriesIndex),a=(r=i&&null!=o&&s.getComponent(i,o))&&p["series"===r.mainType?"_chartsMap":"_componentsMap"][r.__viewId],n.event=t,n.type=c,p._$eventProcessor.eventInfo={targetEl:l,packedEvent:n,model:r,view:a},p.trigger(c,n))}t.zrEventfulCallAtLast=!0,p._zr.on(c,t,p)}),av(Qv,function(t,e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),av(["selectchanged"],function(e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),t=this._messageCenter,e=this,t.on("selectchanged",function(t){t.isFromClick?(Am("map","selectchanged",e,t),Am("pie","selectchanged",e,t)):"select"===t.fromAction?(Am("map","selected",e,t),Am("pie","selected",e,t)):"unselect"===t.fromAction&&(Am("map","unselected",e,t),Am("pie","unselected",e,t))})},Yv.prototype.isDisposed=function(){return this._disposed},Yv.prototype.clear=function(){this._disposed?$v(this.id):this.setOption({series:[]},!0)},Yv.prototype.dispose=function(){var e,n;this._disposed?$v(this.id):(this._disposed=!0,Pu(this.getDom(),hx,""),e=this._api,n=this._model,av(this._componentsViews,function(t){t.dispose(n,e)}),av(this._chartsViews,function(t){t.dispose(n,e)}),this._zr.dispose(),delete ax[this.id])},Yv.prototype.resize=function(t){var e,n,i;this._disposed?$v(this.id):(this._zr.resize(t),e=this._model,this._loadingFX&&this._loadingFX.resize(),e&&(n=e.resetOption("media"),i=t&&t.silent,this[hv]=!0,n&&bv(this),Mv.update.call(this,{type:"resize",animation:{duration:0}}),this[hv]=!1,Dv.call(this,i),Av.call(this,i)))},Yv.prototype.showLoading=function(t,e){var n,i;this._disposed?$v(this.id):(lv(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),rx[t]&&(n=rx[t](this._api,e),i=this._zr,this._loadingFX=n,i.add(n)))},Yv.prototype.hideLoading=function(){this._disposed?$v(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},Yv.prototype.makeActionFromEvent=function(t){var e=z({},t);return e.type=Qv[t.type],e},Yv.prototype.dispatchAction=function(t,e){var n,i;this._disposed?$v(this.id):(lv(e)||(e={silent:!!e}),Jv[t.type]&&this._model&&(this[hv]?this._pendingActions.push(t):(n=e.silent,Cv.call(this,t,n),(i=e.flush)?this._zr.flush():!1!==i&&v.browser.weChat&&this._throttledZrFlush(),Dv.call(this,n),Av.call(this,n))))},Yv.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},Yv.prototype.appendData=function(t){var e;this._disposed?$v(this.id):(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},Yv.internalField=(bv=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),wv(t,!0),wv(t,!1),e.plan()},wv=function(t,r){for(var a=t._model,s=t._scheduler,l=r?t._componentsViews:t._chartsViews,u=r?t._componentsMap:t._chartsMap,h=t._zr,c=t._api,e=0;el.get("hoverLayerThreshold")&&!v.node&&l.eachSeries(function(t){var e;t.preventUsingHoverLayer||(e=n._chartsMap[t.__viewId]).__alive&&e.group.traverse(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),cy(i._zr.dom,t)},Ev=function(e,n){av(nx,function(t){t(e,n)})},Vv=function(t){t[pv]=!0,t.getZr().wakeUp()},Gv=function(t){t[pv]&&(t.getZr().storage.traverse(function(t){Cp(t)||Xv(t)}),t[pv]=!1)},zv=function(n){return u(t,e=sf),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){Th(t,e),Vv(n)},t.prototype.leaveEmphasis=function(t,e){Ch(t,e),Vv(n)},t.prototype.enterBlur=function(t){Dh(t),Vv(n)},t.prototype.leaveBlur=function(t){Ah(t),Vv(n)},t.prototype.enterSelect=function(t){kh(t),Vv(n)},t.prototype.leaveSelect=function(t){Lh(t),Vv(n)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(Bv=function(i){function o(t,e){for(var n=0;nx[1]&&(x[1]=v)}e&&(this._nameList[p]=e[d])}this._rawCount=this._count=l,this._extent={},Ox(this)},i_.prototype._initDataFromProvider=function(t,e){if(!(e<=t)){for(var n,i=this._chunkSize,o=this._rawData,r=this._storage,a=this.dimensions,s=a.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,p=this._nameRepeatCount={},d=this._chunkCount,f=0;fA[1]&&(A[1]=D)}o.pure||(v=u[m],y&&null==v&&(null!=y.name?u[m]=v=y.name:null==n||(_=r[x=a[n]][S])&&(v=_[M],(b=l[x].ordinalMeta)&&b.categories.length&&(v=b.categories[v]))),null==(w=null==y?null:y.id)&&null!=v&&(p[v]=p[v]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return r;o=r-1}}return-1},i_.prototype.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var o=1/0,r=-1,a=0,s=0,l=this.count();st[I][1])&&(M=!1)}M&&(r[a++]=this.getRawIndex(y))}return aS[1]&&(S[1]=w)}}}return a},i_.prototype.downSample=function(t,e,n,i){for(var o=Hx(this,[t]),r=o._storage,a=[],s=Math.floor(1/e),l=r[t],u=this.count(),h=this._chunkSize,c=o._rawExtent[t],p=new(Ex(this))(u),d=0,f=0;fc[1]&&(c[1]=x),p[d++]=_}return o._count=d,o._indices=p,o.getRawIndex=Vx,o},i_.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new mc(n,e,e&&e.ecModel)},i_.prototype.diff=function(e){var n=this;return new Dx(e?e.getIndices():[],this.getIndices(),function(t){return Gx(e,t)},function(t){return Gx(n,t)})},i_.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},i_.prototype.setVisual=function(t,e){this._visual=this._visual||{},jx(t)?z(this._visual,t):this._visual[t]=e},i_.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},i_.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t],o=(i=i||(n[t]={}))[e];return o||(N(o=this.getVisual(e))?o=o.slice():jx(o)&&(o=z({},o)),i[e]=o),o},i_.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,jx(e)?z(i,e):i[e]=n},i_.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},i_.prototype.setLayout=function(t,e){if(jx(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},i_.prototype.getLayout=function(t){return this._layout[t]},i_.prototype.getItemLayout=function(t){return this._itemLayouts[t]},i_.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?z(this._itemLayouts[t]||{},e):e},i_.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},i_.prototype.setItemGraphicEl=function(t,e){var n,i=this.hostModel;e&&((n=ju(e)).dataIndex=t,n.dataType=this.dataType,n.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(Xx,e)),this._graphicEls[t]=e},i_.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},i_.prototype.eachItemGraphicEl=function(n,i){W(this._graphicEls,function(t,e){t&&n&&n.call(i,t,e)})},i_.prototype.cloneShallow=function(t){if((t=t||new i_(Y(this.dimensions,this.getDimensionInfo,this),this.hostModel))._storage=this._storage,Ux(t,this),this._indices){var e=this._indices.constructor;if(e===Array){var n=this._indices.length;t._indices=new e(n);for(var i=0;ie[1]&&(e[1]=t[1])},y_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},y_.prototype.getExtent=function(){return this._extent.slice()},y_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},y_.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},y_.prototype.isBlank=function(){return this._isBlank},y_.prototype.setBlank=function(t){this._isBlank=t},y_);function y_(t){this._setting=t||{},this._extent=[1/0,-1/0]}Wu(g_,{registerWhenExtend:!0});var m_=(v_.createByAxisModel=function(t){var e=t.option,n=e.data,i=n&&Y(n,x_);return new v_({categories:i,needCollect:!i,deduplication:!1!==e.dedplication})},v_.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},v_.prototype.parseAndCollect=function(t){var e=this._needCollect;if("string"!=typeof t&&!e)return t;if(e&&!this._deduplication)return n=this.categories.length,this.categories[n]=t,n;var n,i=this._getOrCreateMap();return null==(n=i.get(t))&&(e?(n=this.categories.length,this.categories[n]=t,i.set(t,n)):n=NaN),n},v_.prototype._getOrCreateMap=function(){return this._map||(this._map=ut(this.categories))},v_);function v_(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}function x_(t){return F(t)&&null!=t.value?t.value:t+""}var __=jl;function b_(t,e,n,i){var o={},r=t[1]-t[0],a=o.interval=su(r/e,!0);null!=n&&as[1]&&(s[0]=s[1]),o}function w_(t){return $l(t)+2}function S_(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function M_(t,e){return t>=e[0]&&t<=e[1]}function I_(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function T_(t,e){return t*(e[1]-e[0])+e[0]}var C_,D_=(u(A_,C_=g_),A_.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},A_.prototype.contain=function(t){return M_(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},A_.prototype.normalize=function(t){return I_(t=this.getCategoryIndex(this.parse(t)),this._extent)},A_.prototype.scale=function(t){return t=this.getCategoryIndex(t),Math.round(T_(t,this._extent))},A_.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:this.getCategoryIndex(n)}),n++;return t},A_.prototype.getMinorTicks=function(t){},A_.prototype.setCategorySortInfo=function(t){this._categorySortInfo=t},A_.prototype.getCategorySortInfo=function(){return this._categorySortInfo},A_.prototype.getCategoryIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].beforeSortIndex:t},A_.prototype.getRawIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].ordinalNumber:t},A_.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawIndex(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},A_.prototype.count=function(){return this._extent[1]-this._extent[0]+1},A_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},A_.prototype.isInExtentRange=function(t){return t=this.getCategoryIndex(t),this._extent[0]<=t&&this._extent[1]>=t},A_.prototype.getOrdinalMeta=function(){return this._ordinalMeta},A_.prototype.niceTicks=function(){},A_.prototype.niceExtent=function(){},A_.type="ordinal",A_);function A_(t){var e=C_.call(this,t)||this;e.type="ordinal";var n=e.getSetting("ordinalMeta");return n&&!N(n)||(n=new m_({categories:n})),e._ordinalMeta=n,e._categorySortInfo=[],e._extent=e.getSetting("extent")||[0,n.categories.length-1],e}g_.registerClass(D_);var k_,L_=jl,P_=(u(N_,k_=g_),N_.prototype.parse=function(t){return t},N_.prototype.contain=function(t){return M_(t,this._extent)},N_.prototype.normalize=function(t){return I_(t,this._extent)},N_.prototype.scale=function(t){return T_(t,this._extent)},N_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},N_.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},N_.prototype.getInterval=function(){return this._interval},N_.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=w_(t)},N_.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,o=this._intervalPrecision,r=[];if(!e)return r;n[0]s&&(t?r.push({value:L_(s+e,o)}):r.push({value:n[1]})),r},N_.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),o=1;oi[0]&&h=y[0]&&d<=y[1]&&a++)}var m=(y[1]-y[0])/f;if(1.5*m=y[0]&&t.value<=y[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n);var r=K_.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[o][1]n[1]&&(n[1]=e[1])})}var Cb=(Db.prototype.getNeedCrossZero=function(){return!this.option.scale},Db.prototype.getCoordSysModel=function(){},Db);function Db(){}var Ab=Sr.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,o=e.width/2,r=e.height/2;t.moveTo(n,i-r),t.lineTo(n+o,i+r),t.lineTo(n-o,i+r),t.closePath()}}),kb=Sr.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,o=e.width/2,r=e.height/2;t.moveTo(n,i-r),t.lineTo(n+o,i),t.lineTo(n,i+r),t.lineTo(n-o,i),t.closePath()}}),Lb=Sr.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,o=e.width/5*3,r=Math.max(o,e.height),a=o/2,s=a*a/(r-a),l=i-r+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),Pb=Sr.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,o=e.x,r=e.y,a=i/3*2;t.moveTo(o,r),t.lineTo(o+a,r+n),t.lineTo(o,r+n/4*3),t.lineTo(o-a,r+n),t.lineTo(o,r),t.closePath()}}),Nb={line:function(t,e,n,i,o){o.x=t,o.y=e+i/2-1,o.width=n,o.height=2},rect:function(t,e,n,i,o){o.x=t,o.y=e,o.width=n,o.height=i},roundRect:function(t,e,n,i,o){o.x=t,o.y=e,o.width=n,o.height=i,o.r=Math.min(n,i)/4},square:function(t,e,n,i,o){var r=Math.min(n,i);o.x=t,o.y=e,o.width=r,o.height=r},circle:function(t,e,n,i,o){o.cx=t+n/2,o.cy=e+i/2,o.r=Math.min(n,i)/2},diamond:function(t,e,n,i,o){o.cx=t+n/2,o.cy=e+i/2,o.width=n,o.height=i},pin:function(t,e,n,i,o){o.x=t+n/2,o.y=e+i/2,o.width=n,o.height=i},arrow:function(t,e,n,i,o){o.x=t+n/2,o.y=e+i/2,o.width=n,o.height=i},triangle:function(t,e,n,i,o){o.cx=t+n/2,o.cy=e+i/2,o.width=n,o.height=i}},Ob={};W({line:ha,rect:ha,roundRect:ha,square:ha,circle:ea,diamond:kb,pin:Lb,arrow:Pb,triangle:Ab},function(t,e){Ob[e]=new t});var Rb=Sr.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Bi(t,e,n),o=this.shape;return o&&"pin"===o.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i,o=e.symbolType;"none"!==o&&(i=(i=Ob[o])||Ob[o="rect"],Nb[o](e.x,e.y,e.width,e.height,i.shape),i.buildPath(t,i.shape,n))}});function Eb(t,e){var n;"image"!==this.type&&(n=this.style,this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw())}function zb(t,e,n,i,o,r,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?yp(t.slice(8),new Mi(e,n,i,o),a?"center":"cover"):0===t.indexOf("path://")?gp(t.slice(7),{},new Mi(e,n,i,o),a?"center":"cover"):new Rb({shape:{symbolType:t,x:e,y:n,width:i,height:o}})).__isEmptyBrush=l,s.setColor=Eb,r&&s.setColor(r),s}var Bb={isDimensionStacked:p_,enableDataStack:c_,getStackedDimension:d_};var Vb=Object.freeze({__proto__:null,createList:function(t){return f_(t.getSource(),t)},getLayoutRect:sd,dataStack:Bb,createScale:function(t,e){var n=e;e instanceof mc||(n=new mc(e));var i=xb(n);return i.setExtent(t[0],t[1]),vb(i,n),i},mixinAxisModelCommonMethods:function(t){M(t,Cb)},createDimensions:s_,createSymbol:zb}),Gb=1e-8;function Fb(t,e){return Math.abs(t-e)>1^-(1&s),l=(l=t.charCodeAt(a+1)-64)>>1^-(1&l),o=s+=o,r=l+=r;i.push([s/n,l/n])}return i}function Ub(t,a){return Y(T((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,o=0;oa[1],p(e[0].coord,a[0])&&(i?e[0].coord=a[0]:e.shift()),i&&p(a[0],e[0].coord)&&e.unshift({coord:a[0]}),p(a[1],o.coord)&&(i?o.coord=a[1]:e.pop()),i&&p(o.coord,a[1])&&e.push({coord:a[1]}))}(this,n,e.get("alignWithLabel"),t.clamp),n},ow.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return 0":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"}),hw=ut({lt:function(t,e){return ti[0]&&(i[0]=r[0]),r[1]>i[1]&&(i[1]=r[1])}return{min:e?n:i,max:e?i:n}}var nS,iS=function(){this.smooth=0,this.smoothConstraint=!0,this.connectNulls=!1},oS=(u(rS,nS=Sr),rS.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},rS.prototype.getDefaultShape=function(){return new iS},rS.prototype.buildPath=function(t,e){var n=e.points,i=0,o=n.length,r=eS(n,e.smoothConstraint);if(e.connectNulls){for(;0i)return!1;return!0}(r,e))){var a=e.mapDimension(r.dim),s={};return W(r.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function _S(t,e,n){if("cartesian2d"!==t.type)return dS(t,e,n);var i,o,r=t.getBaseAxis().isHorizontal(),a=pS(t,e,n);return n.get("clip",!0)||(i=a.shape,o=Math.max(i.width,i.height),r?(i.y-=o,i.height+=2*o):(i.x-=o,i.width+=2*o)),a}var bS,wS=(u(SS,bS=Yg),SS.prototype.init=function(){var t=new Ur,e=new Fw;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},SS.prototype.render=function(t,e,n){var i=this,o=t.coordinateSystem,r=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.mapArray(a.getItemLayout),h="polar"===o.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),m=!l.isEmpty(),v=l.get("origin"),x=function(t,e,n){if(!n.valueDim)return[];for(var i=[],o=0,r=e.count();oh[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";W(h,function(t){t.offset=(t.coord-d)/g}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Oa(0,0,0,0,h,!0);return y[r]=d,y[r+"2"]=f,y}}}(a,o)||a.getVisual("style")[a.getVisual("drawType")],T=t.get(["emphasis","focus"]),C=t.get(["emphasis","blurScope"]);d.useStyle(O(s.getLineStyle(),{fill:"none",stroke:I,lineJoin:"bevel"})),Vh(d,t,"lineStyle"),"bolder"===t.get(["emphasis","lineStyle","width"])&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1),ju(d).seriesIndex=t.seriesIndex,Rh(d,T,C);var D,A,k=mS(t.get("smooth"));function L(t){i._changePolyState(t)}d.setShape({smooth:k,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f&&(D=a.getCalculationInfo("stackedOnSeries"),A=0,f.useStyle(O(l.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel"})),D&&(A=mS(D.get("smooth"))),f.setShape({smooth:k,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),Vh(f,t,"areaStyle"),ju(f).seriesIndex=t.seriesIndex,Rh(f,T,C)),a.eachItemGraphicEl(function(t){t&&(t.onHoverStateChange=L)}),this._data=a,this._coordSys=o,this._stackedOnPoints=x,this._points=u,this._step=M,this._valueOrigin=v},SS.prototype.dispose=function(){},SS.prototype.highlight=function(t,e,n,i){var o=t.getData(),r=Iu(o,i);if(this._changePolyState("emphasis"),!(r instanceof Array)&&null!=r&&0<=r){var a=o.getItemGraphicEl(r);if(!a){var s=o.getItemLayout(r);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(a=new Rw(o,r)).setPosition(s),a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,o.setItemGraphicEl(r,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else Yg.prototype.highlight.call(this,t,e,n,i)},SS.prototype.downplay=function(t,e,n,i){var o,r=t.getData(),a=Iu(r,i);this._changePolyState("normal"),null!=a&&0<=a?(o=r.getItemGraphicEl(a))&&(o.__temp?(r.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay()):Yg.prototype.downplay.call(this,t,e,n,i)},SS.prototype._changePolyState=function(t){var e=this._polygon;wh(this._polyline,t),e&&wh(e,t)},SS.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new oS({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e},SS.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new hS({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n},SS.prototype._updateAnimation=function(t,e,n,i,o,r){var a=this._polyline,s=this._polygon,l=t.hostModel,u=Xw(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,r),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(o&&(h=vS(u.current,n,o),c=vS(u.stackedOnCurrent,n,o),p=vS(u.next,n,o),d=vS(u.stackedOnNext,n,o)),3e3e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;nl[1]?-1:1,h=["start"===o?l[0]-u*s:"end"===o?l[1]+u*s:(l[0]+l[1])/2,YS(o)?t.labelOffset+r*s:0],null!=(p=e.get("nameRotate"))&&(p=p*BS/180),YS(o)?c=VS.innerTextLayout(t.rotation,null!=p?p:t.rotation,r):(c=function(t,e,n,i){var o,r,a=eu(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;o=nu(a-BS/2)?(r=l?"bottom":"top","center"):nu(a-1.5*BS)?(r=l?"top":"bottom","center"):(r="middle",a<1.5*BS&&BS/2h[1]&&h.reverse(),(null==l||l>h[1])&&(l=h[1]),lt[1]&&(t[1]=e)}Vg.registerClass(fM),Vg.registerClass(mM),yx(uv.PROCESSOR.FILTER+10,{getTargetSeries:function(t){var e=ut();return t.eachSeries(function(t){nM(t)&&e.set(t.uid,t)}),e},overallReset:function(t,e){var u,h,T,n=[],i=ut();u=i,h=n,t.eachSeries(function(t){var e,n,i,o,r,a,s,l;nM(t)&&(n=(e=iM(t)).xAxisModel,i=e.yAxisModel,o=n.axis,r=i.axis,a=o.scale.rawExtentInfo,s=r.scale.rawExtentInfo,l=t.getData(),a&&a.frozen||s&&s.frozen||(h.push({seriesModel:t,xAxisModel:n,yAxisModel:i}),Tb(xM(u,n).condExtent,l,o.dim),Tb(xM(u,i).condExtent,l,r.dim)))}),T=i,W(n,function(t){var e=t.xAxisModel,n=t.yAxisModel,i=e.axis,o=n.axis,r=xM(T,e),a=xM(T,n);r.rawExtentInfo=gb(i.scale,e,r.condExtent),a.rawExtentInfo=gb(o.scale,n,a.condExtent),r.rawExtentResult=r.rawExtentInfo.calculate(),a.rawExtentResult=a.rawExtentInfo.calculate();var s,l,u=t.seriesModel.getData(),h={},c={};function p(e,t){var n=t.condExtent,i=t.rawExtentResult;"category"===e.type&&(n[0]e.min&&n.modifyDataMinMax("min",i[0]),!e.maxFixed&&i[1]e[1]&&e.reverse(),e},EM.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},EM.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setCategorySortInfo(t)},EM);function EM(t,e,n,i,o){var r=OM.call(this,t,e,n)||this;return r.index=0,r.type=i||"value",r.position=o||"bottom",r}var zM=(BM.prototype.getRect=function(){return this._rect},BM.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),W(n.x,function(t){vb(t.scale,t.model)}),W(n.y,function(t){vb(t.scale,t.model)});var i={};W(n.x,function(t){GM(n,"y",t,i)}),W(n.y,function(t){GM(n,"x",t,i)}),this.resize(this.model,e)},BM.prototype.resize=function(t,e,n){var l=sd(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=l;var i=this._axesList;function o(){W(i,function(t){var e,n,i,o,r=t.isHorizontal(),a=r?[0,l.width]:[0,l.height],s=t.inverse?1:0;t.setExtent(a[s],a[1-s]),e=t,n=r?l.x:l.y,i=e.getExtent(),o=i[0]+i[1],e.toGlobalCoord="x"===e.dim?function(t){return t+n}:function(t){return o-t+n},e.toLocalCoord="x"===e.dim?function(t){return t-n}:function(t){return o-t+n}})}o(),!n&&t.get("containLabel")&&(W(i,function(t){var e,n,i;t.model.get(["axisLabel","inside"])||(e=wb(t))&&(n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]),l[n]-=e[n]+i,"top"===t.position?l.y+=e.height+i:"left"===t.position&&(l.x+=e.width+i))}),o())},BM.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},BM.prototype.getAxes=function(){return this._axesList.slice()},BM.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}F(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,o=this._coordsList;ic?l:s,(i=Math.abs(e.label.y-c))>n.maxY&&(a=(o=e.label.x-h-e.len2*d)<(r=p+e.len)?Math.sqrt(i*i/(1-o*o/r/r)):r,n.rB=a,n.maxY=i),n.list.push(e))}f(s),f(l)}(t)}function f(t){for(var e=t.rB,n=e*e,i=0;i=n.r0}},RI.type="pie",RI);function RI(){var t=null!==NI&&NI.apply(this,arguments)||this;return t.ignoreLabelLineUpdate=!0,t}Yg.registerClass(OI);var EI=2*Math.PI,zI=Math.PI/180;function BI(t){return{seriesType:t,reset:function(t,e){var i,o=e.findComponents({mainType:"legend"});o&&o.length&&(i=t.getData()).filterSelf(function(t){for(var e=i.getName(t),n=0;nn[0]&&isFinite(u)&&isFinite(n[0]););else{var h=o.getTicks().length-1;c'+Up(""===s?this.name:s)+""+Y(a,function(t){var e=r.get(r.mapDimension(t.dim),n);return'
'+Zp(t.name,e)+"
"}).join("")},dT.prototype.getTooltipPosition=function(t){if(null!=t)for(var e=this.getData(),n=this.coordinateSystem,i=e.getValues(Y(n.dimensions,function(t){return e.mapDimension(t)}),t),o=0,r=i.length;o'+l.join(", ")+""+Zp(a,r)},ET.prototype.setZoom=function(t){this.option.zoom=t},ET.prototype.setCenter=function(t){this.option.center=t},ET.type="series.map",ET.dependencies=["geo"],ET.layoutMode="box",ET.defaultOption={zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},ET);function ET(){var t=null!==OT&&OT.apply(this,arguments)||this;return t.type=ET.type,t.needsDrawMap=!1,t.seriesGroup=[],t.getTooltipPosition=function(t){if(null!=t){var e=this.getData().getName(t),n=this.coordinateSystem,i=n.getRegion(e);return i&&n.dataToPoint(i.center)}},t}kg.registerClass(RT);var zT="\0_ec_interaction_mutex";function BT(t,e){return VT(t)[e]}function VT(t){return t[zT]||(t[zT]={})}mx({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){});var GT,FT=(u(HT,GT=Bt),HT.prototype.isDragging=function(){return this._dragging},HT.prototype.isPinching=function(){return this._pinching},HT.prototype.setPointerChecker=function(t){this.pointerChecker=t},HT.prototype.dispose=function(){this.disable()},HT.prototype._mousedownHandler=function(t){var e,n;ne(t)||t.target&&t.target.draggable||(e=t.offsetX,n=t.offsetY,this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0))},HT.prototype._mousemoveHandler=function(t){var e,n,i,o,r,a;this._dragging&&XT("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!BT(this._zr,"globalPan")&&(e=t.offsetX,n=t.offsetY,r=e-(i=this._x),a=n-(o=this._y),this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&ee(t.event),YT(this,"pan","moveOnMouseMove",t,{dx:r,dy:a,oldX:i,oldY:o,newX:e,newY:n,isAvailableBehavior:null}))},HT.prototype._mouseupHandler=function(t){ne(t)||(this._dragging=!1)},HT.prototype._mousewheelHandler=function(t){var e,n,i=XT("zoomOnMouseWheel",t,this._opt),o=XT("moveOnMouseWheel",t,this._opt),r=t.wheelDelta,a=Math.abs(r),s=t.offsetX,l=t.offsetY;0!==r&&(i||o)&&(i&&(e=3e&&(e=i.height)}this.height=e+1},IC.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;er&&(r=t.depth)});var a=t.expandAndCollapse&&0<=t.initialTreeDepth?t.initialTreeDepth:r;return o.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a}),o.data},LC.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},LC.prototype.setZoom=function(t){this.option.zoom=t},LC.prototype.setCenter=function(t){this.option.center=t},LC.prototype.formatTooltip=function(t,e,n,i){for(var o=this.getData().tree,r=o.root.children[0],a=o.getNodeByDataIndex(t),s=a.getValue(),l=a.name;a&&a!==r;)l=a.parentNode.name+"."+l,a=a.parentNode;return"richText"===i?Up(l)+": "+(isNaN(s)||null==s?"":s):'
'+Zp(l,isNaN(s)||null==s?"":s)+"
"},LC.type="series.tree",LC.layoutMode="box",LC.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},LC);function LC(){var t=null!==AC&&AC.apply(this,arguments)||this;return t.hasSymbolVisual=!0,t.ignoreStyleOnData=!0,t}function PC(t,e){var n,i=t.isExpand?t.children:[],o=t.parentNode.children,r=t.hierNode.i?o[t.hierNode.i-1]:null;i.length?(function(t){var e=t.children,n=e.length,i=0,o=0;for(;0<=--n;){var r=e[n];r.hierNode.prelim+=i,r.hierNode.modifier+=i,o+=r.hierNode.change,i+=r.hierNode.shift+o}}(t),n=(i[0].hierNode.prelim+i[i.length-1].hierNode.prelim)/2,r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-n):t.hierNode.prelim=n):r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r)),t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var o=t,r=t,a=r.parentNode.children[0],s=e,l=o.hierNode.modifier,u=r.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=EC(s),r=zC(r),s&&r;){o=EC(o),a=zC(a),o.hierNode.ancestor=t;var p=s.hierNode.prelim+c-r.hierNode.prelim-u+i(s,r);0m.x)||(w-=Math.PI)),S=x?"left":"right",T=(I=(M=s.getModel("label")).get("rotate"))*(Math.PI/180),(C=D.getTextContent())&&(D.setTextConfig({position:M.get("position")||S,rotation:null==I?-w:T,origin:"center"}),C.setStyle("verticalAlign","middle")));var A=s.get(["emphasis","focus"]),k="ancestor"===A?a.getAncestorsIndices():"descendant"===A?a.getDescendantIndices():null;k&&(ju(i).focus=k),function(t,e,n,i,o,r,a,s){var l=e.getModel(),u=t.get("edgeShape"),h=t.get("layout"),c=t.getOrient(),p=t.get(["lineStyle","curveness"]),d=t.get("edgeForkPosition"),f=l.getModel("lineStyle").getLineStyle(),g=i.__edge;if("curve"===u)e.parentNode&&e.parentNode!==n&&wp(g=g||(i.__edge=new Ws({shape:qC(h,c,p,o,o)})),{shape:qC(h,c,p,r,a)},t);else if("polyline"===u)if("orthogonal"===h){if(e!==n&&e.children&&0!==e.children.length&&!0===e.isExpand){for(var y=e.children,m=[],v=0;vh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}),p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,m=y=g=f=0,"radial"===i?(f=o/(h.getLayout().x+p+d),g=r/(c.depth-1||1),KC(l,function(t){y=(t.getLayout().x+d)*f,m=(t.depth-1)*g;var e=RC(y,m);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:m},!0)})):"RL"===(v=t.getOrient())||"LR"===v?(g=r/(h.getLayout().x+p+d),f=o/(c.depth-1||1),KC(l,function(t){m=(t.getLayout().x+d)*g,y="LR"===v?(t.depth-1)*f:o-(t.depth-1)*f,t.setLayout({x:y,y:m},!0)})):"TB"!==v&&"BT"!==v||(f=o/(h.getLayout().x+p+d),g=r/(c.depth-1||1),KC(l,function(t){y=(t.getLayout().x+d)*f,m="TB"===v?(t.depth-1)*g:r-(t.depth-1)*g,t.setLayout({x:y,y:m},!0)})))}}(t,e)})}),_x(function(t){t.eachSeriesByType("tree",function(t){var n=t.getData();n.tree.eachNode(function(t){var e=t.getModel().getModel("itemStyle").getItemStyle();z(n.ensureUniqueItemVisual(t.dataIndex,"style"),e)})})});var eD,nD=(u(iD,eD=kg),iD.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};!function n(t){var i=0;W(t.children,function(t){n(t);var e=t.value;N(e)&&(e=e[0]),i+=e});var e=t.value;N(e)&&(e=e[0]),null!=e&&!isNaN(e)||(e=i),e<0&&(e=0),N(t.value)?t.value[0]=e:t.value=e}(n);var i=t.levels||[],o=Y((i=t.levels=function(t,e){var i,n=fu(e.get("color"));if(n)return W(t=t||[],function(t){var e=new mc(t),n=e.get("color");(e.get(["itemStyle","color"])||n&&"none"!==n)&&(i=!0)}),i||((t[0]||(t[0]={})).color=n.slice()),t}(i,e))||[],function(t){return new mc(t,this,e)},this),r=TC.createTree(n,this,null,function(t){t.wrapMethod("getItemModel",function(t,e){var n=r.getNodeByDataIndex(e),i=o[n.depth];return i&&(t.parentModel=i),t})});return r.data},iD.prototype.optionUpdated=function(){this.resetViewRoot()},iD.prototype.formatTooltip=function(t,e,n,i){var o=this.getData(),r=this.getRawValue(t),a=N(r)?Fp(r[0]):Fp(r),s=o.getName(t);return"richText"===i?Up(s)+": "+a:'
'+Zp(s,a)+"
"},iD.prototype.getDataParams=function(t){var e=eD.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=tD(n,this),e},iD.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},z(this.layoutInfo,t)},iD.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=ut(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},iD.prototype.getViewRoot=function(){return this._viewRoot},iD.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},iD.type="series.treemap",iD.layoutMode="box",iD.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},iD);function iD(){var t=null!==eD&&eD.apply(this,arguments)||this;return t.type=iD.type,t.preventUsingHoverLayer=!0,t}kg.registerClass(nD);var oD=5,rD=(aD.prototype.render=function(t,e,n,i){var o,r,a,s=t.getModel("breadcrumb"),l=this.group;l.removeAll(),s.get("show")&&n&&(r=(o=s.getModel("itemStyle")).getModel("textStyle"),a={pos:{left:s.get("left"),right:s.get("right"),top:s.get("top"),bottom:s.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:s.get("emptyItemWidth"),totalWidth:0,renderList:[]},this._prepare(n,a,r),this._renderContent(t,a,o,r,i),ld(l,a.pos,a.box))},aD.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var o=i.getModel().get("name"),r=n.getTextRect(o),a=Math.max(r.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:o,width:a})}},aD.prototype._renderContent=function(t,e,n,i,o){for(var r,a,s,l,u,h,c,p,d,f,g,y,m,v,x,_,b,w=0,S=e.emptyItemWidth,M=t.get(["breadcrumb","height"]),I=(r=e.pos,a=e.box,l=a.width,u=a.height,h=Zl(r.left,l),c=Zl(r.top,u),p=Zl(r.right,l),d=Zl(r.bottom,u),(isNaN(h)||isNaN(parseFloat(r.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(r.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(r.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(r.bottom)))&&(d=u),s=Wp(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),T=e.totalWidth,C=e.renderList,D=C.length-1;0<=D;D--){var A=C[D],k=A.node,L=A.width,P=A.text;I.width=a.length||t===a[t.depth])&&(n=jD(l,p,t,e,_,s),i(t,n,o,r,a,s))})):(y=YD(p),d.fill=y)}}(n,{},Y(e.levelModels,function(t){return t?t.get(GD):null}),i,t.getViewRoot().getAncestors(),t)}};function WD(n,i,o,r){var a=z({},i);return W(["color","colorAlpha","colorSaturation"],function(t){var e=n.get(t,!0);null==e&&o&&(e=o[t]),null==e&&(e=i[t]),null==e&&(e=r.get(t)),null!=e&&(a[t]=e)}),a}function YD(t){var e=XD(t,"color");if(e){var n=XD(t,"colorAlpha"),i=XD(t,"colorSaturation");return i&&(e=rn(e,null,null,i)),n&&(e=an(e,n)),e}}function XD(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function UD(t,e,n,i,o,r){if(r&&r.length){var a=ZD(e,"color")||null!=o.color&&"none"!==o.color&&(ZD(e,"colorAlpha")||ZD(e,"colorSaturation"));if(a){var s=e.get("visualMin"),l=e.get("visualMax"),u=n.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new CD(c);return FD(p).drColorMappingBy=h,p}}}function ZD(t,e){var n=t.get(e);return N(n)&&n.length?{name:e,range:n}:null}function jD(t,e,n,i,o,r){var a,s,l,u=z({},e);return o&&(l="index"===(s="color"===(a=o.type)&&FD(o).drColorMappingBy)?i:"id"===s?r.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension")),u[a]=o.mapValueToVisual(l)),u}var qD=Math.max,KD=Math.min,$D=$,JD=W,QD=["itemStyle","borderWidth"],tA=["itemStyle","gapWidth"],eA=["upperLabel","show"],nA=["upperLabel","height"],iA={seriesType:"treemap",reset:function(t,e,n,i){var o,r,a,s,l=n.getWidth(),u=n.getHeight(),h=t.option,c=sd(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),p=h.size||[],d=Zl($D(c.width,p[0]),l),f=Zl($D(c.height,p[1]),u),g=i&&i.type,y=$C(i,["treemapZoomToNode","treemapRootToNode"],t),m="treemapRender"===g||"treemapMove"===g?i.rootRect:null,v=t.getViewRoot(),x=JC(v);"treemapMove"!==g&&(o="treemapZoomToNode"===g?function(t,e,n,i,o){var r,a=(e||{}).node,s=[i,o];if(!a||a===n)return s;var l=i*o,u=l*t.option.zoomToNodeRatio;for(;r=a.parentNode;){for(var h=0,c=r.children,p=0,d=c.length;pa[1]&&(a[1]=e)})):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===c.sum)return t.viewChildren=[];if(c.sum=function(t,e,n,i,o){if(!i)return n;for(var r=t.get("visibleMin"),a=o.length,s=a,l=a-1;0<=l;l--){var u=o["asc"===i?a-l-1:l].getValue();u/n*en[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;c "+p)),u++)}var d,f,g,y,m=n.get("coordinateSystem");"cartesian2d"===m||"polar"===m?y=f_(t,n):(D(f=(d=hf.get(m))&&d.dimensions||[],"value")<0&&f.concat(["value"]),g=s_(t,{coordDimensions:f}),(y=new n_(g,n)).initData(t));var v=new n_(["value"],n);return v.initData(l,s),o&&o(y,v),yC({mainData:y,struct:r,structAttr:"graph",datas:{node:y,edge:v},datasAttr:{node:"data",edge:"edgeData"}}),r.update(),r}M(cA,gA("hostGraph","data")),M(dA,gA("hostGraph","edgeData"));var mA,vA=(u(xA,mA=kg),xA.prototype.init=function(t){mA.prototype.init.apply(this,arguments);var e=this;function n(){return e._categoriesData}this.legendVisualProvider=new bI(n,n),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},xA.prototype.mergeOption=function(t){mA.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},xA.prototype.mergeDefaultAndTheme=function(t){mA.prototype.mergeDefaultAndTheme.apply(this,arguments),gu(t,"edgeLabel",["show"])},xA.prototype.getInitialData=function(t,e){var n=t.edges||t.links||[],i=t.data||t.nodes||[],r=this;if(i&&n)return yA(i,n,this,!0,function(t,e){t.wrapMethod("getItemModel",function(t){var e=r._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var i=mc.prototype.getModel;function n(t,e){var n=i.call(this,t,e);return n.resolveParentPath=o,n}function o(t){if(!t||"label"!==t[0]&&"label"!==t[1])return t;var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}e.wrapMethod("getItemModel",function(t){return t.resolveParentPath=o,t.getModel=n,t})}).data},xA.prototype.getGraph=function(){return this.getData().graph},xA.prototype.getEdgeData=function(){return this.getGraph().edgeData},xA.prototype.getCategoriesData=function(){return this._categoriesData},xA.prototype.formatTooltip=function(t,e,n,i){if("edge"!==n)return mA.prototype.formatTooltip.apply(this,arguments);var o=this.getData(),r=this.getDataParams(t,n),a=o.graph.getEdgeByIndex(t),s=o.getName(a.node1.dataIndex),l=o.getName(a.node2.dataIndex),u=[];null!=s&&u.push(s),null!=l&&u.push(l);var h=Up(u.join(" > "));return r.value&&(h+=" : "+Up(r.value)),h},xA.prototype._updateCategoriesData=function(){var t=Y(this.option.categories||[],function(t){return null!=t.value?t:z({value:0},t)}),e=new n_(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t)})},xA.prototype.setZoom=function(t){this.option.zoom=t},xA.prototype.setCenter=function(t){this.option.center=t},xA.prototype.isAnimationEnabled=function(){return mA.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},xA.type="series.graph",xA.defaultOption={zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},xA);function xA(){var t=null!==mA&&mA.apply(this,arguments)||this;return t.type=xA.type,t.hasSymbolVisual=!0,t}kg.registerClass(vA);var _A,bA=xa.prototype,wA=Ws.prototype,SA=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};u(MA,_A=SA);function MA(){return null!==_A&&_A.apply(this,arguments)||this}function IA(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var TA,CA=(u(DA,TA=Sr),DA.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},DA.prototype.getDefaultShape=function(){return new SA},DA.prototype.buildPath=function(t,e){IA(e)?bA.buildPath.call(this,t,e):wA.buildPath.call(this,t,e)},DA.prototype.pointAt=function(t){return IA(this.shape)?bA.pointAt.call(this,t):wA.pointAt.call(this,t)},DA.prototype.tangentAt=function(t){var e=this.shape,n=IA(e)?[e.x2-e.x1,e.y2-e.y1]:wA.tangentAt.call(this,t);return It(n,n)},DA);function DA(t){var e=TA.call(this,t)||this;return e.type="ec-line",e}var AA=["fromSymbol","toSymbol"];function kA(t){return"_"+t+"Type"}function LA(t,e,n){var i=e.getItemVisual(n,t),o=e.getItemVisual(n,t+"Size");if(i&&"none"!==i){var r=N(o)?o:[o,o],a=zb(i,-r[0]/2,-r[1]/2,r[0],r[1]);return a.name=t,a}}function PA(t,e){t.x1=e[0][0],t.y1=e[0][1],t.x2=e[1][0],t.y2=e[1][1],t.percent=1;var n=e[2];n?(t.cpx1=n[0],t.cpy1=n[1]):(t.cpx1=NaN,t.cpy1=NaN)}var NA,OA=(u(RA,NA=Ur),RA.prototype._createLine=function(n,i,t){var e,o,r=n.hostModel,a=n.getItemLayout(i),s=(e=a,PA((o=new CA({name:"line",subPixelOptimize:!0})).shape,e),o);s.shape.percent=0,Sp(s,{shape:{percent:1}},r,i),this.add(s),W(AA,function(t){var e=LA(t,n,i);this.add(e),this[kA(t)]=n.getItemVisual(i,t)},this),this._updateCommonStl(n,i,t)},RA.prototype.updateData=function(o,r,t){var e=o.hostModel,n=this.childOfName("line"),i=o.getItemLayout(r),a={shape:{}};PA(a.shape,i),wp(n,a,e,r),W(AA,function(t){var e,n=o.getItemVisual(r,t),i=kA(t);this[i]!==n&&(this.remove(this.childOfName(t)),e=LA(t,o,r),this.add(e)),this[i]=n},this),this._updateCommonStl(o,r,t)},RA.prototype.getLinePath=function(){return this.childAt(0)},RA.prototype._updateCommonStl=function(n,t,e){var i,o=n.hostModel,l=this.childOfName("line"),r=e&&e.emphasisLineStyle,a=e&&e.blurLineStyle,s=e&&e.selectLineStyle,u=e&&e.labelStatesModels;e&&!n.hasItemOption||(r=(i=n.getItemModel(t)).getModel(["emphasis","lineStyle"]).getLineStyle(),a=i.getModel(["blur","lineStyle"]).getLineStyle(),s=i.getModel(["select","lineStyle"]).getLineStyle(),u=qh(i));var h=n.getItemVisual(t,"style"),c=h.stroke;l.useStyle(h),l.style.fill=null,l.style.strokeNoScale=!0,l.ensureState("emphasis").style=r,l.ensureState("blur").style=a,l.ensureState("select").style=s,W(AA,function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n=t&&(0===e?0:i[e-1][0])r&&(e[1-i]=e[i]+u.sign*r),e}function Rk(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:0o*(1-c[0])?(u="jump",a=l-o*(1-c[2])):0<=(a=l-o*c[1])&&(a=l-o*(1-c[1]))<=0&&(a=0),(a*=e.axisExpandWidth/h)?Ok(a,i,r,"all"):u="none"):(s=i[1]-i[0],(i=[Vk(0,r[1]*l/s-s/2)])[1]=Bk(r[1],i[0]+s),i[0]=i[1]-s),{axisExpandWindow:i,behavior:u}},Xk);function Xk(t,e,n){this.type="parallel",this._axesMap=ut(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}function Uk(t,e){return Bk(Vk(t,e[0]),e[1])}hf.register("parallel",{create:function(i,o){var r=[];return i.eachComponent("parallel",function(t,e){var n=new Yk(t,i,o);n.name="parallel_"+e,n.resize(t,o),(t.coordinateSystem=n).model=t,r.push(n)}),i.eachSeries(function(t){var e;"parallel"===t.get("coordinateSystem")&&(e=t.getReferringComponents("parallel",Au).models[0],t.coordinateSystem=e.coordinateSystem)}),r}});var Zk,jk=(u(qk,Zk=xd),qk.prototype.getAreaSelectStyle=function(){return Yu([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},qk.prototype.setActiveIntervals=function(t){var e=this.activeIntervals=A(t);if(e)for(var n=e.length-1;0<=n;n--)ql(e[n])},qk.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,o=e.length;ia.getWidth()||r<0||r>a.getHeight()))){var i,o,r,a,s=t._zr,l=t._covers,u=_L(t,e,n);if(!t._dragging)for(var h=0;h'+Zp(r.source+" -- "+r.target,o.value||"")+""}if("node"!==n)return gP.prototype.formatTooltip.call(this,t,e,n,i);var a=this.getGraph().getNodeByIndex(t).getLayout().value,s=this.getDataParams(t,n).data.name;return"richText"===i?Up(a?s:"")+": "+(a||""):'
'+Zp(a?s:"",a||"")+"
"},mP.prototype.optionUpdated=function(){var t=this.option;!0===t.focusNodeAdjacency&&(t.focusNodeAdjacency="allEdges")},mP.prototype.getDataParams=function(t,e){var n,i=gP.prototype.getDataParams.call(this,t,e);return null==i.value&&"node"===e&&(n=this.getGraph().getNodeByIndex(t).getLayout().value,i.value=n),i},mP.type="series.sankey",mP.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,focusNodeAdjacency:!1,layoutIterations:32,label:{show:!0,position:"right",color:"#000",fontSize:12},levels:[],nodeAlign:"justify",itemStyle:{borderWidth:1,borderColor:"#333"},lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},mP);function mP(){var t=null!==gP&&gP.apply(this,arguments)||this;return t.type=mP.type,t}kg.registerClass(yP);var vP,xP=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0},_P=(u(bP,vP=Sr),bP.prototype.getDefaultShape=function(){return new xP},bP.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},bP.prototype.highlight=function(){Th(this)},bP.prototype.downplay=function(){Ch(this)},bP);function bP(t){return vP.call(this,t)||this}var wP,SP=(u(MP,wP=Yg),MP.prototype.render=function(C,t,i){var e,n,o,r,a=this,s=C.getGraph(),D=this.group,l=C.layoutInfo,A=l.width,k=l.height,u=C.getData(),L=C.getData("edge"),P=C.get("orient");this._model=C,D.removeAll(),D.x=l.x,D.y=l.y,s.eachEdge(function(t){var e=new _P,n=ju(e);n.dataIndex=t.dataIndex,n.seriesIndex=C.seriesIndex,n.dataType="edge";var i,o,r,a,s,l,u,h,c=t.getModel(),p=c.getModel("lineStyle"),d=p.get("curveness"),f=t.node1.getLayout(),g=t.node1.getModel(),y=g.get("localX"),m=g.get("localY"),v=t.node2.getLayout(),x=t.node2.getModel(),_=x.get("localX"),b=x.get("localY"),w=t.getLayout();switch(e.shape.extent=Math.max(1,w.dy),h="vertical"===(e.shape.orient=P)?(i=(null!=y?y*A:f.x)+w.sy,o=(null!=m?m*k:f.y)+f.dy,r=(null!=_?_*A:v.x)+w.ty,s=i,l=o*(1-d)+(a=null!=b?b*k:v.y)*d,u=r,o*d+a*(1-d)):(i=(null!=y?y*A:f.x)+f.dx,o=(null!=m?m*k:f.y)+w.sy,s=i*(1-d)+(r=null!=_?_*A:v.x)*d,l=o,u=i*d+r*(1-d),a=(null!=b?b*k:v.y)+w.ty),e.setShape({x1:i,y1:o,x2:r,y2:a,cpx1:s,cpy1:l,cpx2:u,cpy2:h}),e.useStyle(p.getItemStyle()),e.style.fill){case"source":e.style.fill=t.node1.getVisual("color");break;case"target":e.style.fill=t.node2.getVisual("color");break;case"gradient":var S=t.node1.getVisual("color"),M=t.node2.getVisual("color");"string"==typeof S&&"string"==typeof M&&(e.style.fill=new Oa(0,0,1,0,[{color:S,offset:0},{color:M,offset:1}]))}var I=c.getModel("emphasis");Vh(e,c,"lineStyle","getItemStyle"),D.add(e),L.setItemGraphicEl(t.dataIndex,e);var T=I.get("focus");Rh(e,"adjacency"===T?t.getAdjacentDataIndices():T,I.get("blurScope")),ju(e).dataType="edge"}),s.eachNode(function(t){var e=t.getLayout(),n=t.getModel(),i=n.get("localX"),o=n.get("localY"),r=n.getModel("emphasis"),a=new ha({shape:{x:null!=i?i*A:e.x,y:null!=o?o*k:e.y,width:e.dx,height:e.dy},style:n.getModel("itemStyle").getItemStyle()});jh(a,qh(n),{labelFetcher:C,labelDataIndex:t.dataIndex,defaultText:t.id}),a.disableLabelAnimation=!0,a.setStyle("fill",t.getVisual("color")),Vh(a,n),D.add(a),u.setItemGraphicEl(t.dataIndex,a),ju(a).dataType="node";var s=r.get("focus");Rh(a,"adjacency"===s?t.getAdjacentDataIndices():s,r.get("blurScope"))}),u.eachItemGraphicEl(function(t,n){u.getItemModel(n).get("draggable")&&(t.drift=function(t,e){a._focusAdjacencyDisabled=!0,this.shape.x+=t,this.shape.y+=e,this.dirty(),i.dispatchAction({type:"dragNode",seriesId:C.id,dataIndex:u.getRawIndex(n),localX:this.shape.x/A,localY:this.shape.y/k})},t.ondragend=function(){a._focusAdjacencyDisabled=!1},t.draggable=!0,t.cursor="move")}),!this._data&&C.isAnimationEnabled()&&D.setClipPath((e=D.getBoundingRect(),n=C,o=function(){D.removeClipPath()},Sp(r=new ha({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}}),{shape:{width:e.width+20}},n,o),r)),this._data=C.getData()},MP.prototype.dispose=function(){},MP.type="sankey",MP);function MP(){var t=null!==wP&&wP.apply(this,arguments)||this;return t.type=MP.type,t._focusAdjacencyDisabled=!1,t}function IP(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&0<=e.depth}function TP(t,l,u,h,c){var p="vertical"===c?"x":"y";W(t,function(t){var e,n;t.sort(function(t,e){return t.getLayout()[p]-e.getLayout()[p]});for(var i,o=0,r=t.length,a="vertical"===c?"dx":"dy",s=0;sd&&(d=y.depth),g.setLayout({depth:m?y.depth:c},!0),"vertical"===r?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var v=0;v "))},VN.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},VN.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},VN.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},VN.type="series.lines",VN.dependencies=["grid","polar","geo","calendar"],VN.defaultOption={coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},VN);function VN(){var t=null!==zN&&zN.apply(this,arguments)||this;return t.type=VN.type,t.visualStyleAccessPath="lineStyle",t.visualDrawType="stroke",t}kg.registerClass(BN);var GN,FN=(u(HN,GN=Ur),HN.prototype.createLine=function(t,e,n){return new OA(t,e,n)},HN.prototype._updateEffectSymbol=function(t,e){var n=t.getItemModel(e).getModel("effect"),i=n.get("symbolSize"),o=n.get("symbol");N(i)||(i=[i,i]);var r=t.getItemVisual(e,"style"),a=n.get("color")||r&&r.stroke,s=this.childAt(1);this._symbolType!==o&&(this.remove(s),(s=zb(o,-.5,-.5,1,1,a)).z2=100,s.culling=!0,this.add(s)),s&&(s.setStyle("shadowColor",a),s.setStyle(n.getItemStyle(["color"])),s.scaleX=i[0],s.scaleY=i[1],s.setColor(a),this._symbolType=o,this._symbolScale=i,this._updateEffectAnimation(t,n,e))},HN.prototype._updateEffectAnimation=function(e,t,n){var i,o,r,a,s,l,u,h,c=this.childAt(1);c&&(i=this,o=e.getItemLayout(n),r=1e3*t.get("period"),a=t.get("loop"),s=t.get("constantSpeed"),l=$(t.get("delay"),function(t){return t/e.count()*r/3}),c.ignore=!0,this._updateAnimationPoints(c,o),0e);a++);a=Math.min(a-1,o-2)}var s=(e-i[a])/(i[a+1]-i[a]),l=n[a],u=n[a+1];t.x=l[0]*(1-s)+s*u[0],t.y=l[1]*(1-s)+s*u[1];var h=u[0]-l[0],c=u[1]-l[1];t.rotation=-Math.atan2(c,h)-Math.PI/2,this._lastFrame=a,this._lastFramePercent=e,t.ignore=!1}},jN);function jN(){var t=null!==UN&&UN.apply(this,arguments)||this;return t._lastFrame=0,t._lastFramePercent=0,t}var qN,KN=function(){this.polyline=!1,this.curveness=0,this.segs=[]},$N=(u(JN,qN=Sr),JN.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},JN.prototype.getDefaultShape=function(){return new KN},JN.prototype.buildPath=function(t,e){var n=e.segs,i=e.curveness;if(e.polyline)for(var o=0;os[1]||Ml[1])continue;var I=c.dataToPoint([S,M]),w=new ha({shape:{x:Math.floor(Math.round(I[0])-r/2),y:Math.floor(Math.round(I[1])-a/2),width:Math.ceil(r),height:Math.ceil(a)},style:d.getItemVisual(b,"style")})}else{if(isNaN(d.get(_[1],b)))continue;w=new ha({z2:1,shape:c.dataToRect([d.get(_[0],b)]).contentShape,style:d.getItemVisual(b,"style")})}var T,C=d.getItemModel(b);d.hasItemOption&&(f=(T=C.getModel("emphasis")).getModel("itemStyle").getItemStyle(),g=C.getModel(["blur","itemStyle"]).getItemStyle(),y=C.getModel(["select","itemStyle"]).getItemStyle(),v=T.get("focus"),x=T.get("blurScope"),m=qh(C));var D=t.getRawValue(b),A="-";D&&null!=D[2]&&(A=D[2]+""),jh(w,m,{labelFetcher:t,labelDataIndex:b,defaultText:A}),w.ensureState("emphasis").style=f,w.ensureState("blur").style=g,w.ensureState("select").style=y,Rh(w,v,x),(w.incremental=o)&&(w.states.emphasis.hoverLayer=!0),p.add(w),d.setItemGraphicEl(b,w)}},fO.prototype._renderOnGeo=function(o,t,e,n){var i=e.targetVisuals.inRange,r=e.targetVisuals.outOfRange,a=t.getData(),s=this._hmLayer||this._hmLayer||new hO;s.blurSize=t.get("blurSize"),s.pointSize=t.get("pointSize"),s.minOpacity=t.get("minOpacity"),s.maxOpacity=t.get("maxOpacity");var l=o.getViewRect().clone(),u=o.getRoamTransform();l.applyTransform(u);var h,c,p,d,f,g,y,m,v,x=Math.max(l.x,0),_=Math.max(l.y,0),b=Math.min(l.width+l.x,n.getWidth()),w=Math.min(l.height+l.y,n.getHeight()),S=b-x,M=w-_,I=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],T=a.mapArray(I,function(t,e,n){var i=o.dataToPoint([t,e]);return i[0]-=x,i[1]-=_,i.push(n),i}),C=e.getExtent(),D="visualMap.continuous"===e.type?(y=C,m=e.option.range,v=y[1]-y[0],m=[(m[0]-y[0])/v,(m[1]-y[0])/v],function(t){return t>=m[0]&&t<=m[1]}):(h=C,c=e.getPieceList(),p=e.option.selected,d=h[1]-h[0],f=(c=Y(c,function(t){return{interval:[(t.interval[0]-h[0])/d,(t.interval[1]-h[0])/d]}})).length,g=0,function(t){for(var e,n=g;n=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},XO.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},XO.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[o]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-o]=0==o?n.y+n.height/2:n.x+n.width/2,i},XO.prototype.convertToPixel=function(t,e,n){return UO(e)===this?this.dataToPoint(n):null},XO.prototype.convertFromPixel=function(t,e,n){return UO(e)===this?this.pointToData(n):null},XO);function XO(t,e,n){this.type="single",this.dimension="single",this.dimensions=["single"],this.axisPointerEnabled=!0,this.model=t,this._init(t,e,n)}function UO(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function ZO(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,o={},r=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};o.position=["vertical"===a?u.vertical[r]:l[0],"horizontal"===a?u.horizontal[r]:l[3]];o.rotation=Math.PI/2*{horizontal:0,vertical:1}[a];o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,right:1,left:-1}[r],t.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),$(e.labelInside,t.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),o.labelRotation="top"===r?-h:h,o.z2=1,o}hf.register("single",{create:function(i,o){var r=[];return i.eachComponent("singleAxis",function(t,e){var n=new YO(t,i,o);n.name="single_"+e,n.resize(t,o),t.coordinateSystem=n,r.push(n)}),i.eachSeries(function(t){var e;"singleAxis"===t.get("coordinateSystem")&&(e=t.getReferringComponents("singleAxis",Au).models[0],t.coordinateSystem=e&&e.coordinateSystem)}),r},dimensions:YO.prototype.dimensions});var jO,qO=["axisLine","axisTickLabel","axisName"],KO=["splitArea","splitLine"],$O=(u(JO,jO=QS),JO.prototype.render=function(e,t,n,i){var o=this.group;o.removeAll();var r=this._axisGroup;this._axisGroup=new Ur;var a=ZO(e),s=new VS(e,a);W(qO,s.add,s),o.add(this._axisGroup),o.add(s.getGroup()),W(KO,function(t){e.get([t,"show"])&&QO[t](this,this.group,this._axisGroup,e)},this),Rp(r,this._axisGroup,e),jO.prototype.render.call(this,e,t,n,i)},JO.prototype.remove=function(){aM(this)},JO.type="singleAxis",JO);function JO(){var t=null!==jO&&jO.apply(this,arguments)||this;return t.type=JO.type,t.axisPointerClass="SingleAxisPointer",t}var QO={splitLine:function(t,e,n,i){var o=i.axis;if(!o.scale.isBlank()){for(var r=i.getModel("splitLine"),a=r.getModel("lineStyle"),s=a.get("width"),l=(l=a.get("color"))instanceof Array?l:[l],u=i.coordinateSystem.getRect(),h=o.isHorizontal(),c=[],p=0,d=o.getTicksCoords({tickModel:r}),f=[],g=[],y=0;ya)return!0;if(r){var s=jS(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1},SR.prototype.makeElOption=function(t,e,n,i,o){},SR.prototype.createPointerEl=function(t,e,n,i){var o,r=e.pointer;r&&(o=xR(t).pointerEl=new Gp[r.type](_R(e.pointer)),t.add(o))},SR.prototype.createLabelEl=function(t,e,n,i){var o;e.label&&(o=xR(t).labelEl=new Ts(_R(e.label)),t.add(o),IR(o,i))},SR.prototype.updatePointerEl=function(t,e,n){var i=xR(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},SR.prototype.updateLabelEl=function(t,e,n,i){var o=xR(t).labelEl;o&&(o.setStyle(e.label.style),n(o,{x:e.label.x,y:e.label.y}),IR(o,i))},SR.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),o=this._handle,r=n.getModel("handle"),a=n.get("status");if(!r.get("show")||!a||"hide"===a)return o&&i.remove(o),void(this._handle=null);this._handle||(e=!0,o=this._handle=zp(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){ee(t.event)},onmousedown:bR(this._onHandleDragMove,this,0,0),drift:bR(this._onHandleDragMove,this),ondragend:bR(this._onHandleDragEnd,this)}),i.add(o)),CR(o,n,!1),o.setStyle(r.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=r.get("size");N(s)||(s=[s,s]),o.scaleX=s[0]/2,o.scaleY=s[1]/2,ey(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},SR.prototype._moveHandleToValue=function(t,e){MR(this._axisPointerModel,!e&&this._moveAnimation,this._handle,TR(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},SR.prototype._onHandleDragMove=function(t,e){var n,i=this._handle;i&&(this._dragging=!0,n=this.updateHandleTransform(TR(i),[t,e],this._axisModel,this._axisPointerModel),this._payloadInfo=n,i.stopAnimation(),i.attr(TR(n)),xR(i).lastProp=null,this._doDispatchAxisPointer())},SR.prototype._doDispatchAxisPointer=function(){var t,e;this._handle&&(t=this._payloadInfo,e=this._axisModel,this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]}))},SR.prototype._onHandleDragEnd=function(){var t;this._dragging=!1,this._handle&&(t=this._axisPointerModel.get("value"),this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"}))},SR.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},SR.prototype.doClear=function(){},SR.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},SR);function SR(){this._dragging=!1,this.animationThreshold=15}function MR(t,e,n,i){!function n(i,t){{if(F(i)&&F(t)){var o=!0;return W(t,function(t,e){o=o&&n(i[e],t)}),!!o}return i===t}}(xR(n).lastProp,i)&&(xR(n).lastProp=i,e?wp(n,i,t):(n.stopAnimation(),n.attr(i)))}function IR(t,e){t[e.get(["label","show"])?"show":"hide"]()}function TR(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function CR(t,e,n){var i=e.get("z"),o=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=o&&(t.zlevel=o),t.silent=n)})}function DR(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function AR(t,e,n,i,o){var r=kR(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=Wp(a.get("padding")||0),l=a.getFont(),u=Ni(r,l),h=o.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=o.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f,g,y,m,v,x,_=o.verticalAlign;"bottom"===_&&(h[1]-=p),"middle"===_&&(h[1]-=p/2),f=h,g=c,y=p,v=(m=i).getWidth(),x=m.getHeight(),f[0]=Math.min(f[0]+g,v)-g,f[1]=Math.min(f[1]+y,x)-y,f[0]=Math.max(f[0],0),f[1]=Math.max(f[1],0);var b=a.get("backgroundColor");b&&"auto"!==b||(b=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:{text:r,textFont:l,fill:a.getTextColor(),padding:s,backgroundColor:b,borderColor:a.get("borderColor")||"transparent",borderRadius:a.get("borderRadius"),borderWidth:a.get("borderWidth")||0,shadowBlur:a.get("shadowBlur"),shadowColor:a.get("shadowColor"),shadowOffsetX:a.get("shadowOffsetX"),shadowOffsetY:a.get("shadowOffsetY")},z2:10}}function kR(t,e,o,n,i){t=e.scale.parse(t);var r,a=e.scale.getLabel({value:t},{precision:i.precision}),s=i.formatter;return s&&(r={value:bb(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]},W(n,function(t){var e=o.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,i=e&&e.getDataParams(n);i&&r.seriesData.push(i)}),B(s)?a=s.replace("{value}",a):E(s)&&(a=s(r))),a}function LR(t,e,n){var i=qn();return ti(i,i,n.rotation),Qn(i,i,n.position),Pp([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function PR(t,e,n,i,o,r){var a=VS.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=o.get(["label","margin"]),AR(e,i,o,r,{position:LR(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function NR(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function OR(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function RR(t,e,n,i,o,r){return{cx:t,cy:e,r0:n,r:i,startAngle:o,endAngle:r,clockwise:!0}}var ER,zR=(u(BR,ER=wR),BR.prototype.makeElOption=function(t,e,n,i,o){var r,a,s=n.axis,l=s.grid,u=i.get("type"),h=VR(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(e,!0));u&&"none"!==u&&(r=DR(i),(a=GR[u](s,c,h)).style=r,t.graphicKey=a.type,t.pointer=a),PR(e,t,eM(l.model,n),n,i,o)},BR.prototype.getHandleTransform=function(t,e,n){var i=eM(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=LR(e.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},BR.prototype.updateHandleTransform=function(t,e,n,i){var o=n.axis,r=o.grid,a=o.getGlobalExtent(!0),s=VR(r,o).getOtherAxis(o).getGlobalExtent(),l="x"===o.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];return c[l]=u[l],{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},BR);function BR(){return null!==ER&&ER.apply(this,arguments)||this}function VR(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var GR={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:NR([e,n[0]],[e,n[1]],FR(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),o=n[1]-n[0];return{type:"Rect",shape:OR([e-i/2,n[0]],[i,o],FR(t))}}};function FR(t){return"x"===t.dim?0:1}QS.registerAxisPointerClass("CartesianAxisPointer",zR);var HR,WR=(u(YR,HR=xd),YR.type="axisPointer",YR.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},YR);function YR(){var t=null!==HR&&HR.apply(this,arguments)||this;return t.type=YR.type,t}xd.registerClass(WR),gx(function(t){var e;t&&(t.axisPointer&&0!==t.axisPointer.length||(t.axisPointer={}),(e=t.axisPointer.link)&&!N(e)&&(t.axisPointer.link=[e]))}),yx(uv.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=US(t,e)}),mx({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,n){var i=t.currTrigger,a=[t.x,t.y],o=t,r=t.dispatchAction||P(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){uR(a)&&(a=iR({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=uR(a),u=o.axesInfo,h=s.axesInfo,c="leave"===i||uR(a),p={},d={},f={list:[],map:{}},g={showPointer:R(aR,d),showTooltip:R(sR,f)};W(s.coordSysMap,function(t,e){var r=l||t.containPoint(a);W(s.coordSysAxesInfo[e],function(t,e){var n,i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);c||!r||u&&!o||(null!=(n=o&&o.value)||l||(n=i.pointToData(a)),null!=n&&rR(t,n,g,!1,p))})});var y,m,v,x={};return W(h,function(o,t){var r=o.linkGroup;r&&!d[t]&&W(r.axesInfo,function(t,e){var n,i=d[e];t!==o&&i&&(n=i.value,r.mapper&&(n=o.axis.scale.parse(r.mapper(n,lR(t),lR(o)))),x[o.key]=n)})}),W(x,function(t,e){rR(h[e],t,g,!0,p)}),y=d,m=h,v=p.axesInfo=[],W(m,function(t,e){var n=t.axisPointerModel.option,i=y[e];i?(t.useHandle||(n.status="show"),n.value=i.value,n.seriesDataIndices=(i.payloadBatch||[]).slice()):t.useHandle||(n.status="hide"),"show"===n.status&&v.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:n.value})}),function(t,e,n,i){if(uR(e)||!t.list.length)return i({type:"hideTip"});var o=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}(f,a,t,r),function(t,e){var n=e.getZr(),i="axisPointerLastHighlights",o=oR(n)[i]||{},r=oR(n)[i]={};W(t,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&W(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;r[e]=t})});var a=[],s=[];W(o,function(t,e){r[e]||s.push(t)}),W(r,function(t,e){o[e]||a.push(t)}),s.length&&e.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:s}),a.length&&e.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:a})}(h,n),p}});var XR,UR=["x","y"],ZR=["width","height"],jR=(u(qR,XR=wR),qR.prototype.makeElOption=function(t,e,n,i,o){var r,a,s=n.axis,l=s.coordinateSystem,u=JR(l,1-$R(s)),h=l.dataToPoint(e)[0],c=i.get("type");c&&"none"!==c&&(r=DR(i),(a=KR[c](s,h,u)).style=r,t.graphicKey=a.type,t.pointer=a),PR(e,t,ZO(n),n,i,o)},qR.prototype.getHandleTransform=function(t,e,n){var i=ZO(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=LR(e.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},qR.prototype.updateHandleTransform=function(t,e,n,i){var o=n.axis,r=o.coordinateSystem,a=$R(o),s=JR(r,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=JR(r,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},qR);function qR(){return null!==XR&&XR.apply(this,arguments)||this}var KR={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:NR([e,n[0]],[e,n[1]],$R(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),o=n[1]-n[0];return{type:"Rect",shape:OR([e-i/2,n[0]],[i,o],$R(t))}}};function $R(t){return t.isHorizontal()?0:1}function JR(t,e){var n=t.getRect();return[n[UR[e]],n[UR[e]]+n[ZR[e]]]}QS.registerAxisPointerClass("SingleAxisPointer",jR),Ix({type:"single"});var QR,tE=(u(eE,QR=kg),eE.prototype.init=function(t){QR.prototype.init.apply(this,arguments),this.legendVisualProvider=new bI(P(this.getData,this),P(this.getRawData,this))},eE.prototype.fixData=function(t){var e=t.length,n=Nu(t,function(t){return t[2]}),i=[];n.buckets.each(function(t,e){i.push({name:e,dataList:t})});for(var o=i.length,r=-1,a=-1,s=0;s'+Zp(r,a)+""},eE.type="series.themeRiver",eE.dependencies=["singleAxis"],eE.defaultOption={zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",fontSize:11},emphasis:{label:{show:!0}}},eE);function eE(){var t=null!==QR&&QR.apply(this,arguments)||this;return t.type=eE.type,t.useColorPaletteOnData=!0,t}kg.registerClass(tE);var nE,iE=(u(oE,nE=Yg),oE.prototype.render=function(S,t,e){var M=S.getData(),I=this,T=this.group,C=S.getLayerSeries(),n=M.getLayout("layoutInfo"),i=n.rect,o=n.boundaryGap;function r(t){return t.name}T.x=0,T.y=i.y+o[0];var a=new Dx(this._layersSeries||[],C,r,r),D=[];function s(t,e,n){var i=I._layers;if("remove"!==t){for(var o,r=[],a=[],s=C[e].indices,l=0;lMath.PI/2?"right":"left"):c&&"center"!==c?"left"===c?(a=m.r0+h,x>Math.PI/2&&(c="right")):"right"===c&&(a=m.r-h,x>Math.PI/2&&(c="left")):(a=(m.r+m.r0)/2,c="center"),o.style.align=c,o.style.verticalAlign=I(e,"verticalAlign")||"middle",o.x=a*_+m.cx,o.y=a*b+m.cy;var p=I(e,"rotate"),d=0;"radial"===p?(d=-x)<-Math.PI/2&&(d+=Math.PI):"tangential"===p?(d=Math.PI/2-x)>Math.PI/2?d-=Math.PI:d<-Math.PI/2&&(d+=Math.PI):"number"==typeof p&&(d=p*Math.PI/180),o.rotation=d}),S.dirtyStyle()},cE);function cE(t,e,n){var i=uE.call(this)||this;i.z2=2,i.textConfig={inside:!0},ju(i).seriesIndex=e.seriesIndex;var o=new Ts({z2:4,silent:t.getModel().get(["label","silent"])});return i.setTextContent(o),i.updateData(!0,t,e,n),i}var pE="sunburstRootToNode";mx({type:pE,update:"updateView"},function(o,t){t.eachComponent({mainType:"series",subType:"sunburst",query:o},function(t,e){var n=$C(o,[pE],t);{var i;n&&((i=t.getViewRoot())&&(o.direction=QC(i,n.node)?"rollUp":"drillDown"),t.resetViewRoot(n.node))}})});var dE="sunburstHighlight";mx({type:dE,update:"none"},function(n,t,e){n=z({},n),t.eachComponent({mainType:"series",subType:"sunburst",query:n},function(t){var e=$C(n,[dE],t);e&&(n.dataIndex=e.node.dataIndex)}),e.dispatchAction(z(n,{type:"highlight"}))});mx({type:"sunburstUnhighlight",update:"updateView"},function(t,e,n){t=z({},t),n.dispatchAction(z(t,{type:"downplay"}))});var fE,gE=(u(yE,fE=Yg),yE.prototype.render=function(o,r,t,e){var n=this;this.seriesModel=o,this.api=t,this.ecModel=r;var a=o.getData(),s=a.tree.root,i=o.getViewRoot(),l=this.group,u=o.get("renderLabelForZeroData"),h=[];i.eachNode(function(t){h.push(t)});var c,p,d=this._oldChildren||[];!function(n,i){function t(t){return t.getId()}function e(t,e){!function(t,e){var n;u||!t||t.getValue()||(t=null),t!==s&&e!==s&&(e&&e.piece?t?(e.piece.updateData(!1,t,o,r),a.setItemGraphicEl(t.dataIndex,e.piece)):function(t){t&&t.piece&&(l.remove(t.piece),t.piece=null)}(e):t&&(n=new hE(t,o,r),l.add(n),a.setItemGraphicEl(t.dataIndex,n)))}(null==t?null:n[t],null==e?null:i[e])}0===n.length&&0===i.length||new Dx(i,n,t,t).add(e).update(e).remove(R(e,null)).execute()}(h,d),c=s,0<(p=i).depth?(n.virtualPiece?n.virtualPiece.updateData(!1,c,o,r):(n.virtualPiece=new hE(c,o,r),l.add(n.virtualPiece)),p.piece.off("click"),n.virtualPiece.on("click",function(t){n._rootToNode(p.parentNode)})):n.virtualPiece&&(l.remove(n.virtualPiece),n.virtualPiece=null),this._initEvents(),this._oldChildren=h},yE.prototype._initEvents=function(){var a=this;this.group.off("click"),this.group.on("click",function(o){var r=!1;a.seriesModel.getViewRoot().eachNode(function(t){var e,n,i;!r&&t.piece&&t.piece===o.target&&("rootToNode"===(e=t.getModel().get("nodeClick"))?a._rootToNode(t):"link"!==e||(i=(n=t.getModel()).get("link"))&&td(i,n.get("target",!0)||"_blank"),r=!0)})})},yE.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:pE,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},yE.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,o=t[1]-n.cy,r=Math.sqrt(i*i+o*o);return r<=n.r&&r>=n.r0}},yE.type="sunburst",yE);function yE(){var t=null!==fE&&fE.apply(this,arguments)||this;return t.type=yE.type,t}Yg.registerClass(gE);var mE=Math.PI/180;function vE(t,e){if("function"==typeof e)return t.sort(e);var i="asc"===e;return t.sort(function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0==n?(t.dataIndex-e.dataIndex)*(i?-1:1):n})}function xE(r,a){return a=a||[0,0],Y(["x","y"],function(t,e){var n=this.getAxis(t),i=a[e],o=r[e]/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o))},this)}function _E(r,a){return a=a||[0,0],Y([0,1],function(t){var e=a[t],n=r[t]/2,i=[],o=[];return i[t]=e-n,o[t]=e+n,i[1-t]=o[1-t]=a[1-t],Math.abs(this.dataToPoint(i)[t]-this.dataToPoint(o)[t])},this)}function bE(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,o=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o))}function wE(a,s){return s=s||[0,0],Y(["Radius","Angle"],function(t,e){var n=this["get"+t+"Axis"](),i=s[e],o=a[e]/2,r="category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o));return"Angle"===t&&(r=r*Math.PI/180),r},this)}xx(R(function(t,e,D){e.eachSeriesByType(t,function(t){var e=t.get("center"),n=t.get("radius");N(n)||(n=[0,n]),N(e)||(e=[e,e]);var i=D.getWidth(),o=D.getHeight(),h=Math.min(i,o),c=Zl(e[0],i),p=Zl(e[1],o),d=Zl(n[0],h/2),r=Zl(n[1],h/2),a=-t.get("startAngle")*mE,f=t.get("minAngle")*mE,g=t.getData().tree.root,s=t.getViewRoot(),y=s.depth,l=t.get("sort");null!=l&&!function e(t,n){var i=t.children||[];t.children=vE(i,n);i.length&&W(t.children,function(t){e(t,n)})}(s,l);var u=0;W(s.children,function(t){isNaN(t.getValue())||u++});var m,v,x=s.getValue(),_=Math.PI/(x||u)*2,b=0t[1]&&t.reverse(),{coordSys:{type:"polar",cx:o.cx,cy:o.cy,r:t[1],r0:t[0]},api:{coord:function(t){var e=r.dataToRadius(t[0]),n=a.dataToAngle(t[1]),i=o.coordToPoint([e,n]);return i.push(e,n*Math.PI/180),i},size:P(wE,o)}}},calendar:function(n){var t=n.getRect(),e=n.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:n.getCellWidth(),cellHeight:n.getCellHeight(),rangeInfo:{start:e.start,end:e.end,weeks:e.weeks,dayCount:e.allDay}},api:{coord:function(t,e){return n.dataToPoint(t,e)}}}}},HE=(u(WE,TE=kg),WE.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},WE.prototype.getInitialData=function(t,e){return f_(this.getSource(),this)},WE.prototype.getDataParams=function(t,e,n){var i=TE.prototype.getDataParams.call(this,t,e);return n&&(i.info=CE(n).info),i},WE.type="series.custom",WE.dependencies=["grid","polar","geo","singleAxis","calendar"],WE.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,clip:!1},WE);function WE(){var t=null!==TE&&TE.apply(this,arguments)||this;return t.type=WE.type,t}xd.registerClass(HE);var YE,XE=(u(UE,YE=Yg),UE.prototype.render=function(n,t,e,i){var o=this._data,r=n.getData(),a=this.group,s=oz(n,r,t,e);r.diff(o).add(function(t){rz(null,t,s(t,i),n,a,r)}).update(function(t,e){rz(o.getItemGraphicEl(e),t,s(t,i),n,a,r)}).remove(function(t){fz(o.getItemGraphicEl(t),n,a)}).execute();var l=n.get("clip",!0)?fS(n.coordinateSystem,!1,n):null;l?a.setClipPath(l):a.removeClipPath(),this._data=r},UE.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},UE.prototype.incrementalRender=function(t,e,n,i,o){var r=e.getData(),a=oz(e,r,n,i);function s(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var l=t.start;le[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,o=n*n+i*i,r=this.r,a=this.r0;return o<=r*r&&a*a<=o}}},Bz.prototype.convertToPixel=function(t,e,n){return Vz(e)===this?this.dataToPoint(n):null},Bz.prototype.convertFromPixel=function(t,e,n){return Vz(e)===this?this.pointToData(n):null},Bz);function Bz(t){this.dimensions=["radius","angle"],this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new Lz,this._angleAxis=new Rz,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}function Vz(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function Gz(t,e){var n,i,o=this,r=o.getAngleAxis(),a=o.getRadiusAxis();r.scale.setExtent(1/0,-1/0),a.scale.setExtent(1/0,-1/0),t.eachSeries(function(t){var e;t.coordinateSystem===o&&(W(Ib(e=t.getData(),"radius"),function(t){a.scale.unionExtentFromData(e,t)}),W(Ib(e,"angle"),function(t){r.scale.unionExtentFromData(e,t)}))}),vb(r.scale,r.model),vb(a.scale,a.model),"category"!==r.type||r.onBand||(n=r.getExtent(),i=360/r.scale.count(),r.inverse?n[1]+=i:n[1]-=i,r.setExtent(n[0],n[1]))}function Fz(t,e){var n;t.type=e.get("type"),t.scale=xb(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),"angleAxis"===e.mainType&&(t.inverse=t.inverse!==e.get("clockwise"),n=e.get("startAngle"),t.setExtent(n,n+(t.inverse?-360:360))),(e.axis=t).model=e}var Hz={dimensions:zz.prototype.dimensions,create:function(t,s){var l=[];return t.eachComponent("polar",function(t,e){var n=new zz(e+"");n.update=Gz;var i=n.getRadiusAxis(),o=n.getAngleAxis(),r=t.findAxisModel("radiusAxis"),a=t.findAxisModel("angleAxis");Fz(i,r),Fz(o,a),function(t,e,n){var i=e.get("center"),o=n.getWidth(),r=n.getHeight();t.cx=Zl(i[0],o),t.cy=Zl(i[1],r);var a=t.getRadiusAxis(),s=Math.min(o,r)/2,l=e.get("radius");null==l?l=[0,"100%"]:N(l)||(l=[0,l]);var u=[Zl(l[0],s),Zl(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(n,t,s),l.push(n),(t.coordinateSystem=n).model=t}),t.eachSeries(function(t){var e;"polar"===t.get("coordinateSystem")&&(e=t.getReferringComponents("polar",Au).models[0],t.coordinateSystem=e.coordinateSystem)}),l}};hf.register("polar",Hz);var Wz=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function Yz(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),o=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:o[0],y2:o[1]}}function Xz(t){return t.getRadiusAxis().inverse?0:1}function Uz(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var Zz,jz=(u(qz,Zz=QS),qz.prototype.render=function(e,t){var n,i,o,r,a,s;this.group.removeAll(),e.get("show")&&(n=e.axis,i=n.polar,o=i.getRadiusAxis().getExtent(),r=n.getTicksCoords(),a=n.getMinorTicksCoords(),Uz(s=Y(n.getViewLabels(),function(t){return(t=A(t)).coord=n.dataToCoord(t.tickValue),t})),Uz(r),W(Wz,function(t){!e.get([t,"show"])||n.scale.isBlank()&&"axisLine"!==t||Kz[t](this.group,e,i,r,a,o,s)},this))},qz.type="angleAxis",qz);function qz(){var t=null!==Zz&&Zz.apply(this,arguments)||this;return t.type=qz.type,t.axisPointerClass="PolarAxisPointer",t}var Kz={axisLine:function(t,e,n,i,o,r){var a=e.getModel(["axisLine","lineStyle"]),s=Xz(n),l=s?0:1,u=0===r[l]?new ea({shape:{cx:n.cx,cy:n.cy,r:r[s]},style:a.getLineStyle(),z2:1,silent:!0}):new rl({shape:{cx:n.cx,cy:n.cy,r:r[s],r0:r[l]},style:a.getLineStyle(),z2:1,silent:!0});u.style.fill=null,t.add(u)},axisTick:function(t,e,n,i,o,r){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=r[Xz(n)],u=Y(i,function(t){return new xa({shape:Yz(n,[l,l+s],t.coord)})});t.add(vp(u,{style:O(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,o,r){if(o.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=r[Xz(n)],h=[],c=0;cs?"left":"right",h=Math.abs(a[1]-l)/r<.3?"middle":a[1]>l?"top":"bottom";m&&m[o]&&(F(n=m[o])&&n.textStyle&&(i=new mc(n.textStyle,v,v.ecModel)));var c,p=new Ts({silent:VS.isLabelSilent(f),style:Kh(i,{x:a[0],y:a[1],fill:i.getTextColor()||f.get(["axisLine","lineStyle","color"]),text:t.formattedLabel,align:u,verticalAlign:h})});d.add(p),_&&((c=VS.makeAxisEventDataBase(f)).targetType="axisLabel",c.value=t.rawLabel,ju(p).eventData=c)},this)},splitLine:function(t,e,n,i,o,r){for(var a=e.getModel("splitLine").getModel("lineStyle"),s=0,l=(l=a.get("color"))instanceof Array?l:[l],u=[],h=0;hf?"left":"right",Math.abs(s[1]-g)/d<.3?"middle":s[1]>g?"top":"bottom"),{position:s,align:l,verticalAlign:u}}(e,n,l,p))},rB);function rB(){return null!==iB&&iB.apply(this,arguments)||this}var aB={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:NR(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var o=Math.max(1,t.getBandWidth()),r=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:RR(e.cx,e.cy,i[0],i[1],(-n-o/2)*r,(o/2-n)*r)}:{type:"Sector",shape:RR(e.cx,e.cy,n-o/2,n+o/2,0,2*Math.PI)}}};QS.registerAxisPointerClass("PolarAxisPointer",oB),xx(R(function(t,e,n){var N={},O=function(t){var g={};W(t,function(t,e){var n=t.getData(),i=t.coordinateSystem,o=i.getBaseAxis(),r=mz(i,o),a=o.getExtent(),s="category"===o.type?o.getBandWidth():Math.abs(a[1]-a[0])/n.count(),l=g[r]||{bandWidth:s,remainedWidth:s,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},u=l.stacks;g[r]=l;var h=yz(t);u[h]||l.autoWidthCount++,u[h]=u[h]||{width:0,maxWidth:0};var c=Zl(t.get("barWidth"),s),p=Zl(t.get("barMaxWidth"),s),d=t.get("barGap"),f=t.get("barCategoryGap");c&&!u[h].width&&(c=Math.min(l.remainedWidth,c),u[h].width=c,l.remainedWidth-=c),p&&(u[h].maxWidth=p),null!=d&&(l.gap=d),null!=f&&(l.categoryGap=f)});var p={};return W(g,function(t,n){p[n]={};var e=t.stacks,i=t.bandWidth,o=Zl(t.categoryGap,i),r=Zl(t.gap,1),a=t.remainedWidth,s=t.autoWidthCount,l=(a-o)/(s+(s-1)*r),l=Math.max(l,0);W(e,function(t,e){var n=t.maxWidth;n&&n=i.start.time&&n.timea.end.time&&o.reverse(),o},gB.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/864e5)-Math.floor(n[0].time/864e5)+1,o=new Date(n[0].time),r=o.getDate(),a=n[1].date.getDate();o.setDate(r+i-1);var s=o.getDate();if(s!==a)for(var l=0i.weeks||0===t&&ei.lweek)return null;var o=7*(t-1)-i.fweek+e,r=new Date(i.start.time);return r.setDate(+i.start.d+o),this.getDateInfo(r)},gB.create=function(t,e){var n=[];return t.eachComponent("calendar",function(t){var e=new gB(t);n.push(e),t.coordinateSystem=e}),t.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=n[t.get("calendarIndex")||0])}),n},gB.dimensions=["time","value"],gB);function gB(t,e,n){this.type="calendar",this.dimensions=gB.dimensions,this.getDimensionsInfo=gB.getDimensionsInfo,this._model=t}function yB(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}hf.register("calendar",fB);var mB,vB=(u(xB,mB=xd),xB.prototype.init=function(t,e,n){var i=cd(t);mB.prototype.init.apply(this,arguments),_B(t,i)},xB.prototype.mergeOption=function(t){mB.prototype.mergeOption.apply(this,arguments),_B(this.option,t)},xB.prototype.getCellSize=function(){return this.option.cellSize},xB.type="calendar",xB.defaultOption={zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},xB);function xB(){var t=null!==mB&&mB.apply(this,arguments)||this;return t.type=xB.type,t}function _B(t,i){var e=t.cellSize,o=N(e)?e:t.cellSize=[e,e];1===o.length&&(o[1]=o[0]);var n=Y([0,1],function(t){var e,n;return(null!=(e=i)[od[n=t][0]]||null!=e[od[n][1]]&&null!=e[od[n][2]])&&(o[t]="auto"),null!=o[t]&&"auto"!==o[t]});hd(t,i,{type:"box",ignoreSize:n})}xd.registerClass(vB);var bB,wB={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},SB={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},MB=(u(IB,bB=Vg),IB.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var o=t.coordinateSystem,r=o.getRangeInfo(),a=o.getOrient();this._renderDayRect(t,r,i),this._renderLines(t,r,a,i),this._renderYearText(t,r,a,i),this._renderMonthText(t,a,i),this._renderWeekText(t,r,a,i)},IB.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),r=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new ha({shape:{x:l[0],y:l[1],width:r,height:a},cursor:"default",style:o});n.add(u)}},IB.prototype._renderLines=function(n,t,i,o){var r=this,a=n.coordinateSystem,s=n.getModel(["splitLine","lineStyle"]).getLineStyle(),l=n.get(["splitLine","show"]),e=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=t.start,h=0;u.time<=t.end.time;h++){p(u.formatedDate),0===h&&(u=a.getDateInfo(t.start.y+"-"+t.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=a.getDateInfo(c)}function p(t){r._firstDayOfMonth.push(a.getDateInfo(t)),r._firstDayPoints.push(a.dataToRect([t],!1).tl);var e=r._getLinePointsOfOneWeek(n,t,i);r._tlpoints.push(e[0]),r._blpoints.push(e[e.length-1]),l&&r._drawSplitline(e,s,o)}p(a.getNextNDay(t.end.time,1).formatedDate),l&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,e,i),s,o),l&&this._drawSplitline(r._getEdgesPoints(r._blpoints,e,i),s,o)},IB.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===n?0:1;return i[0][o]=i[0][o]-e/2,i[1][o]=i[1][o]+e/2,i},IB.prototype._drawSplitline=function(t,e,n){var i=new Aa({z2:20,shape:{points:t},style:e});n.add(i)},IB.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,o=i.getDateInfo(e),r=[],a=0;a<7;a++){var s=i.getNextNDay(o.time,a),l=i.dataToRect([s.time],!1);r[2*s.day]=l.tl,r[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return r},IB.prototype._formatterLabel=function(t,e){return"string"==typeof t&&t?$p(t,e):"function"==typeof t?t(e):e.nameMap},IB.prototype._yearTextPositionControl=function(t,e,n,i,o){var r=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=o,s=["center","top"]):"left"===i?r-=o:"right"===i?(r+=o,s=["center","top"]):a-=o;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:r,y:a,style:{align:s[0],verticalAlign:s[1]}}},IB.prototype._renderYearText=function(t,e,n,i){var o,r,a,s,l,u,h,c,p,d,f,g,y=t.getModel("yearLabel");y.get("show")&&(o=y.get("margin"),r=(r=y.get("position"))||("horizontal"!==n?"top":"left"),s=((a=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]])[0][0]+a[1][0])/2,l=(a[0][1]+a[1][1])/2,h={top:[s,a[u="horizontal"===n?0:1][1]],bottom:[s,a[1-u][1]],left:[a[1-u][0],l],right:[a[u][0],l]},c=e.start.y,+e.end.y>+e.start.y&&(c=c+"-"+e.end.y),p=y.get("formatter"),d={start:e.start.y,end:e.end.y,nameMap:c},f=this._formatterLabel(p,d),(g=new Ts({z2:30,style:Kh(y,{text:f})})).attr(this._yearTextPositionControl(g,h[r],n,r,o)),i.add(g))},IB.prototype._monthTextPositionControl=function(t,e,n,i,o){var r="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=o,e&&(r="center"),"start"===i&&(a="bottom")):(s+=o,e&&(a="middle"),"start"===i&&(r="right")),{x:s,y:l,align:r,verticalAlign:a}},IB.prototype._renderMonthText=function(t,e,n){var i=t.getModel("monthLabel");if(i.get("show")){var o=i.get("nameMap"),r=i.get("margin"),a=i.get("position"),s=i.get("align"),l=[this._tlpoints,this._blpoints];B(o)&&(o=wB[o.toUpperCase()]||[]);for(var u="start"===a?0:1,h="horizontal"===e?0:1,r="start"===a?-r:r,c="center"===s,p=0;pd.getHeight()&&(l.position="top",o=!0),r=o?-5-n.height:f+8,i+n.width/2>d.getWidth()?(l.position=["100%",r],e.align="right"):i-n.width/2<0&&(l.position=[0,r],e.align="left"))}))},FB.prototype.updateView=function(t,e,n,i){W(this._features,function(t){t instanceof LB&&t.updateView&&t.updateView(t.model,e,n,i)})},FB.prototype.remove=function(e,n){W(this._features,function(t){t instanceof LB&&t.remove&&t.remove(e,n)}),this.group.removeAll()},FB.prototype.dispose=function(e,n){W(this._features,function(t){t instanceof LB&&t.dispose&&t.dispose(e,n)})},FB.type="toolbox",FB);function FB(){return null!==VB&&VB.apply(this,arguments)||this}Vg.registerClass(GB);var HB,WB=(u(YB,HB=LB),YB.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",o="svg"===e.getZr().painter.getType()?"svg":n.get("type",!0)||"png",r=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||v.browser.ie||v.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var a=atob(r.split(",")[1]),s=a.length,l=new Uint8Array(s);s--;)l[s]=a.charCodeAt(s);var u=new Blob([l]);window.navigator.msSaveOrOpenBlob(u,i+"."+o)}else{var h=n.get("lang"),c='';window.open().document.write(c)}else{var p=document.createElement("a");p.download=i+"."+o,p.target="_blank",p.href=r;var d=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});p.dispatchEvent(d)}},YB.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},YB);function YB(){return null!==HB&&HB.apply(this,arguments)||this}WB.prototype.unusable=!v.canvasSupported,NB("saveAsImage",WB);var XB,UB="__ec_magicType_stack__",ZB=[["line","bar"],["stack"]],jB=(u(qB,XB=LB),qB.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return W(t.get("type"),function(t){e[t]&&(n[t]=e[t])}),n},qB.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},qB.prototype.onclick=function(t,e,u){var h,n,i,o,r,c=this.model,a=c.get(["seriesIndex",u]);KB[u]&&(h={series:[]},W(ZB,function(t){0<=D(t,u)&&W(t,function(t){c.setIconStatus(t,"normal")})}),c.setIconStatus(u,"emphasis"),t.eachComponent({mainType:"series",query:null==a?null:{seriesIndex:a}},function(t){var e=t.subType,n=t.id,i=KB[u](e,n,t,c);i&&(O(i,t.option),h.series.push(i));var o=t.coordinateSystem;if(o&&"cartesian2d"===o.type&&("line"===u||"bar"===u)){var r=o.getAxesByScale("ordinal")[0];if(r){var a=r.dim+"Axis",s=t.getReferringComponents(a,Au).models[0].componentIndex;h[a]=h[a]||[];for(var l=0;l<=s;l++)h[a][s]=h[a][s]||{};h[a][s].boundaryGap="bar"===u}}}),"stack"===u&&(n=h.series,i=t.getLocale(["toolbox","magicType","title","tiled"]),o=t.getLocale(["toolbox","magicType","title"]),r=n&&n[0]&&n[0].stack===UB?_({stack:i},o):A(o)),e.dispatchAction({type:"changeMagicType",currentType:u,newOption:h,newTitle:r,featureName:"magicType"}))},qB);function qB(){return null!==XB&&XB.apply(this,arguments)||this}var KB={line:function(t,e,n,i){if("bar"===t)return _({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return _({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var o=n.get("stack")===UB;if("line"===t||"bar"===t)return i.setIconStatus("stack",o?"normal":"emphasis"),_({id:e,stack:o?"":UB},i.get(["option","stack"])||{},!0)}};mx({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),NB("magicType",jB);var $B=new Array(60).join("-"),JB="\t";function QB(t){var o,r,a,h,e=(o={},r=[],a=[],t.eachRawSeries(function(t){var e,n,i=t.coordinateSystem;!i||"cartesian2d"!==i.type&&"polar"!==i.type||"category"!==(e=i.getBaseAxis()).type?r.push(t):(n=e.dim+"_"+e.index,o[n]||(o[n]={categoryAxis:e,valueAxis:i.getOtherAxis(e),series:[]},a.push({axisDim:e.dim,axisIndex:e.index})),o[n].series.push(t))}),{seriesGroupByCategoryAxis:o,other:r,meta:a});return{value:T([(h=[],W(e.seriesGroupByCategoryAxis,function(t,e){var n=t.categoryAxis,i=t.valueAxis.dim,o=[" "].concat(Y(t.series,function(t){return t.name})),r=[n.model.getCategories()];W(t.series,function(t){r.push(t.getRawData().mapArray(i,function(t){return t}))});for(var a=[o.join(JB)],s=0;st[1]&&t.reverse(),t}function hV(t,e){return Du(t,e,{includeMainTypes:aV})}var cV={grid:function(t,i){var o=t.xAxisModels,r=t.yAxisModels,e=t.gridModels,n=ut(),a={},s={};(o||r||e)&&(W(o,function(t){var e=t.axis.grid.model;n.set(e.id,e),a[e.id]=!0}),W(r,function(t){var e=t.axis.grid.model;n.set(e.id,e),s[e.id]=!0}),W(e,function(t){n.set(t.id,t),a[t.id]=!0,s[t.id]=!0}),n.each(function(t){var e=t.coordinateSystem,n=[];W(e.getCartesians(),function(t,e){(0<=D(o,t.getAxis("x").model)||0<=D(r,t.getAxis("y").model))&&n.push(t)}),i.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:n[0],coordSyses:n,getPanelRect:dV.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,n){W(t.geoModels,function(t){var e=t.coordinateSystem;n.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:e,coordSyses:[e],getPanelRect:dV.geo})})}},pV=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,o=t.gridModel;return!o&&n&&(o=n.axis.grid.model),!o&&i&&(o=i.axis.grid.model),o&&o===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],dV={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Lp(t)),e}},fV={lineX:R(gV,0),lineY:R(gV,1),rect:function(t,e,n){var i=e[rV[t]]([n[0][0],n[1][0]]),o=e[rV[t]]([n[0][1],n[1][1]]),r=[uV([i[0],o[0]]),uV([i[1],o[1]])];return{values:r,xyMinMax:r}},polygon:function(n,i,t){var o=[[1/0,-1/0],[1/0,-1/0]];return{values:Y(t,function(t){var e=i[rV[n]](t);return o[0][0]=Math.min(o[0][0],e[0]),o[1][0]=Math.min(o[1][0],e[1]),o[0][1]=Math.max(o[0][1],e[0]),o[1][1]=Math.max(o[1][1],e[1]),e}),xyMinMax:o}}};function gV(t,e,n,i){var o=n.getAxis(["x","y"][t]),r=uV(Y([0,1],function(t){return e?o.coordToData(o.toLocalCoord(i[t])):o.toGlobalCoord(o.dataToCoord(i[t]))})),a=[];return a[t]=r,a[1-t]=[NaN,NaN],{values:r,xyMinMax:a}}var yV={lineX:R(mV,0),lineY:R(mV,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,n,i){return Y(t,function(t,e){return[t[0]-i[0]*n[e][0],t[1]-i[1]*n[e][1]]})}};function mV(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function vV(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var xV=W,_V=Tu();function bV(t){var e=_V(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}xd.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var wV=["x","y","radius","angle","single"],SV=["cartesian2d","polar","singleAxis"];function MV(t){return t+"Axis"}function IV(t,e){var n,o=ut(),i=[],r=ut();for(t.eachComponent({mainType:"dataZoom",query:e},function(t){r.get(t.uid)||s(t)});n=!1,t.eachComponent("dataZoom",a),n;);function a(t){var i;!r.get(t.uid)&&(i=!1,t.eachTargetAxis(function(t,e){var n=o.get(t);n&&n[e]&&(i=!0)}),i)&&(s(t),n=!0)}function s(t){r.set(t.uid,!0),i.push(t),t.eachTargetAxis(function(t,e){(o.get(t)||o.set(t,[]))[e]=!0})}return i}function TV(t){var a=t.ecModel,s={infoList:[],infoMap:ut()};return t.eachTargetAxis(function(t,e){var n,i,o,r=a.getComponent(MV(t),e);!r||(n=r.getCoordSysModel())&&(i=n.uid,(o=s.infoMap.get(i))||(o={model:n,axisModels:[]},s.infoList.push(o),s.infoMap.set(i,o)),o.axisModels.push(r))}),s}var CV=(DV.prototype.add=function(t){this.indexList.push(t),this.indexMap[t]=!0},DV);function DV(){this.indexList=[],this.indexMap=[]}var AV,kV=(u(LV,AV=xd),LV.prototype.init=function(t,e,n){var i=PV(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},LV.prototype.mergeOption=function(t){var e=PV(t);_(this.option,t,!0),_(this.settledOption,e,!0),this._doInit(e)},LV.prototype._doInit=function(t){var n=this.option;v.canvasSupported||(n.realtime=!1),this._setDefaultThrottle(t),this._updateRangeUse(t);var i=this.settledOption;W([["start","startValue"],["end","endValue"]],function(t,e){"value"===this._rangePropMode[e]&&(n[t[0]]=i[t[0]]=null)},this),this._resetTarget()},LV.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ut();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each(function(t){t.indexList.length&&(this._noTarget=!1)},this)},LV.prototype._fillSpecifiedTargetAxis=function(i){var o=!1;return W(wV,function(t){var e,n=this.getReferringComponents(MV(t),ku);n.specified&&(o=!0,e=new CV,W(n.models,function(t){e.add(t.componentIndex)}),i.set(t,e))},this),o},LV.prototype._fillAutoTargetAxisByOrient=function(r,e){var t,i=this.ecModel,a=!0;function n(t,e){var n,i,o=t[0];o&&((n=new CV).add(o.componentIndex),r.set(e,n),a=!1,"x"!==e&&"y"!==e||(i=o.getReferringComponents("grid",Au).models[0])&&W(t,function(t){o.componentIndex!==t.componentIndex&&i===t.getReferringComponents("grid",Au).models[0]&&n.add(t.componentIndex)}))}a&&(t="vertical"===e?"y":"x",n(i.findComponents({mainType:t+"Axis"}),t)),a&&n(i.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single"),a&&W(wV,function(t){var e,n;a||(e=i.findComponents({mainType:MV(t),filter:function(t){return"category"===t.get("type",!0)}}))[0]&&((n=new CV).add(e[0].componentIndex),r.set(t,n))},this)},LV.prototype._makeAutoOrientByTargetAxis=function(){var e;return this.eachTargetAxis(function(t){e=e||t},this),"y"===e?"vertical":"horizontal"},LV.prototype._setDefaultThrottle=function(t){var e;t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle&&(e=this.ecModel.option,this.option.throttle=e.animation&&0c[1];if(a&&!s&&!l)return!0;a&&(i=!0),s&&(e=!0),l&&(n=!0)}return i&&e&&n}):HV(h,function(t){var e;"empty"===o?n.setData(u=u.map(t,function(t){return(e=t)>=c[0]&&e<=c[1]?t:NaN;var e})):((e={})[t]=c,u.selectRange(e))}),HV(h,function(t){u.setApproximateExtent(c,t)}))}))},XV.prototype._updateMinMaxSpan=function(){var i=this._minMaxSpan={},o=this._dataZoomModel,r=this._dataExtent;HV(["min","max"],function(t){var e=o.get(t+"Span"),n=o.get(t+"ValueSpan");null!=n&&(n=this.getAxisModel().axis.scale.parse(n)),null!=n?e=Ul(r[0]+n,r,[0,100],!0):null!=e&&(n=Ul(e,[0,100],r,!0)-r[0]),i[t+"Span"]=e,i[t+"ValueSpan"]=n},this)},XV.prototype._setAxisModel=function(){var t,e,n=this.getAxisModel(),i=this._percentWindow,o=this._valueWindow;i&&(t=Jl(o,[0,500]),t=Math.min(t,20),e=n.axis.scale.rawExtentInfo,0!==i[0]&&e.setDeterminedMinMax("min",+o[0].toFixed(t)),100!==i[1]&&e.setDeterminedMinMax("max",+o[1].toFixed(t)),e.freeze())},XV);function XV(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}yx(uv.PROCESSOR.FILTER,{getTargetSeries:function(r){function t(o){r.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(t,e){var n=r.getComponent(MV(t),e);o(t,e,n,i)})})}t(function(t,e,n,i){n.__dzAxisProxy=null});var o=[];t(function(t,e,n,i){n.__dzAxisProxy||(n.__dzAxisProxy=new YV(t,e,i,r),o.push(n.__dzAxisProxy))});var e=ut();return W(o,function(t){W(t.getTargetSeriesModels(),function(t){e.set(t.uid,t)})}),e},overallReset:function(t,i){t.eachComponent("dataZoom",function(n){n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).reset(n)}),n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).filterData(n,i)})}),t.eachComponent("dataZoom",function(t){var e,n,i=t.findRepresentativeAxisProxy();i&&(e=i.getDataPercentWindow(),n=i.getDataValueWindow(),t.setCalculatedRange({start:e[0],end:e[1],startValue:n[0],endValue:n[1]}))})}}),mx("dataZoom",function(e,t){W(IV(t,e),function(t){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})});var UV,ZV=W,jV=du+"toolbox-dataZoom_",qV=(u(KV,UV=LB),KV.prototype.render=function(t,e,n,i){var o;this.brushController||(this.brushController=new pL(n.getZr()),this.brushController.on("brush",P(this._onBrush,this)).mount()),function(t,e,n,i,o){var r=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(r="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n.isZoomActive=r,t.setIconStatus("zoom",r?"emphasis":"normal");var a=new sV(eG(t),e,{include:["grid"]}).makePanelOpts(o,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"});n.brushController.setPanels(a).enableBrush(!(!r||!a.length)&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}(t,e,this,i,n),o=e,t.setIconStatus("back",1"}(n.get("backgroundColor"),i,o):"")},dG.prototype.setEnterable=function(t){this._enterable=t},dG.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},dG.prototype.moveTo=function(t,e){var n=this._styleCoord;cG(n,this._zr,this._appendToBody,t,e);var i=this.el.style;i.left=n[0]+"px",i.top=n[1]+"px"},dG.prototype.hide=function(){this.el.style.display="none",this._show=!1},dG.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(P(this.hide,this),t)):this.hide())},dG.prototype.isShow=function(){return this._show},dG.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},dG.prototype.getOuterSize=function(){var t,e=this.el.clientWidth,n=this.el.clientHeight;return document.defaultView&&document.defaultView.getComputedStyle&&(t=document.defaultView.getComputedStyle(this.el))&&(e+=parseInt(t.borderLeftWidth,10)+parseInt(t.borderRightWidth,10),n+=parseInt(t.borderTopWidth,10)+parseInt(t.borderBottomWidth,10)),{width:e,height:n}},dG);function dG(t,e,n){if(this._show=!1,this._styleCoord=[0,0],this._enterable=!0,v.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var o=this._zr=e.getZr(),r=this._appendToBody=n&&n.appendToBody;cG(this._styleCoord,o,r,e.getWidth()/2,e.getHeight()/2),r?document.body.appendChild(i):t.appendChild(i),this._container=t;var a=this;i.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},i.onmousemove=function(t){var e;t=t||window.event,a._enterable||(e=o.handler,Qt(o.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t))},i.onmouseleave=function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}}var fG=(gG.prototype.update=function(){},gG.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},gG.prototype.setContent=function(t,e,n,i,o){this.el&&this._zr.remove(this.el);for(var r={},a=t,s="{marker",l=a.indexOf(s);0<=l;){var u=a.indexOf("|}"),h=a.substr(l+s.length,u-l-s.length);-1'+Up(t)+""+a:"")+e.reverse().join(a)),o.push("
")}})},this),o.pop();var s=o.join(this._newLine+this._newLine),l=e.position;this._showOrMove(r,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(r,l,i[0],i[1],this._tooltipContent,p):this._showTooltipContent(r,s,p,Math.random()+"",i[0],i[1],l,void 0,f)})},wG.prototype._showSeriesItemTooltip=function(t,e,n){var i,o,r,a,s,l,u=this._ecModel,h=ju(e),c=h.seriesIndex,p=u.getSeriesByIndex(c),d=h.dataModel||p,f=h.dataIndex,g=h.dataType,y=d.getData(g),m=SG([y.getItemModel(f),d,p&&(p.coordinateSystem||{}).model,this._tooltipModel]),v=m.get("trigger");null!=v&&"item"!==v||(i=m.get("order"),(o=d.getDataParams(f,g)).marker=Jp({color:o.color,renderMode:this._renderMode}),r=d.formatTooltip(f,!1,g,this._renderMode,i),s=F(r)?(a=r.html,r.markers):(a=r,null),l="item_"+d.name+"_"+f,this._showOrMove(m,function(){this._showTooltipContent(m,a,o,l,t.offsetX,t.offsetY,t.position,t.target,s)}),n({type:"showTip",dataIndexInside:f,dataIndex:y.getRawIndex(f),seriesIndex:c,from:this.uid}))},wG.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;B(i)&&(i={content:i,formatter:i});var o=new mc(i,this._tooltipModel,this._ecModel),r=o.get("content"),a=Math.random()+"";this._showOrMove(o,function(){this._showTooltipContent(o,r,o.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e)}),n({type:"showTip",from:this.uid})},wG.prototype._showTooltipContent=function(n,t,i,e,o,r,a,s,l){var u,h,c,p,d;this._ticket="",n.get("showContent")&&n.get("show")&&(u=this._tooltipContent,h=n.get("formatter"),a=a||n.get("position"),c=t,p=this._getNearestPoint([o,r],i,n.get("trigger")),h&&B(h)?c=Kp(h,i,!0):E(h)&&(d=mG(function(t,e){t===this._ticket&&(u.setContent(e,l,n,p.color,a),this._updatePosition(n,a,o,r,u,i,s))},this),this._ticket=e,c=h(i,e,d)),u.setContent(c,l,n,p.color,a),u.show(n,p.color),this._updatePosition(n,a,o,r,u,i,s))},wG.prototype._getNearestPoint=function(t,e,n){return"axis"===n||N(e)?{color:"html"===this._renderMode?"#fff":"none"}:N(e)?void 0:{color:e.color||e.borderColor}},wG.prototype._updatePosition=function(t,e,n,i,o,r,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u,h,c,p,d,f,g,y,m,v,x=o.getSize(),_=t.get("align"),b=t.get("verticalAlign"),w=a&&a.getBoundingRect().clone();a&&w.applyTransform(a.transform),E(e)&&(e=e([n,i],r,o.el,w,{viewSize:[s,l],contentSize:x.slice()})),N(e)?(n=xG(e[0],s),i=xG(e[1],l)):F(e)?((u=e).width=x[0],u.height=x[1],n=(h=sd(u,{width:s,height:l})).x,i=h.y,b=_=null):(n=B(e)&&a?(c=function(t,e,n){var i=n[0],o=n[1],r=0,a=0,s=e.width,l=e.height;switch(t){case"inside":r=e.x+s/2-i/2,a=e.y+l/2-o/2;break;case"top":r=e.x+s/2-i/2,a=e.y-o-10;break;case"bottom":r=e.x+s/2-i/2,a=e.y+l+10;break;case"left":r=e.x-i-10-5,a=e.y+l/2-o/2;break;case"right":r=e.x+s+10+5,a=e.y+l/2-o/2}return[r,a]}(e,w,x))[0]:(c=function(t,e,n,i,o,r,a){var s=n.getOuterSize(),l=s.width,u=s.height;return null!=r&&(ie[0][1]&&(e[0][1]=r[0]),r[1]e[1][1]&&(e[1][1]=r[1])}return e&&FG(e)}};function FG(t){return new Mi(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var HG,WG=(u(YG,HG=xd),YG.prototype.optionUpdated=function(t,e){var n=this.option;e||kG(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},YG.prototype.setAreas=function(t){t&&(this.areas=Y(t,function(t){return XG(this.option,t)},this))},YG.prototype.setBrushOption=function(t){this.brushOption=XG(this.option,t),this.brushType=this.brushOption.brushType},YG.type="brush",YG.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],YG.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},YG);function YG(){var t=null!==HG&&HG.apply(this,arguments)||this;return t.type=YG.type,t.areas=[],t.brushOption={},t}function XG(t,e){return _({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new mc(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}xd.registerClass(WG);var UG,ZG=(u(jG,UG=Vg),jG.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new pL(e.getZr())).on("brush",P(this._onBrush,this)).mount()},jG.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},jG.prototype.updateTransform=function(t,e,n,i){zG(e),this._updateController(t,e,n,i)},jG.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},jG.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},jG.prototype._updateController=function(t,e,n,i){i&&i.$from===t.id||this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},jG.prototype.dispose=function(){this._brushController.dispose()},jG.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);t.isEnd&&!t.removeOnClick||this.api.dispatchAction({type:"brush",brushId:e,areas:A(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:A(n),$from:e})},jG.type="brush",jG);function jG(){var t=null!==UG&&UG.apply(this,arguments)||this;return t.type=jG.type,t}Vg.registerClass(ZG),mx({type:"brush",event:"brush",update:"updateVisual"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(t){t.setAreas(e.areas)})}),mx({type:"brushSelect",event:"brushSelected",update:"none"},function(){}),mx({type:"brushEnd",event:"brushEnd",update:"none"},function(){});var qG,KG=["rect","polygon","lineX","lineY","keep","clear"];function $G(){return null!==qG&&qG.apply(this,arguments)||this}NB("brush",(u($G,qG=LB),$G.prototype.render=function(e,t,n){var i,o,r;t.eachComponent({mainType:"brush"},function(t){i=t.brushType,o=t.brushOption.brushMode||"single",r=r||!!t.areas.length}),this._brushType=i,this._brushMode=o,W(e.get("type",!0),function(t){e.setIconStatus(t,("keep"===t?"multiple"===o:"clear"===t?r:t===i)?"emphasis":"normal")})},$G.prototype.updateView=function(t,e,n){this.render(t,e,n)},$G.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return W(t.get("type",!0),function(t){e[t]&&(n[t]=e[t])}),n},$G.prototype.onclick=function(t,e,n){var i=this._brushType,o=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===o?"single":"multiple":o}})},$G.getDefaultOption=function(t){return{show:!0,type:KG.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocale(["toolbox","brush","title"])}},$G)),gx(function(t,e){var n,i,o,r,a,s,l,u=fu(t?t.brush:[]);u.length&&(n=[],W(u,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))}),N(i=t&&t.toolbox)&&(i=i[0]),i||(i={feature:{}},t.toolbox=[i]),(a=(r=(o=i.feature||(i.feature={})).brush||(o.brush={})).type||(r.type=[])).push.apply(a,n),l={},W(s=a,function(t){l[t]=1}),s.length=0,W(l,function(t,e){s.push(e)}),e&&!a.length&&a.push.apply(a,TG))});var JG,QG=(u(tF,JG=xd),tF.type="title",tF.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},tF);function tF(){var t=null!==JG&&JG.apply(this,arguments)||this;return t.type=tF.type,t.layoutMode={type:"box",ignoreSize:!0},t}xd.registerClass(QG);var eF,nF=(u(iF,eF=Vg),iF.prototype.render=function(t,e,n){var i,o,r,a,s,l,u,h,c,p,d,f,g,y,m,v,x,_,b;this.group.removeAll(),t.get("show")&&(i=this.group,o=t.getModel("textStyle"),r=t.getModel("subtextStyle"),a=t.get("textAlign"),s=J(t.get("textBaseline"),t.get("textVerticalAlign")),u=(l=new Ts({style:Kh(o,{text:t.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10})).getBoundingRect(),h=t.get("subtext"),c=new Ts({style:Kh(r,{text:h,fill:r.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0),l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",function(){td(p,"_"+t.get("target"))}),d&&c.on("click",function(){td(p,"_"+t.get("subtarget"))}),ju(l).eventData=ju(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c),g=i.getBoundingRect(),(y=t.getBoxLayoutParams()).width=g.width,y.height=g.height,m=sd(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding")),a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?m.x+=m.width:"center"===a&&(m.x+=m.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?m.y+=m.height:"middle"===s&&(m.y+=m.height/2),s=s||"top"),i.x=m.x,i.y=m.y,i.markRedraw(),v={align:a,verticalAlign:s},l.setStyle(v),c.setStyle(v),g=i.getBoundingRect(),x=m.margin,(_=t.getItemStyle(["color","opacity"])).fill=t.get("backgroundColor"),b=new ha({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0}),i.add(b))},iF.type="title",iF);function iF(){var t=null!==eF&&eF.apply(this,arguments)||this;return t.type=iF.type,t}function oF(t){var e=t.itemStyle||(t.itemStyle={}),n=e.emphasis||(e.emphasis={}),i=t.label||t.label||{},o=i.normal||(i.normal={}),r={normal:1,emphasis:1};W(i,function(t,e){r[e]||rF(o,e)||(o[e]=t)}),n.label&&!rF(i,"emphasis")&&(i.emphasis=n.label,delete n.label)}function rF(t,e){return t.hasOwnProperty(e)}Vg.registerClass(nF),xd.registerSubTypeDefaulter("timeline",function(){return"slider"}),mx({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var n=e.getComponent("timeline");return n&&null!=t.currentIndex&&(n.setCurrentIndex(t.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),e.resetOption("timeline",{replaceMerge:n.get("replaceMerge",!0)}),O({currentIndex:n.option.currentIndex},t)}),mx({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var n=e.getComponent("timeline");n&&null!=t.playState&&n.setPlayState(t.playState)});var aF,sF=(u(lF,aF=xd),lF.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},lF.prototype.mergeOption=function(t){aF.prototype.mergeOption.apply(this,arguments),this._initData()},lF.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(e<=t&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},lF.prototype.getCurrentIndex=function(){return this.option.currentIndex},lF.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},lF.prototype.setPlayState=function(t){this.option.autoPlay=!!t},lF.prototype.getPlayState=function(){return!!this.option.autoPlay},lF.prototype._initData=function(){var o,t=this.option,e=t.data||[],n=t.axisType,r=this._names=[];"category"===n?(o=[],W(e,function(t,e){var n,i=mu(t);F(t)?(n=A(t)).value=e:n=e,o.push(n),B(i)||null!=i&&!isNaN(i)||(i=""),r.push(i+"")})):o=e;var i={category:"ordinal",time:"time",value:"number"}[n]||"number";(this._data=new n_([{name:"value",type:i}],this)).initData(o,r)},lF.prototype.getData=function(){return this._data},lF.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},lF.type="timeline",lF.defaultOption={zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},lF);function lF(){var t=null!==aF&&aF.apply(this,arguments)||this;return t.type=lF.type,t.layoutMode="box",t}xd.registerClass(sF);var uF,hF=(u(cF,uF=sF),cF.type="timeline.slider",cF.defaultOption=bc(sF.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),cF);function cF(){var t=null!==uF&&uF.apply(this,arguments)||this;return t.type=cF.type,t}M(hF,eg.prototype),xd.registerClass(hF);var pF,dF=(u(fF,pF=Vg),fF.type="timeline",fF);function fF(){var t=null!==pF&&pF.apply(this,arguments)||this;return t.type=fF.type,t}var gF,yF=(u(mF,gF=iw),mF.prototype.getLabelModel=function(){return this.model.getModel("label")},mF.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},mF);function mF(t,e,n,i){var o=gF.call(this,t,e,n)||this;return o.type=i||"value",o}var vF,xF=Math.PI,_F=Tu(),bF=(u(wF,vF=dF),wF.prototype.init=function(t,e){this.api=e},wF.prototype.render=function(e,t,n){var i,o,r,a;this.model=e,this.api=n,this.ecModel=t,this.group.removeAll(),e.get("show",!0)&&(i=this._layout(e,n),o=this._createGroup("_mainGroup"),r=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,e),e.formatTooltip=function(t){return Up(a.scale.getLabel({value:t}))},W(["AxisLine","AxisTick","Control","CurrentPointer"],function(t){this["_render"+t](i,o,a,e)},this),this._renderAxisLabel(i,r,a,e),this._position(i,e)),this._doPlayStop(),this._updateTicksStatus()},wF.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},wF.prototype.dispose=function(){this._clearTimer()},wF.prototype._layout=function(t,e){var n,i,o,r,a,s=t.get(["label","position"]),l=t.get("orient"),u=(i=e,sd((n=t).getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()},n.get("padding"))),h=null==s||"auto"===s?"horizontal"===l?u.y+u.height/2i[1]&&(n=i[1]),n'+Up(this.name)+"";return null==r&&!s||(l+="html"===i?"":"\n"),s&&(l+='
'+s+""),null!=r&&(l="html"===i?Zp(l,a,!0)+(s?"
":""):l+a),l},AF.prototype.getData=function(){return this._data},AF.prototype.setData=function(t){this._data=t},AF.getMarkerModelFromSeries=function(t,e){return CF(t)[e]},AF.type="marker",AF.dependencies=["series","grid","polar","geo"],AF);function AF(){var t=null!==TF&&TF.apply(this,arguments)||this;return t.type=AF.type,t.createdBySelf=!1,t}M(DF,eg.prototype);var kF,LF=(u(PF,kF=DF),PF.prototype.createMarkerModelFromSeries=function(t,e,n){return new PF(t,e,n)},PF.type="markPoint",PF.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},PF);function PF(){var t=null!==kF&&kF.apply(this,arguments)||this;return t.type=PF.type,t}function NF(t,e,n,i,o,r){var a=[],s=p_(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=VF(e,s,t),u=e.indicesOfNearest(s,l)[0];a[o]=e.get(n,u),a[r]=e.get(s,u);var h=e.get(i,u),c=Kl(e.get(i,u));return 0<=(c=Math.min(c,20))&&(a[r]=+a[r].toFixed(c)),[a,h]}xd.registerClass(LF);var OF={min:R(NF,"min"),max:R(NF,"max"),average:R(NF,"average"),median:R(NF,"median")};function RF(t,e){var n,i=t.getData(),o=t.coordinateSystem;if(e&&(n=e,isNaN(parseFloat(n.x))||isNaN(parseFloat(n.y)))&&!N(e.coord)&&o){var r=o.dimensions,a=EF(e,i,o,t);if((e=A(e)).type&&OF[e.type]&&a.baseAxis&&a.valueAxis){var s=D(r,a.baseAxis.dim),l=D(r,a.valueAxis.dim),u=OF[e.type](i,a.baseDataDim,a.valueDataDim,s,l);e.coord=u[0],e.value=u[1]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],c=0;c<2;c++)OF[h[c]]&&(h[c]=VF(i,i.mapDimension(r[c]),h[c]));e.coord=h}}return e}function EF(t,e,n,i){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var o=0;on[o],d=[-h.x,-h.y];e||(d[i]=s[a]);var f=[0,0],g=[-c.x,-c.y],y=J(t.get("pageButtonGap",!0),t.get("itemGap",!0));p&&("end"===t.get("pageButtonPosition",!0)?g[i]+=n[o]-c[o]:f[i]+=c[o]+y),g[1-i]+=h[r]/2-c[r]/2,s.setPosition(d),l.setPosition(f),u.setPosition(g);var m,v={x:0,y:0};v[o]=p?n[o]:h[o],v[r]=Math.max(h[r],c[r]),v[a]=Math.min(0,c[a]+g[1-i]),l.__rectSize=n[o],p?((m={x:0,y:0})[o]=Math.max(n[o]-c[o]-y,0),m[r]=v[r],l.setClipPath(new ha({shape:m})),l.__rectSize=m[o]):u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&wp(s,{x:x.contentPosition[0],y:x.contentPosition[1]},p?t:null),this._updatePageInfoView(t,x),v},WH.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},WH.prototype._updatePageInfoView=function(i,o){var r=this._controllerGroup;W(["pagePrev","pageNext"],function(t){var e=null!=o[t+"DataIndex"],n=r.childOfName(t);n&&(n.setStyle("fill",e?i.get("pageIconColor",!0):i.get("pageIconInactiveColor",!0)),n.cursor=e?"pointer":"default")});var t=r.childOfName("pageText"),e=i.get("pageFormatter"),n=o.pageIndex,a=null!=n?n+1:0,s=o.pageCount;t&&e&&t.setStyle("text",B(e)?e.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):e({current:a,total:s}))},WH.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,o=t.getOrient().index,r=GH[o],a=FH[o],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=v(u);p.contentPosition[o]=-d.s;for(var f=s+1,g=d,y=d,m=null;f<=h;++f)(!(m=v(l[f]))&&y.e>g.s+i||m&&!x(m,g.s))&&(g=y.i>g.i?y:m)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=m;for(f=s-1,y=g=d,m=null;-1<=f;--f)(m=v(l[f]))&&x(y,m.s)||!(g.i=e&&t.s<=e+i}},WH.prototype._findTargetItemIndex=function(i){return this._showController?(this.getContentGroup().eachChild(function(t,e){var n=t.__legendDataIndex;null==r&&null!=n&&(r=e),n===i&&(o=e)}),null!=o?o:r):0;var o,r},WH.type="legend.scroll",WH);function WH(){var t=null!==BH&&BH.apply(this,arguments)||this;return t.type=WH.type,t.newlineDisabled=!0,t._currentIndex=0,t}Vg.registerClass(HH),mx("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})});var YH,XH=(u(UH,YH=kV),UH.type="dataZoom.slider",UH.layoutMode="box",UH.defaultOption=bc(kV.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),UH);function UH(){var t=null!==YH&&YH.apply(this,arguments)||this;return t.type=UH.type,t}xd.registerClass(XH);var ZH,jH=ha,qH="horizontal",KH="vertical",$H=["line","bar","candlestick","scatter"],JH={easing:"cubicOut",duration:100},QH=(u(tW,ZH=OV),tW.prototype.init=function(t,e){this.api=e,this._onBrush=P(this._onBrush,this),this._onBrushEnd=P(this._onBrushEnd,this)},tW.prototype.render=function(t,e,n,i){if(ZH.prototype.render.apply(this,arguments),ey(this,"_dispatchZoomAction",t.get("throttle"),"fixRate"),this._orient=t.getOrient(),!1!==t.get("show")){if(t.noTarget())return this._clear(),void this.group.removeAll();i&&"dataZoom"===i.type&&i.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},tW.prototype.dispose=function(){this._clear(),ZH.prototype.dispose.apply(this,arguments)},tW.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[$g]&&(t[e]=n[$g]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},tW.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Ur;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},tW.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),o={width:e.getWidth(),height:e.getHeight()},r=this._orient===qH?{right:o.width-i.x-i.width,top:o.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=cd(t.option);W(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=r[t])});var s=sd(a,o);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===KH&&this._size.reverse()},tW.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),o=i&&i.get("inverse"),r=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;r.attr(n!==qH||o?n===qH&&o?{scaleY:a?1:-1,scaleX:-1}:n!==KH||o?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([r]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},tW.prototype._getViewExtent=function(){return[0,this._size[0]]},tW.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new jH({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var o=new jH({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:P(this._onClickPanel,this)}),r=this.api.getZr();i?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",r.on("mousemove",this._onBrush),r.on("mouseup",this._onBrushEnd)):(r.off("mousemove",this._onBrush),r.off("mouseup",this._onBrushEnd)),n.add(o)},tW.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),o=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=o){var r,a=.3*((s=i.getDataExtent(o))[1]-s[0]),s=[s[0]-a,s[1]+a],l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([o],function(t,e){var n,i;0o[0]||r[1]<0||r[1]>o[1]||(n=((e=this._handleEnds)[0]+e[1])/2,i=this._updateInterval("all",r[0]-n),this._updateView(),i&&this._dispatchZoomAction(!1))},tW.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new fi(e,n),this._brushing=!0,this._brushStartTime=+new Date},tW.prototype._onBrushEnd=function(t){var e,n,i,o;this._brushing&&(e=this._displayables.brushRect,this._brushing=!1,e&&(e.attr("ignore",!0),n=e.shape,new Date-this._brushStartTime<200&&Math.abs(n.width)<5||(i=this._getViewExtent(),o=[0,100],this._range=ql([Ul(n.x,i,o,!0),Ul(n.x+n.width,i,o,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1))))},tW.prototype._onBrush=function(t){this._brushing&&(ee(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},tW.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,o=n.brushRect;o||(o=n.brushRect=new jH({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(o)),o.ignore=!1;var r=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(r.x,r.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),o.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},tW.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?JH:null,start:e[0],end:e[1]})},tW.prototype._findCoordRect=function(){var t,e,n,i,o=TV(this.dataZoomModel).infoList;return!e&&o.length&&(e=(t=o[0].model.coordinateSystem).getRect&&t.getRect()),e=e||{x:.2*(n=this.api.getWidth()),y:.2*(i=this.api.getHeight()),width:.6*n,height:.6*i}},tW.type="dataZoom.slider",tW);function tW(){var t=null!==ZH&&ZH.apply(this,arguments)||this;return t.type=tW.type,t._displayables={},t}function eW(t){return"vertical"===t?"ns-resize":"ew-resize"}Vg.registerClass(QH);var nW,iW=(u(oW,nW=kV),oW.type="dataZoom.inside",oW.defaultOption=bc(kV.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),oW);function oW(){var t=null!==nW&&nW.apply(this,arguments)||this;return t.type=oW.type,t}xd.registerClass(iW);var rW=Tu();function aW(t,e){var n;e&&(t.removeKey(e.model.uid),(n=e.controller)&&n.dispose())}function sW(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function lW(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}yx(uv.PROCESSOR.FILTER,function(t,l){var e=rW(l),u=e.coordSysRecordMap||(e.coordSysRecordMap=ut());u.each(function(t){t.dataZoomInfoMap=null}),t.eachComponent({mainType:"dataZoom",subType:"inside"},function(s){W(TV(s).infoList,function(t){var e,n,a,i,o=t.model.uid,r=u.get(o)||u.set(o,(e=l,n=t.model,a={model:n,containsPoint:R(lW,n),dispatchAction:R(sW,e),dataZoomInfoMap:null,controller:null},i=a.controller=new FT(e.getZr()),W(["pan","zoom","scrollMove"],function(r){i.on(r,function(i){var o=[];a.dataZoomInfoMap.each(function(t){var e,n;i.isAvailableBehavior(t.model.option)&&(n=(e=(t.getRange||{})[r])&&e(t.dzReferCoordSysInfo,a.model.mainType,a.controller,i),!t.model.get("disabled",!0)&&n&&o.push({dataZoomId:t.model.id,start:n[0],end:n[1]}))}),o.length&&a.dispatchAction(o)})}),a));(r.dataZoomInfoMap||(r.dataZoomInfoMap=ut())).set(s.uid,{dzReferCoordSysInfo:t,model:s,getRange:null})})}),u.each(function(t){var e,n,i,o,r,a,s=t.controller,l=t.dataZoomInfoMap;!l||null!=(n=l.keys()[0])&&(e=l.get(n)),e?(r={type_true:2,type_move:1,type_false:0,type_undefined:-1},a=!0,l.each(function(t){var e=t.model,n=!e.get("disabled",!0)&&(!e.get("zoomLock",!0)||"move");r["type_"+o]"],N(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return B(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):E(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(r,20))}},kW.prototype.resetExtent=function(){var t=this.option,e=CW([t.min,t.max]);this._dataExtent=e},kW.prototype.getDataDimension=function(t){var e=this.option.dimension,n=t.dimensions;if(null!=e||n.length){if(null!=e)return t.getDimension(e);for(var i=t.dimensions,o=i.length-1;0<=o;o--){var r=i[o];if(!t.getDimensionInfo(r).isCalculationCoord)return r}}},kW.prototype.getExtent=function(){return this._dataExtent.slice()},kW.prototype.completeVisualOption=function(){var e=this.ecModel,n=this.option,t={inRange:n.inRange,outOfRange:n.outOfRange},i=n.target||(n.target={}),o=n.controller||(n.controller={});_(i,t),_(o,t);var u=this.isCategory();function r(t){IW(n.color)&&!t.inRange&&(t.inRange={color:n.color.slice().reverse()}),t.inRange=t.inRange||{color:e.get("gradientColor")}}r.call(this,i),r.call(this,o),function(t,e,n){var i=t[e],o=t[n];i&&!o&&(o=t[n]={},TW(i,function(t,e){var n;!CD.isValidType(e)||null!=(n=bW(e,"inactive",u))&&(o[e]=n,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}))}.call(this,i,"inRange","outOfRange"),function(r){var a=(r.inRange||{}).symbol||(r.outOfRange||{}).symbol,s=(r.inRange||{}).symbolSize||(r.outOfRange||{}).symbolSize,l=this.get("inactiveColor");TW(this.stateList,function(t){var e=this.itemSize,n=r[t];null==(n=n||(r[t]={color:u?l:[l]})).symbol&&(n.symbol=a&&A(a)||(u?"roundRect":["roundRect"])),null==n.symbolSize&&(n.symbolSize=s&&A(s)||(u?e[0]:[e[0],e[0]])),n.symbol=SW(n.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var i,o=n.symbolSize;null!=o&&(i=-1/0,MW(o,function(t){ie[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},OW.prototype.completeVisualOption=function(){LW.prototype.completeVisualOption.apply(this,arguments),W(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)},this)},OW.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},OW.prototype.getSelected=function(){var t=this.getExtent(),e=ql((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=n[1]||t<=e[1])?"inRange":"outOfRange"},OW.prototype.findTargetDataIndices=function(i){var o=[];return this.eachTargetSeries(function(t){var n=[],e=t.getData();e.each(this.getDataDimension(e),function(t,e){i[0]<=t&&t<=i[1]&&n.push(e)},this),o.push({seriesId:t.id,dataIndex:n})},this),o},OW.prototype.getVisualMeta=function(n){var t=RW(0,0,this.getExtent()),e=RW(0,0,this.option.range.slice()),i=[];function o(t,e){i.push({value:t,color:n(t,e)})}for(var r=0,a=0,s=e.length,l=t.length;at[1])break;n.push({color:this.getControllerVisual(r,"color",e),offset:o/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},jW.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},jW.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Ur("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},jW.prototype._updateHandle=function(r,a){var s,l,u,h,c,p;this._useHandle&&(s=this._shapes,l=this.visualMapModel,u=s.handleThumbs,h=s.handleLabels,c=l.itemSize,p=l.getExtent(),YW([0,1],function(t){var e=u[t];e.setStyle("fill",a.handlesColor[t]),e.y=r[t];var n=WW(r[t],[0,c[1]],p,!0),i=this.getControllerVisual(n,"symbolSize");e.scaleX=e.scaleY=i/c[0],e.x=c[0]-i/2;var o=Pp(s.handleLabelPoints[t],Lp(e,this.group));h[t].setStyle({x:o[0],y:o[1],text:l.formatValueText(this._dataInterval[t]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",s.mainGroup):"center"})},this))},jW.prototype._showIndicator=function(t,e,n,i){var o=this.visualMapModel,r=o.getExtent(),a=o.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=WW(t,r,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=Pp(l.indicatorLabelPoint,Lp(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var m=this._applyTransform("left",l.mainGroup),v="horizontal"===this._orient;y.setStyle({text:(n||"")+o.formatValueText(e),verticalAlign:v?m:"middle",align:v?"center":m});var x,_={x:d,y:p,style:{fill:h}},b={style:{x:g[0],y:g[1]}};o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator?(x={duration:100,easing:"cubicInOut",additive:!0},u.x=f.x,u.y=f.y,u.animateTo(_,x),y.animateTo(b,x)):(u.attr(_),y.attr(b)),this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;S ",o):this._showIndicator(a,a,"≈ ",o)),l=this._hoverLinkDataIndices,u=[],(e||KW(f))&&(u=this._hoverLinkDataIndices=f.findTargetDataIndices(s)),c=u,d={},y(l||[],p={}),y(c||[],d,p),h=[m(p),m(d)],this._dispatchHighDown("downplay",FW(h[0],f)),this._dispatchHighDown("highlight",FW(h[1],f)))},jW.prototype._hoverLinkFromSeriesMouseOver=function(t){var e,n,i,o,r=t.target,a=this.visualMapModel;r&&null!=ju(r).dataIndex&&(e=ju(r),n=this.ecModel.getSeriesByIndex(e.seriesIndex),a.isTargetSeries(n)&&(o=(i=n.getData(e.dataType)).get(a.getDataDimension(i),e.dataIndex),isNaN(o)||this._showIndicator(o,o)))},jW.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;nn&&i([n,e[0]],"outOfRange"),i(e.slice()),n=e[1])},this),{stops:r,outerColors:a}}function i(t,e){var n=s.getRepresentValue({interval:t});e=e||s.getValueState(n);var i=o(n,e);t[0]===-1/0?a[0]=i:t[1]===1/0?a[1]=i:r.push({value:t[0],color:i},{value:t[1],color:i})}},tY.type="visualMap.piecewise",tY.defaultOption=bc(AW.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),tY);function tY(){var t=null!==JW&&JW.apply(this,arguments)||this;return t.type=tY.type,t._pieceList=[],t}var eY={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),o=e.splitNumber,o=Math.max(parseInt(o,10),1);e.splitNumber=o;for(var r=(i[1]-i[0])/o;+r.toFixed(n)!==r&&n<5;)n++;e.precision=n,r=+r.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)},this)}};function nY(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}xd.registerClass(QW);var iY,oY=(u(rY,iY=zW),rY.prototype.doRender=function(){var r=this.group;r.removeAll();var a=this.visualMapModel,s=a.get("textGap"),t=a.textStyleModel,l=t.getFont(),u=t.getTextColor(),h=this._getItemAlign(),c=a.itemSize,e=this._getViewData(),n=e.endsText,p=$(a.get("showLabel",!0),!n);n&&this._renderEndsText(r,n[0],c,p,h),W(e.viewPieceList,function(t){var e=t.piece,n=new Ur;n.onclick=P(this._onItemClick,this,e),this._enableHoverLink(n,t.indexInModelPieceList);var i,o=a.getRepresentValue(e);this._createItemSymbol(n,o,[0,0,c[0],c[1]]),p&&(i=this.visualMapModel.getValueState(o),n.add(new Ts({style:{x:"right"===h?-s:c[0]+s,y:c[1]/2,text:e.text,verticalAlign:"middle",align:h,font:l,fill:u,opacity:"outOfRange"===i?.5:1}}))),r.add(n)},this),n&&this._renderEndsText(r,n[1],c,p,h),ad(a.get("orient"),r,a.get("itemGap")),this.renderBackground(r),this.positionGroup(r)},rY.prototype._enableHoverLink=function(t,n){var i=this;t.on("mouseover",function(){return e("highlight")}).on("mouseout",function(){return e("downplay")});var e=function(t){var e=i.visualMapModel;e.option.hoverLink&&i.api.dispatchAction({type:t,batch:FW(e.findTargetDataIndices(n),e)})}},rY.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return GW(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},rY.prototype._renderEndsText=function(t,e,n,i,o){var r,a;e&&(r=new Ur,a=this.visualMapModel.textStyleModel,r.add(new Ts({style:{x:i?"right"===o?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?o:"center",text:e,font:a.getFont(),fill:a.getTextColor()}})),t.add(r))},rY.prototype._getViewData=function(){var t=this.visualMapModel,e=Y(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),n=t.get("text"),i=t.get("orient"),o=t.get("inverse");return("horizontal"===i?o:!o)?e.reverse():n=n&&n.slice().reverse(),{viewPieceList:e,endsText:n}},rY.prototype._createItemSymbol=function(t,e,n){t.add(zb(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},rY.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=A(n.selected),o=e.getSelectedMapKey(t);"single"===n.selectedMode?(i[o]=!0,W(i,function(t,e){i[e]=e===o})):i[o]=!i[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})},rY.type="visualMap.piecewise",rY);function rY(){var t=null!==iY&&iY.apply(this,arguments)||this;return t.type=rY.type,t}function aY(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}Vg.registerClass(oY),gx(yW);var sY=ir.CMD,lY="none",uY=Math.round,hY=Math.sin,cY=Math.cos,pY=Math.PI,dY=2*Math.PI,fY=180/pY,gY=1e-4;function yY(t){return uY(1e4*t)/1e4}function mY(t){return t=c&&p<=e+1){for(var n=[],i=0;i=c&&p<=r+1)return function(t){for(var e=0,n=t.length,i=0,o=0;e\n\r<"))},ZY)),t.Axis=iw,t.List=n_,t.Model=mc,t.PRIORITY=uv,t.color=un,t.connect=function(e){var t;return N(e)&&(t=e,e=null,av(t,function(t){null!=t.group&&(e=t.group)}),e=e||"g_"+ux++,av(t,function(t){t.group=e})),sx[e]=!0,e},t.dataTool={},t.dependencies={zrender:"5.0.0-alpha.1"},t.disConnect=cx,t.disconnect=px,t.dispose=function(t){"string"==typeof t?t=ax[t]:t instanceof Wv||(t=dx(t)),t instanceof Wv&&!t.isDisposed()&&t.dispose()},t.env=v,t.extendChartView=function(t){return Yg.extend(t)},t.extendComponentModel=Mx,t.extendComponentView=Ix,t.extendSeriesModel=function(t){return kg.extend(t)},t.format=ed,t.getCoordinateSystemDimensions=function(t){var e=hf.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=dx,t.getInstanceById=function(t){return ax[t]},t.getMap=function(t){var e=Hy(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=lw,t.helper=Vb,t.init=function(t,e,n){var i=dx(t);if(i)return i;var o=new Wv(t,e,n);return o.id="ec_"+lx++,ax[o.id]=o,Pu(t,hx,o.id),Bv(o),o},t.matrix=oi,t.number=cu,t.parseGeoJSON=Ub,t.parseGeoJson=aw,t.registerAction=mx,t.registerCoordinateSystem=vx,t.registerLayout=xx,t.registerLoading=Sx,t.registerLocale=Dc,t.registerMap=function(t,e,n){Fy(t,e,n)},t.registerPostUpdate=function(t){nx.push(t)},t.registerPreprocessor=gx,t.registerProcessor=yx,t.registerTheme=fx,t.registerTransform=Tx,t.registerVisual=_x,t.setCanvasCreator=function(t){g("createCanvas",t)},t.throttle=ty,t.time=sp,t.util=sw,t.vector=Ot,t.version="5.0.0-alpha.1",t.zrender=Yl,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).echarts={})}(this,function(t){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function u(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var e=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.weChat=!1},x=new function(){this.browser=new e,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(x.wxa=!0,x.canvasSupported=!0,x.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(x.worker=!0,x.canvasSupported=!0):"undefined"==typeof navigator?(x.node=!0,x.canvasSupported=!0,x.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),o=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),r=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);o&&(n.ie=!0,n.version=o[1]);r&&(n.edge=!0,n.version=r[1]);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&11<=+n.version),e.domSupported="undefined"!=typeof document}(navigator.userAgent,x);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},h=Object.prototype.toString,n=Array.prototype,a=n.forEach,c=n.filter,o=n.slice,p=n.map,r=function(){}.constructor,d=r?r.prototype:null,f={};function g(t,e){f[t]=e}var y=2311;function m(){return y++}function v(){for(var t=[],e=0;e>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",o[u]+":0",i[1-l]+":auto",o[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,r),r,o);if(a)return a(t,n,i),!0}return!1}function Ut(t){return"CANVAS"===t.nodeName.toUpperCase()}var Zt="undefined"!=typeof window&&!!window.addEventListener,jt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,qt=[];function Kt(t,e,n,i){return n=n||{},i||!x.canvasSupported?$t(t,e,n):x.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):$t(t,e,n),n}function $t(t,e,n){if(x.domSupported&&t.getBoundingClientRect){var i=e.clientX,o=e.clientY;if(Ut(t)){var r=t.getBoundingClientRect();return n.zrX=i-r.left,void(n.zrY=o-r.top)}if(Yt(qt,t,i,o))return n.zrX=qt[0],void(n.zrY=qt[1])}n.zrX=n.zrY=0}function Jt(t){return t||window.event}function Qt(t,e,n){if(null!=(e=Jt(e)).zrX)return e;var i,o,r=e.type;r&&0<=r.indexOf("touch")?(i="touchend"!==r?e.targetTouches[0]:e.changedTouches[0])&&Kt(t,i,e,n):(Kt(t,e,e,n),o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;return null!=n&&null!=i?3*(0!==i?Math.abs(i):Math.abs(n))*(0i.getWidth()||n<0||n>i.getHeight()}W(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(a){ge.prototype[a]=function(t){var e,n,i=t.zrX,o=t.zrY,r=me(this,i,o);if("mouseup"===a&&r||(n=(e=this.findHover(i,o)).target),"mousedown"===a)this._downEl=n,this._downPoint=[t.zrX,t.zrY],this._upEl=n;else if("mouseup"===a)this._upEl=n;else if("click"===a){if(this._downEl!==this._upEl||!this._downPoint||4>>1])<0?l=r:s=1+r;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);r(t,e[n+h])<0?l=h:a=h+1}return l}function Me(f,g){var a,s,y=xe,l=0,m=(f.length,[]);function e(t){var e=a[t],n=s[t],i=a[t+1],o=s[t+1];s[t]=n+o,t===l-3&&(a[t+1]=a[t+2],s[t+1]=s[t+2]),l--;var r=Se(f[i],f,e,n,0,g);e+=r,0!=(n-=r)&&0!==(o=we(f[e+n-1],f,i,o,o-1,g))&&(n<=o?function(t,e,n,i){var o=0;for(o=0;os[t+1])break;e(t)}},forceMergeRuns:function(){for(;1>=1;return t+e}(o);do{(r=_e(t,n,i,e))=this._maxSize&&0>4|(3840&i)>>8,240&i|(240&i)>>4,15&i|(15&i)<<4,1),$e(t,e),e):void Ze(e,0,0,0,1):7===o.length?0<=(i=parseInt(o.substr(1),16))&&i<=16777215?(Ze(e,(16711680&i)>>16,(65280&i)>>8,255&i,1),$e(t,e),e):void Ze(e,0,0,0,1):void 0;var r=o.indexOf("("),a=o.indexOf(")");if(-1!==r&&a+1===o.length){var s=o.substr(0,r),l=o.substr(r+1,a-(r+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Ze(e,0,0,0,1);u=Xe(l.pop());case"rgb":return 3!==l.length?void Ze(e,0,0,0,1):(Ze(e,We(l[0]),We(l[1]),We(l[2]),u),$e(t,e),e);case"hsla":return 4!==l.length?void Ze(e,0,0,0,1):(l[3]=Xe(l[3]),Qe(l,e),$e(t,e),e);case"hsl":return 3!==l.length?void Ze(e,0,0,0,1):(Qe(l,e),$e(t,e),e);default:return}}Ze(e,0,0,0,1)}}function Qe(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Xe(t[1]),o=Xe(t[2]),r=o<=.5?o*(i+1):o+i-o*i,a=2*o-r;return Ze(e=e||[],Ge(255*Ye(a,r,n+1/3)),Ge(255*Ye(a,r,n)),Ge(255*Ye(a,r,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function tn(t,e){var n=Je(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,255=this.maxTime?this.maxTime=t:this._needsSort=!0;var n,i=this.keyframes,o=i.length;if(this.interpolable)if(L(e)){var r,a=L((n=e)&&n[0])?2:1;if(0e);u++);u=Math.min(u-1,r-2)}var h,c,p,d,f,g,y,m,v,x,_=o[u+1],b=o[u];b&&_&&(this._lastFrame=u,this._lastFramePercent=e,0!=(h=_.percent-b.percent)&&(c=(e-b.percent)/h,p=n?this._additiveValue:l?_n:t[a],(0=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height},Ii.prototype.clone=function(){return new Ii(this.x,this.y,this.width,this.height)},Ii.prototype.copy=function(t){Ii.copy(this,t)},Ii.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},Ii.create=function(t){return new Ii(t.x,t.y,t.width,t.height)},Ii.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},Ii.applyTransform=function(t,e,n){if(n){if(n[1]<1e-5&&-1e-5this._ux||tr(e-this._yi)>this._uy||this._len<5;return this.addData(Ho.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},or.prototype.bezierCurveTo=function(t,e,n,i,o,r){return this.addData(Ho.C,t,e,n,i,o,r),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,o,r):this._ctx.bezierCurveTo(t,e,n,i,o,r)),this._xi=o,this._yi=r,this},or.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(Ho.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},or.prototype.arc=function(t,e,n,i,o,r){var a=o-i;return o=i+a,this.addData(Ho.A,t,e,n,n,i,a,0,r?0:1),this._ctx&&this._ctx.arc(t,e,n,i,o,r),this._xi=$o(o)*n+t,this._yi=Jo(o)*n+e,this},or.prototype.arcTo=function(t,e,n,i,o){return this._ctx&&this._ctx.arcTo(t,e,n,i,o),this},or.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Ho.R,t,e,n,i),this},or.prototype.closePath=function(){this.addData(Ho.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},or.prototype.fill=function(t){t&&t.fill(),this.toStatic()},or.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},or.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;hn||tr(g)>i||c===e-1)&&(d=Math.sqrt(D*D+g*g),o=f,r=v);break;case Ho.C:var y=t[c++],m=t[c++],f=t[c++],v=t[c++],x=t[c++],_=t[c++],d=function(t,e,n,i,o,r,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=xo(t,n,o,a,f),y=xo(e,i,r,s,f),m=g-u,v=y-h;c+=Math.sqrt(m*m+v*v),u=g,h=y}return c}(o,r,y,m,f,v,x,_,10),o=x,r=_;break;case Ho.Q:d=function(t,e,n,i,o,r,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Mo(t,n,o,p),f=Mo(e,i,r,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}(o,r,y=t[c++],m=t[c++],f=t[c++],v=t[c++],10),o=f,r=v;break;case Ho.A:var b=t[c++],w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=T+I;c+=1,t[c++],1===c&&(a=$o(I)*S+b,s=Jo(I)*M+w),d=Ko(S,M)*qo(er,Math.abs(T)),o=$o(C)*S+b,r=Jo(C)*M+w;break;case Ho.R:a=o=t[c++],s=r=t[c++],d=2*t[c++]+2*t[c++];break;case Ho.Z:var D=a-o,g=s-r;d=Math.sqrt(D*D+g*g),o=a,r=s}0<=d&&(u+=l[h++]=d)}return this._pathLen=u},or.prototype.rebuildPath=function(t,e){var n,i,o,r,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var m=0;mc||tr(s-r)>p||m===d-1){if(f){if(u=fr[i=0]+t&&a<=fr[1]+t?c:0}(o=r?(u=i,i=lr(o),lr(u)):(i=lr(i),lr(o)))Math.PI/2&&f<1.5*Math.PI&&(c=-c),p+=c))}return p}(f,g,m,v,v+x,_,S,o);l=Math.cos(v+x)*y+f,u=Math.sin(v+x)*m+g;break;case cr.R:h=l=t[p++],c=u=t[p++];if(b=h+t[p++],w=c+t[p++],n){if(rr(h,c,b,c,e,i,o)||rr(b,c,b,w,e,i,o)||rr(b,w,h,w,e,i,o)||rr(h,w,h,c,e,i,o))return!0}else s+=hr(b,c,b,w,i,o),s+=hr(h,w,h,c,i,o);break;case cr.Z:if(n){if(rr(l,u,h,c,e,i,o))return!0}else s+=hr(l,u,h,c,i,o);l=h,u=c}}return n||(r=u,a=c,Math.abs(r-a)=e.maxIterations){t+=e.ellipsis;break}var a=0===r?function(t,e,n,i){for(var o=0,r=0,a=t.length;rr){0<_?(m.tokens=m.tokens.slice(0,_),n.lines=n.lines.slice(0,y+1)):n.lines=n.lines.slice(0,y);break t}var T,C,D,A=b.width,k=null==A||"auto"===A;"string"==typeof A&&"%"===A.charAt(A.length-1)?(L.percentWidth=A,h.push(L),L.contentWidth=Li(L.text,M)):(!k||(C=(T=b.backgroundColor)&&T.image)&&cs(C=function(t){if("string"!=typeof t)return t;var e=ls.get(t);return e&&e.image}(C))&&(L.width=Math.max(L.width,C.width*I/C.height)),null!=(D=f&&null!=o?o-x:null)&&Di.width&&(r=e.split("\n"),g=!0),i.accumWidth=u):(h=ws(e,f,i.width,i.breakAll,i.accumWidth),i.accumWidth=h.accumWidth+l,a=h.linesWidths,r=h.lines)):r=e.split("\n");for(var y=0;yi.len()&&(u=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/o*r+n[0]}function Zl(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?t.replace(/^\s+|\s+$/g,"").match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function jl(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function ql(t){return t.sort(function(t,e){return t-e}),t}function Kl(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function $l(t){var e=t.toString(),n=e.indexOf("e");if(0h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/o}var tu=9007199254740991;function eu(t){var e=2*Math.PI;return(t%e+e)%e}function nu(t){return-YlMath.abs(r[1])?0"'])/g,Gp={"&":"&","<":"<",">":">",'"':""","'":"'"};function Hp(t){return null==t?"":(t+"").replace(Fp,function(t,e){return Gp[e]})}function Wp(t,e,n){return(n?t:''+Hp(t)+"")+(e?'':"")+Hp(e)+(e?"":"")}function Xp(t,e){return"{"+t+(null==e?"":e)+"}"}var Yp=["a","b","c","d","e","f","g"];function Up(t,e,n){E(e)||(e=[e]);var i=e.length;if(!i)return"";if(e[0].axisType&&0<=e[0].axisType.indexOf("time"))return Hc(ou(e[0].data[e[0].axisIndex]),t);for(var o=e[0].$vars||[],r=0;r':'':{renderMode:o,content:"{marker"+r+"|} ",style:{color:i}}:""}function qp(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=ou(e),o=n?"UTC":"",r=i["get"+o+"FullYear"](),a=i["get"+o+"Month"]()+1,s=i["get"+o+"Date"](),l=i["get"+o+"Hours"](),u=i["get"+o+"Minutes"](),h=i["get"+o+"Seconds"](),c=i["get"+o+"Milliseconds"]();return t=t.replace("MM",Fc(a,2)).replace("M",a).replace("yyyy",r).replace("yy",r%100+"").replace("dd",Fc(s,2)).replace("d",s).replace("hh",Fc(l,2)).replace("h",l).replace("mm",Fc(u,2)).replace("m",u).replace("ss",Fc(h,2)).replace("s",h).replace("SSS",Fc(c,3))}function Kp(t,e){var n;"_blank"===e||"blank"===e?((n=window.open()).opener=null,n.location.href=t):window.open(t,e)}var $p=Object.freeze({__proto__:null,addCommas:zp,toCamelCase:Bp,normalizeCssArray:Vp,encodeHTML:Hp,concatTooltipHtml:Wp,formatTpl:Up,formatTplSimple:Zp,getTooltipMarker:jp,formatTime:qp,capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},windowOpen:Kp,truncateText:ds,getTextRect:function(t,e,n,i,o,r,a,s){return Yh(),new Ts({style:{text:t,font:e,align:n,verticalAlign:i,padding:o,rich:r,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),Jp=W,Qp=["left","right","top","bottom","width","height"],td=[["width","left","right"],["height","top","bottom"]];function ed(u,h,c,p,d){var f=0,g=0;null==p&&(p=1/0),null==d&&(d=1/0);var y=0;h.eachChild(function(t,e){var n,i,o,r,a=t.getBoundingRect(),s=h.childAt(e+1),l=s&&s.getBoundingRect();y="horizontal"===u?(n=a.width+(l?-l.x+a.x:0),p<(i=f+n)||t.newline?(f=0,i=n,g+=y+c,a.height):Math.max(y,a.height)):(o=a.height+(l?-l.y+a.y:0),d<(r=g+o)||t.newline?(f+=y+c,g=0,r=o,a.width):Math.max(y,a.width)),t.newline||(t.x=f,t.y=g,t.markRedraw(),"horizontal"===u?f=i+c:g=r+c)})}var nd=ed;R(ed,"vertical"),R(ed,"horizontal");function id(t,e,n){n=Vp(n||0);var i=e.width,o=e.height,r=Zl(t.left,i),a=Zl(t.top,o),s=Zl(t.right,i),l=Zl(t.bottom,o),u=Zl(t.width,i),h=Zl(t.height,o),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-r),isNaN(h)&&(h=o-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(i/oe)return t[i];return t[n-1]}(s,n):a;if((l=l||a)&&l.length){var u=l[o];return t&&(r[t]=u),i.colorIdx=(o+1)%l.length,u}},wd);function wd(){}var Sd=ut(["tooltip","label","itemName","itemId","seriesName"]),Md="original",Id="arrayRows",Td="objectRows",Cd="keyedColumns",Dd="typedArray",Ad="unknown",kd="column",Ld="row",Pd=(Nd.seriesDataToSource=function(t){return new Nd({data:t,sourceFormat:Y(t)?Dd:Md})},Nd);function Nd(t){this.data=t.data||(t.sourceFormat===Cd?{}:[]),this.sourceFormat=t.sourceFormat||Ad,this.seriesLayoutBy=t.seriesLayoutBy||kd,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectCount=t.dimensionsDetectCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption}var Od={Must:1,Might:2,Not:3},Rd=Cu();function Ed(t,e,n,i){var o=function(t,e,n,i,o){var r,a;if(!t)return{dimensionsDefine:Vd(o),startIndex:a,dimensionsDetectCount:r};{var s,l;e===Id?(s=t,"auto"===i||null==i?Fd(function(t){null!=t&&"-"!==t&&(B(t)?null==a&&(a=1):a=0)},n,s,10):a=F(i)?i:i?1:0,o||1!==a||(o=[],Fd(function(t,e){o[e]=null!=t?t+"":""},n,s,1/0)),r=o?o.length:n===Ld?s.length:s[0]?s[0].length:null):e===Td?o=o||function(t){var e,n=0;for(;n'+r+Hp(s.displayName||"-")+"":"")+''+Hp("ordinal"===n?t+"":"time"===n?h?"":qp("yyyy/MM/dd hh:mm:ss",t):zp(t))+"")&&u.push('
'+a+"
"),d&&(f[i]=y,++g))}r.length?W(r,function(t){e(qf(m,o,t),t)}):W(t,e);var n=l&&d?"\n":"",i=n+u.join(n||"");return{renderMode:c,content:i,style:f}}(a):n(i?qf(m,o,r[0]):s?a[0]:a),v=d?u.content:1"+u.content+"":''+u.content+"",x=p.seriesIndex+"at"+g,_=jp({color:y,type:"item",renderMode:c,markerId:x});f[x]=y,++g;var b=m.getName(o),w=this.name;return Su(this)||(w=""),w=w?Hp(w)+(h?" ":e):"",y=B(_)?_:_.content,{html:d?h?""+y+w+": "+v:w+(w?"\n":"")+y+(b?Hp(b)+": "+v:v):(w=w?h?''+w+"":'
'+w+"
":"",h?'
'+y+w+v+"
":w+'
'+y+(b?''+Hp(b)+""+v:v)+"
"),markers:f}},Eg.prototype.isAnimationEnabled=function(){if(x.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},Eg.prototype.restoreData=function(){this.dataTask.dirty()},Eg.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return bd.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},Eg.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},Eg.prototype.getProgressive=function(){return this.get("progressive")},Eg.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},Eg.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},Eg.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),o=0;oe.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Gg(e,n){W(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,R(Hg,n))})}function Hg(t){var e=Wg(t);e&&e.setOutputEnd(this.count())}function Wg(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i,o=n.currentTask;return!o||(i=o.agentStubMap)&&(o=i.get(t.uid)),o}}M(Rg,$f),M(Rg,bd),Fu(Rg,gd);var Xg=(Yg.prototype.init=function(t,e){},Yg.prototype.render=function(t,e,n,i){},Yg.prototype.dispose=function(t,e){},Yg.prototype.updateView=function(t,e,n,i){},Yg.prototype.updateLayout=function(t,e,n,i){},Yg.prototype.updateVisual=function(t,e,n,i){},Yg.prototype.blurSeries=function(t,e){},Yg);function Yg(){this.group=new Ur,this.uid=bc("viewComponent")}function Ug(){var s=Cu();return function(t){var e=s(t),n=t.pipelineContext,i=e.large,o=e.progressiveRender,r=e.large=n&&n.large,a=e.progressiveRender=n&&n.progressiveRender;return!!(i^r||o^a)&&"reset"}}Vu(Xg),Xu(Xg,{registerWhenExtend:!0});var Zg=Cu(),jg=Ug(),qg=(Kg.prototype.init=function(t,e){},Kg.prototype.render=function(t,e,n,i){},Kg.prototype.highlight=function(t,e,n,i){Jg(t.getData(),i,"emphasis")},Kg.prototype.downplay=function(t,e,n,i){Jg(t.getData(),i,"normal")},Kg.prototype.remove=function(t,e){this.group.removeAll()},Kg.prototype.dispose=function(t,e){},Kg.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},Kg.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},Kg.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},Kg.markUpdateMethod=function(t,e){Zg(t).updateMethod=e},Kg.protoInitialize=void(Kg.prototype.type="chart"),Kg);function Kg(){this.group=new Ur,this.uid=bc("viewChart"),this.renderTask=Qf({plan:Qg,reset:ty}),this.renderTask.context={view:this}}function $g(t,e,n){t&&("emphasis"===e?Ch:Dh)(t,n)}function Jg(e,t,n){var i,o,r=Tu(e,t),a=t&&null!=t.highlightKey?(i=t.highlightKey,null==(o=$u[i])&&Ku<=32&&(o=$u[i]=Ku++),o):null;null!=r?W(gu(r),function(t){$g(e.getItemGraphicEl(t),n,a)}):e.eachItemGraphicEl(function(t){$g(t,n,a)})}function Qg(t){return jg(t.model)}function ty(t){var e=t.model,n=t.ecModel,i=t.api,o=t.payload,r=e.pipelineContext.progressiveRender,a=t.view,s=o&&Zg(o).updateMethod,l=r?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,o),ey[l]}Vu(qg),Xu(qg,{registerWhenExtend:!0});var ey={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},ny="\0__throttleOriginMethod",iy="\0__throttleRate",oy="\0__throttleType";function ry(t,o,r){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}o=o||0;function e(){for(var t=[],e=0;ed?n+=y(m("data.partialData"),{displayCnt:d}):n+=m("data.allData");for(var a,s,l=[],u=0;un.blockIndex?n.step:null,r=i&&i.modDataCount;return{step:o,modBy:null!=r?Math.ceil(r/o):null,modDataCount:r}}},xy.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},xy.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),o=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,r=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:a,large:r}},xy.prototype.restorePipelines=function(t){var i=this,o=i._pipelineMap=ut();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;o.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},xy.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.ecInstance.getModel(),o=this.api;W(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});t.reset&&this._createSeriesStageTask(t,e,i,o),t.overallReset&&this._createOverallStageTask(t,e,i,o)},this)},xy.prototype.prepareView=function(t,e,n,i){var o=t.renderTask,r=o.context;r.model=e,r.ecModel=n,r.api=i,o.__block=!t.incrementalPrepareRender,this._pipe(e,o)},xy.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},xy.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},xy.prototype._performStageTasks=function(t,l,u,h){h=h||{};var c=!1,p=this;function d(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}W(t,function(i,t){var e,n,o,r,a,s;h.visualType&&h.visualType!==i.visualType||(n=(e=p._stageTaskMap.get(i.uid)).seriesTaskMap,(o=e.overallTask)?((a=o.agentStubMap).each(function(t){d(h,t)&&(t.dirty(),r=!0)}),r&&o.dirty(),p.updatePayload(o,u),s=p.getPerformArgs(o,h.block),a.each(function(t){t.perform(s)}),o.perform(s)&&(c=!0)):n&&n.each(function(t,e){d(h,t)&&t.dirty();var n=p.getPerformArgs(t,h.block);n.skip=!i.performRawSeries&&l.isSeriesFiltered(t.context.model),p.updatePayload(t,u),t.perform(n)&&(c=!0)}))}),this.unfinished=c||this.unfinished},xy.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},xy.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})},xy.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},xy.prototype._createSeriesStageTask=function(i,t,o,r){var a=this,s=t.seriesTaskMap||(t.seriesTaskMap=ut()),e=i.seriesType,n=i.getTargetSeries;function l(t){var e=t.uid,n=s.get(e)||s.set(e,Qf({plan:My,reset:Iy,count:Dy}));n.context={model:t,ecModel:o,api:r,useClearVisual:i.isVisual&&!i.isLayout,plan:i.plan,reset:i.reset,scheduler:a},a._pipe(t,n)}i.createOnAllSeries?o.eachRawSeries(l):e?o.eachRawSeriesByType(e,l):n&&n(o,r).each(l);var u=a._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})},xy.prototype._createOverallStageTask=function(t,e,n,i){var o=this,r=e.overallTask=e.overallTask||Qf({reset:_y});r.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:o};var a=r.agentStubMap=r.agentStubMap||ut(),s=t.seriesType,l=t.getTargetSeries,u=!0;function h(t){var e=t.uid,n=a.get(e);n||(n=a.set(e,Qf({reset:by,onDirty:Sy})),r.dirty()),n.context={model:t,overallProgress:u},n.agent=r,n.__block=u,o._pipe(t,n)}s?n.eachRawSeriesByType(s,h):l?l(n,i).each(h):(u=!1,W(n.getSeries(),h));var c=o._pipelineMap;a.each(function(t,e){c.get(e)||(t.dispose(),r.dirty(),a.removeKey(e))})},xy.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);i.head||(i.head=e),i.tail&&i.tail.pipe(e),(i.tail=e).__idxInPipeline=i.count++,e.__pipeline=i},xy.wrapStageHandler=function(t,e){return D(t)&&(t={overallReset:t,seriesType:function(t){Ay=null;try{t(ky,Ly)}catch(t){}return Ay}(t)}),t.uid=bc("stageHandler"),e&&(t.visualType=e),t},xy);function xy(t,e,n,i){this._stageTaskMap=ut(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function _y(t){t.overallReset(t.ecModel,t.api,t.payload)}function by(t){return t.overallProgress&&wy}function wy(){this.agent.dirty(),this.getDownstream().dirty()}function Sy(){this.agent&&this.agent.dirty()}function My(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Iy(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=gu(t.reset(t.model,t.ecModel,t.api,t.payload));return 1o[0]){for(l=0;lt);l++);s=i[o[l]]}o.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.__painter=this}else v("Layer of zlevel "+t+" is not valid")},hv.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,o.connectedBackgroundColor&&f.painter.setBackgroundColor(o.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()}return o.connectedBackgroundColor&&f.add(new ha({shape:{x:0,y:0,width:t,height:e},style:{fill:o.connectedBackgroundColor}})),pv(d,function(t){var e=new $r({style:{x:t.left*n-u,y:t.top*n-h,image:t.dom}});f.add(e)}),f.refreshImmediately(),i.toDataURL("image/"+(o&&o.type||"png"))}return this.getDataURL(o)}},Kv.prototype.convertToPixel=function(t,e){return Lv(this,"convertToPixel",t,e)},Kv.prototype.convertFromPixel=function(t,e){return Lv(this,"convertFromPixel",t,e)},Kv.prototype.containPixel=function(t,o){var r;if(!this._disposed)return W(Au(this._model,t),function(t,i){0<=i.indexOf("Models")&&W(t,function(t){var e,n=t.coordinateSystem;n&&n.containPoint?r=r||!!n.containPoint(o):"seriesModels"===i&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(r=r||e.containPoint(o,t))},this)},this),!!r;ix(this.id)},Kv.prototype.getVisual=function(t,e){var n=Au(this._model,t,{defaultMainType:"series"}),i=n.seriesModel,o=i.getData(),r=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?o.indexOfRawIndex(n.dataIndex):null;return null!=r?tm(o,r,e):em(o,e)},Kv.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},Kv.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},Kv.prototype._initEvents=function(){var t,e,p=this;pv(nx,function(c){function t(t){var e,n,i,o,r,a,s=p.getModel(),l=t.target,u="globalout"===c,h=l&&qu(l);u?n={}:h&&null!=h.dataIndex?n=(e=h.dataModel||s.getSeriesByIndex(h.seriesIndex))&&e.getDataParams(h.dataIndex,h.dataType)||{}:l&&h.eventData&&(n=z({},h.eventData)),n&&(i=n.componentType,o=n.componentIndex,"markLine"!==i&&"markPoint"!==i&&"markArea"!==i||(i="series",o=n.seriesIndex),a=(r=i&&null!=o&&s.getComponent(i,o))&&p["series"===r.mainType?"_chartsMap":"_componentsMap"][r.__viewId],n.event=t,n.type=c,p._$eventProcessor.eventInfo={targetEl:l,packedEvent:n,model:r,view:a},p.trigger(c,n))}t.zrEventfulCallAtLast=!0,p._zr.on(c,t,p)}),pv(rx,function(t,e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),pv(["selectchanged"],function(e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),t=this._messageCenter,e=this,t.on("selectchanged",function(t){t.isFromClick?(Rm("map","selectchanged",e,t),Rm("pie","selectchanged",e,t)):"select"===t.fromAction?(Rm("map","selected",e,t),Rm("pie","selected",e,t)):"unselect"===t.fromAction&&(Rm("map","unselected",e,t),Rm("pie","unselected",e,t))})},Kv.prototype.isDisposed=function(){return this._disposed},Kv.prototype.clear=function(){this._disposed?ix(this.id):this.setOption({series:[]},!0)},Kv.prototype.dispose=function(){var e,n;this._disposed?ix(this.id):(this._disposed=!0,Nu(this.getDom(),yx,""),e=this._api,n=this._model,pv(this._componentsViews,function(t){t.dispose(n,e)}),pv(this._chartsViews,function(t){t.dispose(n,e)}),this._zr.dispose(),delete px[this.id])},Kv.prototype.resize=function(t){var e,n,i;this._disposed?ix(this.id):(this._zr.resize(t),e=this._model,this._loadingFX&&this._loadingFX.resize(),e&&(n=e.resetOption("media"),i=t&&t.silent,this[yv]=!0,n&&Cv(this),kv.update.call(this,{type:"resize",animation:{duration:0}}),this[yv]=!1,Ov.call(this,i),Rv.call(this,i)))},Kv.prototype.showLoading=function(t,e){var n,i;this._disposed?ix(this.id):(fv(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),cx[t]&&(n=cx[t](this._api,e),i=this._zr,this._loadingFX=n,i.add(n)))},Kv.prototype.hideLoading=function(){this._disposed?ix(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},Kv.prototype.makeActionFromEvent=function(t){var e=z({},t);return e.type=rx[t.type],e},Kv.prototype.dispatchAction=function(t,e){var n,i;this._disposed?ix(this.id):(fv(e)||(e={silent:!!e}),ox[t.type]&&this._model&&(this[yv]?this._pendingActions.push(t):(n=e.silent,Nv.call(this,t,n),(i=e.flush)?this._zr.flush():!1!==i&&x.browser.weChat&&this._throttledZrFlush(),Ov.call(this,n),Rv.call(this,n))))},Kv.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},Kv.prototype.appendData=function(t){var e;this._disposed?ix(this.id):(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},Kv.internalField=(Cv=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Dv(t,!0),Dv(t,!1),e.plan()},Dv=function(t,r){for(var a=t._model,s=t._scheduler,l=r?t._componentsViews:t._chartsViews,u=r?t._componentsMap:t._chartsMap,h=t._zr,c=t._api,e=0;el.get("hoverLayerThreshold")&&!x.node&&l.eachSeries(function(t){var e;t.preventUsingHoverLayer||(e=n._chartsMap[t.__viewId]).__alive&&e.group.traverse(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),yy(i._zr.dom,t)},Hv=function(e,n){pv(lx,function(t){t(e,n)})},Yv=function(t){t[vv]=!0,t.getZr().wakeUp()},Uv=function(t){t[vv]&&(t.getZr().storage.traverse(function(t){Sp(t)||$v(t)}),t[vv]=!1)},Wv=function(n){return u(t,e=nf),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){Ch(t,e),Yv(n)},t.prototype.leaveEmphasis=function(t,e){Dh(t,e),Yv(n)},t.prototype.enterBlur=function(t){Ah(t),Yv(n)},t.prototype.leaveBlur=function(t){kh(t),Yv(n)},t.prototype.enterSelect=function(t){Lh(t),Yv(n)},t.prototype.leaveSelect=function(t){Ph(t),Yv(n)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(Xv=function(i){function o(t,e){for(var n=0;nx[1]&&(x[1]=v)}e&&(this._nameList[p]=e[d])}this._rawCount=this._count=l,this._extent={},Fx(this)},u_.prototype._initDataFromProvider=function(t,e){if(!(e<=t)){for(var n,i=this._chunkSize,o=this._rawData,r=this._storage,a=this.dimensions,s=a.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,p=this._nameRepeatCount={},d=this._chunkCount,f=0;fA[1]&&(A[1]=D)}o.pure||(v=u[m],y&&null==v&&(null!=y.name?u[m]=v=y.name:null==n||(_=r[x=a[n]][S])&&(v=_[M],(b=l[x].ordinalMeta)&&b.categories.length&&(v=b.categories[v]))),null==(w=null==y?null:y.id)&&null!=v&&(p[v]=p[v]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return r;o=r-1}}return-1},u_.prototype.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var o=1/0,r=-1,a=0,s=0,l=this.count();st[I][1])&&(M=!1)}M&&(r[a++]=this.getRawIndex(y))}return aS[1]&&(S[1]=w)}}}return a},u_.prototype.downSample=function(t,e,n,i){for(var o=jx(this,[t]),r=o._storage,a=[],s=Math.floor(1/e),l=r[t],u=this.count(),h=this._chunkSize,c=o._rawExtent[t],p=new(Hx(this))(u),d=0,f=0;fc[1]&&(c[1]=x),p[d++]=_}return o._count=d,o._indices=p,o.getRawIndex=Yx,o},u_.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new vc(n,e,e&&e.ecModel)},u_.prototype.diff=function(e){var n=this;return new Ox(e?e.getIndices():[],this.getIndices(),function(t){return Ux(e,t)},function(t){return Ux(n,t)})},u_.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},u_.prototype.setVisual=function(t,e){this._visual=this._visual||{},t_(t)?z(this._visual,t):this._visual[t]=e},u_.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},u_.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t],o=(i=i||(n[t]={}))[e];return o||(E(o=this.getVisual(e))?o=o.slice():t_(o)&&(o=z({},o)),i[e]=o),o},u_.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,t_(e)?z(i,e):i[e]=n},u_.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},u_.prototype.setLayout=function(t,e){if(t_(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},u_.prototype.getLayout=function(t){return this._layout[t]},u_.prototype.getItemLayout=function(t){return this._itemLayouts[t]},u_.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?z(this._itemLayouts[t]||{},e):e},u_.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},u_.prototype.setItemGraphicEl=function(t,e){var n,i=this.hostModel;e&&((n=qu(e)).dataIndex=t,n.dataType=this.dataType,n.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse($x,e)),this._graphicEls[t]=e},u_.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},u_.prototype.eachItemGraphicEl=function(n,i){W(this._graphicEls,function(t,e){t&&n&&n.call(i,t,e)})},u_.prototype.cloneShallow=function(t){if((t=t||new u_(X(this.dimensions,this.getDimensionInfo,this),this.hostModel))._storage=this._storage,Jx(t,this),this._indices){var e=this._indices.constructor;if(e===Array){var n=this._indices.length;t._indices=new e(n);for(var i=0;ie[1]&&(e[1]=t[1])},w_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},w_.prototype.getExtent=function(){return this._extent.slice()},w_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},w_.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},w_.prototype.isBlank=function(){return this._isBlank},w_.prototype.setBlank=function(t){this._isBlank=t},w_);function w_(t){this._setting=t||{},this._extent=[1/0,-1/0]}Xu(b_,{registerWhenExtend:!0});var S_=(M_.createByAxisModel=function(t){var e=t.option,n=e.data,i=n&&X(n,I_);return new M_({categories:i,needCollect:!i,deduplication:!1!==e.dedplication})},M_.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},M_.prototype.parseAndCollect=function(t){var e=this._needCollect;if("string"!=typeof t&&!e)return t;if(e&&!this._deduplication)return n=this.categories.length,this.categories[n]=t,n;var n,i=this._getOrCreateMap();return null==(n=i.get(t))&&(e?(n=this.categories.length,this.categories[n]=t,i.set(t,n)):n=NaN),n},M_.prototype._getOrCreateMap=function(){return this._map||(this._map=ut(this.categories))},M_);function M_(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}function I_(t){return G(t)&&null!=t.value?t.value:t+""}var T_=jl;function C_(t,e,n,i){var o={},r=t[1]-t[0],a=o.interval=su(r/e,!0);null!=n&&as[1]&&(s[0]=s[1]),o}function D_(t){return $l(t)+2}function A_(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function k_(t,e){return t>=e[0]&&t<=e[1]}function L_(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function P_(t,e){return t*(e[1]-e[0])+e[0]}var N_,O_=(u(R_,N_=b_),R_.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},R_.prototype.contain=function(t){return k_(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},R_.prototype.normalize=function(t){return L_(t=this.getCategoryIndex(this.parse(t)),this._extent)},R_.prototype.scale=function(t){return t=this.getCategoryIndex(t),Math.round(P_(t,this._extent))},R_.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:this.getCategoryIndex(n)}),n++;return t},R_.prototype.getMinorTicks=function(t){},R_.prototype.setCategorySortInfo=function(t){this._categorySortInfo=t},R_.prototype.getCategorySortInfo=function(){return this._categorySortInfo},R_.prototype.getCategoryIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].beforeSortIndex:t},R_.prototype.getRawIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].ordinalNumber:t},R_.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawIndex(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},R_.prototype.count=function(){return this._extent[1]-this._extent[0]+1},R_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},R_.prototype.isInExtentRange=function(t){return t=this.getCategoryIndex(t),this._extent[0]<=t&&this._extent[1]>=t},R_.prototype.getOrdinalMeta=function(){return this._ordinalMeta},R_.prototype.niceTicks=function(){},R_.prototype.niceExtent=function(){},R_.type="ordinal",R_);function R_(t){var e=N_.call(this,t)||this;e.type="ordinal";var n=e.getSetting("ordinalMeta");return n&&!E(n)||(n=new S_({categories:n})),e._ordinalMeta=n,e._categorySortInfo=[],e._extent=e.getSetting("extent")||[0,n.categories.length-1],e}b_.registerClass(O_);var E_,z_=jl,B_=(u(V_,E_=b_),V_.prototype.parse=function(t){return t},V_.prototype.contain=function(t){return k_(t,this._extent)},V_.prototype.normalize=function(t){return L_(t,this._extent)},V_.prototype.scale=function(t){return P_(t,this._extent)},V_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},V_.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},V_.prototype.getInterval=function(){return this._interval},V_.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=D_(t)},V_.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,o=this._intervalPrecision,r=[];if(!e)return r;n[0]s&&(t?r.push({value:z_(s+e,o)}):r.push({value:n[1]})),r},V_.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),o=1;oi[0]&&h=y[0]&&d<=y[1]&&a++)}var m=(y[1]-y[0])/f;if(1.5*m=y[0]&&t.value<=y[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n);var r=nb.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[o][1]n[1]&&(n[1]=e[1])})}var Nb=(Ob.prototype.getNeedCrossZero=function(){return!this.option.scale},Ob.prototype.getCoordSysModel=function(){},Ob);function Ob(){}var Rb=Sr.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,o=e.width/2,r=e.height/2;t.moveTo(n,i-r),t.lineTo(n+o,i+r),t.lineTo(n-o,i+r),t.closePath()}}),Eb=Sr.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,o=e.width/2,r=e.height/2;t.moveTo(n,i-r),t.lineTo(n+o,i),t.lineTo(n,i+r),t.lineTo(n-o,i),t.closePath()}}),zb=Sr.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,o=e.width/5*3,r=Math.max(o,e.height),a=o/2,s=a*a/(r-a),l=i-r+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),Bb=Sr.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,o=e.x,r=e.y,a=i/3*2;t.moveTo(o,r),t.lineTo(o+a,r+n),t.lineTo(o,r+n/4*3),t.lineTo(o-a,r+n),t.lineTo(o,r),t.closePath()}}),Vb={line:function(t,e,n,i,o){o.x=t,o.y=e+i/2-1,o.width=n,o.height=2},rect:function(t,e,n,i,o){o.x=t,o.y=e,o.width=n,o.height=i},roundRect:function(t,e,n,i,o){o.x=t,o.y=e,o.width=n,o.height=i,o.r=Math.min(n,i)/4},square:function(t,e,n,i,o){var r=Math.min(n,i);o.x=t,o.y=e,o.width=r,o.height=r},circle:function(t,e,n,i,o){o.cx=t+n/2,o.cy=e+i/2,o.r=Math.min(n,i)/2},diamond:function(t,e,n,i,o){o.cx=t+n/2,o.cy=e+i/2,o.width=n,o.height=i},pin:function(t,e,n,i,o){o.x=t+n/2,o.y=e+i/2,o.width=n,o.height=i},arrow:function(t,e,n,i,o){o.x=t+n/2,o.y=e+i/2,o.width=n,o.height=i},triangle:function(t,e,n,i,o){o.cx=t+n/2,o.cy=e+i/2,o.width=n,o.height=i}},Fb={};W({line:ha,rect:ha,roundRect:ha,square:ha,circle:ea,diamond:Eb,pin:zb,arrow:Bb,triangle:Rb},function(t,e){Fb[e]=new t});var Gb=Sr.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Bi(t,e,n),o=this.shape;return o&&"pin"===o.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i,o=e.symbolType;"none"!==o&&(i=(i=Fb[o])||Fb[o="rect"],Vb[o](e.x,e.y,e.width,e.height,i.shape),i.buildPath(t,i.shape,n))}});function Hb(t,e){var n;"image"!==this.type&&(n=this.style,this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw())}function Wb(t,e,n,i,o,r,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?pp(t.slice(8),new Mi(e,n,i,o),a?"center":"cover"):0===t.indexOf("path://")?cp(t.slice(7),{},new Mi(e,n,i,o),a?"center":"cover"):new Gb({shape:{symbolType:t,x:e,y:n,width:i,height:o}})).__isEmptyBrush=l,s.setColor=Hb,r&&s.setColor(r),s}var Xb={isDimensionStacked:v_,enableDataStack:m_,getStackedDimension:x_};var Yb=Object.freeze({__proto__:null,createList:function(t){return __(t.getSource(),t)},getLayoutRect:id,dataStack:Xb,createScale:function(t,e){var n=e;e instanceof vc||(n=new vc(e));var i=Ib(n);return i.setExtent(t[0],t[1]),Mb(i,n),i},mixinAxisModelCommonMethods:function(t){M(t,Nb)},createDimensions:d_,createSymbol:Wb}),Ub=1e-8;function Zb(t,e){return Math.abs(t-e)>1^-(1&s),l=(l=t.charCodeAt(a+1)-64)>>1^-(1&l),o=s+=o,r=l+=r;i.push([s/n,l/n])}return i}function Jb(t,a){return X(T((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,o=0;oa[1],p(e[0].coord,a[0])&&(i?e[0].coord=a[0]:e.shift()),i&&p(a[0],e[0].coord)&&e.unshift({coord:a[0]}),p(a[1],o.coord)&&(i?o.coord=a[1]:e.pop()),i&&p(o.coord,a[1])&&e.push({coord:a[1]}))}(this,n,e.get("alignWithLabel"),t.clamp),n},hw.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return 0":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},mw=(vw.prototype.evaluate=function(t){var e=typeof t;return"string"==e?this._condVal.test(t):"number"==e&&this._condVal.test(t+"")},vw);function vw(t){null==(this._condVal=B(t)?new RegExp(t):q(t)?t:null)&&Uh("")}var xw=(_w.prototype.evaluate=function(){return this.value},_w);function _w(){}var bw=(ww.prototype.evaluate=function(){for(var t=this.children,e=0;ei[0]&&(i[0]=r[0]),r[1]>i[1]&&(i[1]=r[1])}return{min:e?n:i,max:e?i:n}}var sS,lS=function(){this.smooth=0,this.smoothConstraint=!0,this.connectNulls=!1},uS=(u(hS,sS=Sr),hS.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},hS.prototype.getDefaultShape=function(){return new lS},hS.prototype.buildPath=function(t,e){var n=e.points,i=0,o=n.length,r=aS(n,e.smoothConstraint);if(e.connectNulls){for(;0i)return!1;return!0}(r,e))){var a=e.mapDimension(r.dim),s={};return W(r.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function IS(t,e,n){if("cartesian2d"!==t.type)return vS(t,e,n);var i,o,r=t.getBaseAxis().isHorizontal(),a=mS(t,e,n);return n.get("clip",!0)||(i=a.shape,o=Math.max(i.width,i.height),r?(i.y-=o,i.height+=2*o):(i.x-=o,i.width+=2*o)),a}var TS,CS=(u(DS,TS=qg),DS.prototype.init=function(){var t=new Ur,e=new Uw;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},DS.prototype.render=function(t,e,n){var i=this,o=t.coordinateSystem,r=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.mapArray(a.getItemLayout),h="polar"===o.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),m=!l.isEmpty(),v=l.get("origin"),x=function(t,e,n){if(!n.valueDim)return[];for(var i=[],o=0,r=e.count();oh[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";W(h,function(t){t.offset=(t.coord-d)/g}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Oa(0,0,0,0,h,!0);return y[r]=d,y[r+"2"]=f,y}}}(a,o)||a.getVisual("style")[a.getVisual("drawType")],T=t.get(["emphasis","focus"]),C=t.get(["emphasis","blurScope"]);d.useStyle(O(s.getLineStyle(),{fill:"none",stroke:I,lineJoin:"bevel"})),Fh(d,t,"lineStyle"),"bolder"===t.get(["emphasis","lineStyle","width"])&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1),qu(d).seriesIndex=t.seriesIndex,Eh(d,T,C);var D,A,k=wS(t.get("smooth"));function L(t){i._changePolyState(t)}d.setShape({smooth:k,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f&&(D=a.getCalculationInfo("stackedOnSeries"),A=0,f.useStyle(O(l.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel"})),D&&(A=wS(D.get("smooth"))),f.setShape({smooth:k,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),Fh(f,t,"areaStyle"),qu(f).seriesIndex=t.seriesIndex,Eh(f,T,C)),a.eachItemGraphicEl(function(t){t&&(t.onHoverStateChange=L)}),this._data=a,this._coordSys=o,this._stackedOnPoints=x,this._points=u,this._step=M,this._valueOrigin=v},DS.prototype.dispose=function(){},DS.prototype.highlight=function(t,e,n,i){var o=t.getData(),r=Tu(o,i);if(this._changePolyState("emphasis"),!(r instanceof Array)&&null!=r&&0<=r){var a=o.getItemGraphicEl(r);if(!a){var s=o.getItemLayout(r);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(a=new Fw(o,r)).setPosition(s),a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,o.setItemGraphicEl(r,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else qg.prototype.highlight.call(this,t,e,n,i)},DS.prototype.downplay=function(t,e,n,i){var o,r=t.getData(),a=Tu(r,i);this._changePolyState("normal"),null!=a&&0<=a?(o=r.getItemGraphicEl(a))&&(o.__temp?(r.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay()):qg.prototype.downplay.call(this,t,e,n,i)},DS.prototype._changePolyState=function(t){var e=this._polygon;Sh(this._polyline,t),e&&Sh(e,t)},DS.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new uS({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e},DS.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new gS({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n},DS.prototype._updateAnimation=function(t,e,n,i,o,r){var a=this._polyline,s=this._polygon,l=t.hostModel,u=Kw(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,r),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(o&&(h=SS(u.current,n,o),c=SS(u.stackedOnCurrent,n,o),p=SS(u.next,n,o),d=SS(u.stackedOnNext,n,o)),3e3e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;nl[1]?-1:1,h=["start"===o?l[0]-u*s:"end"===o?l[1]+u*s:(l[0]+l[1])/2,qS(o)?t.labelOffset+r*s:0],null!=(p=e.get("nameRotate"))&&(p=p*WS/180),qS(o)?c=XS.innerTextLayout(t.rotation,null!=p?p:t.rotation,r):(c=function(t,e,n,i){var o,r,a=eu(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;o=nu(a-WS/2)?(r=l?"bottom":"top","center"):nu(a-1.5*WS)?(r=l?"top":"bottom","center"):(r="middle",a<1.5*WS&&WS/2h[1]&&h.reverse(),(null==l||l>h[1])&&(l=h[1]),lt[1]&&(t[1]=e)}Xg.registerClass(xM),Xg.registerClass(wM),Sx(gv.PROCESSOR.FILTER+10,{getTargetSeries:function(t){var e=ut();return t.eachSeries(function(t){sM(t)&&e.set(t.uid,t)}),e},overallReset:function(t,e){var u,h,T,n=[],i=ut();u=i,h=n,t.eachSeries(function(t){var e,n,i,o,r,a,s,l;sM(t)&&(n=(e=lM(t)).xAxisModel,i=e.yAxisModel,o=n.axis,r=i.axis,a=o.scale.rawExtentInfo,s=r.scale.rawExtentInfo,l=t.getData(),a&&a.frozen||s&&s.frozen||(h.push({seriesModel:t,xAxisModel:n,yAxisModel:i}),Pb(MM(u,n).condExtent,l,o.dim),Pb(MM(u,i).condExtent,l,r.dim)))}),T=i,W(n,function(t){var e=t.xAxisModel,n=t.yAxisModel,i=e.axis,o=n.axis,r=MM(T,e),a=MM(T,n);r.rawExtentInfo=bb(i.scale,e,r.condExtent),a.rawExtentInfo=bb(o.scale,n,a.condExtent),r.rawExtentResult=r.rawExtentInfo.calculate(),a.rawExtentResult=a.rawExtentInfo.calculate();var s,l,u=t.seriesModel.getData(),h={},c={};function p(e,t){var n=t.condExtent,i=t.rawExtentResult;"category"===e.type&&(n[0]e.min&&n.modifyDataMinMax("min",i[0]),!e.maxFixed&&i[1]e[1]&&e.reverse(),e},GM.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},GM.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setCategorySortInfo(t)},GM);function GM(t,e,n,i,o){var r=VM.call(this,t,e,n)||this;return r.index=0,r.type=i||"value",r.position=o||"bottom",r}var HM=(WM.prototype.getRect=function(){return this._rect},WM.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),W(n.x,function(t){Mb(t.scale,t.model)}),W(n.y,function(t){Mb(t.scale,t.model)});var i={};W(n.x,function(t){YM(n,"y",t,i)}),W(n.y,function(t){YM(n,"x",t,i)}),this.resize(this.model,e)},WM.prototype.resize=function(t,e,n){var l=id(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=l;var i=this._axesList;function o(){W(i,function(t){var e,n,i,o,r=t.isHorizontal(),a=r?[0,l.width]:[0,l.height],s=t.inverse?1:0;t.setExtent(a[s],a[1-s]),e=t,n=r?l.x:l.y,i=e.getExtent(),o=i[0]+i[1],e.toGlobalCoord="x"===e.dim?function(t){return t+n}:function(t){return o-t+n},e.toLocalCoord="x"===e.dim?function(t){return t-n}:function(t){return o-t+n}})}o(),!n&&t.get("containLabel")&&(W(i,function(t){var e,n,i;t.model.get(["axisLabel","inside"])||(e=Db(t))&&(n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]),l[n]-=e[n]+i,"top"===t.position?l.y+=e.height+i:"left"===t.position&&(l.x+=e.width+i))}),o())},WM.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},WM.prototype.getAxes=function(){return this._axesList.slice()},WM.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}G(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,o=this._coordsList;ic?l:s,(i=Math.abs(e.label.y-c))>n.maxY&&(a=(o=e.label.x-h-e.len2*d)<(r=p+e.len)?Math.sqrt(i*i/(1-o*o/r/r)):r,n.rB=a,n.maxY=i),n.list.push(e))}f(s),f(l)}(t)}function f(t){for(var e=t.rB,n=e*e,i=0;i=n.r0}},FI.type="pie",FI);function FI(){var t=null!==BI&&BI.apply(this,arguments)||this;return t.ignoreLabelLineUpdate=!0,t}qg.registerClass(VI);var GI=2*Math.PI,HI=Math.PI/180;function WI(t){return{seriesType:t,reset:function(t,e){var i,o=e.findComponents({mainType:"legend"});o&&o.length&&(i=t.getData()).filterSelf(function(t){for(var e=i.getName(t),n=0;nn[0]&&isFinite(u)&&isFinite(n[0]););else{var h=o.getTicks().length-1;c'+Hp(""===s?this.name:s)+""+X(a,function(t){var e=r.get(r.mapDimension(t.dim),n);return'
'+Wp(t.name,e)+"
"}).join("")},vT.prototype.getTooltipPosition=function(t){if(null!=t)for(var e=this.getData(),n=this.coordinateSystem,i=e.getValues(X(n.dimensions,function(t){return e.mapDimension(t)}),t),o=0,r=i.length;o'+l.join(", ")+""+Wp(a,r)},GT.prototype.setZoom=function(t){this.option.zoom=t},GT.prototype.setCenter=function(t){this.option.center=t},GT.type="series.map",GT.dependencies=["geo"],GT.layoutMode="box",GT.defaultOption={zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},GT);function GT(){var t=null!==VT&&VT.apply(this,arguments)||this;return t.type=GT.type,t.needsDrawMap=!1,t.seriesGroup=[],t.getTooltipPosition=function(t){if(null!=t){var e=this.getData().getName(t),n=this.coordinateSystem,i=n.getRegion(e);return i&&n.dataToPoint(i.center)}},t}Rg.registerClass(FT);var HT="\0_ec_interaction_mutex";function WT(t,e){return XT(t)[e]}function XT(t){return t[HT]||(t[HT]={})}Mx({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){});var YT,UT=(u(ZT,YT=Bt),ZT.prototype.isDragging=function(){return this._dragging},ZT.prototype.isPinching=function(){return this._pinching},ZT.prototype.setPointerChecker=function(t){this.pointerChecker=t},ZT.prototype.dispose=function(){this.disable()},ZT.prototype._mousedownHandler=function(t){var e,n;ne(t)||t.target&&t.target.draggable||(e=t.offsetX,n=t.offsetY,this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0))},ZT.prototype._mousemoveHandler=function(t){var e,n,i,o,r,a;this._dragging&&KT("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!WT(this._zr,"globalPan")&&(e=t.offsetX,n=t.offsetY,r=e-(i=this._x),a=n-(o=this._y),this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&ee(t.event),qT(this,"pan","moveOnMouseMove",t,{dx:r,dy:a,oldX:i,oldY:o,newX:e,newY:n,isAvailableBehavior:null}))},ZT.prototype._mouseupHandler=function(t){ne(t)||(this._dragging=!1)},ZT.prototype._mousewheelHandler=function(t){var e,n,i=KT("zoomOnMouseWheel",t,this._opt),o=KT("moveOnMouseWheel",t,this._opt),r=t.wheelDelta,a=Math.abs(r),s=t.offsetX,l=t.offsetY;0!==r&&(i||o)&&(i&&(e=3e&&(e=i.height)}this.height=e+1},kC.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;er&&(r=t.depth)});var a=t.expandAndCollapse&&0<=t.initialTreeDepth?t.initialTreeDepth:r;return o.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a}),o.data},EC.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},EC.prototype.setZoom=function(t){this.option.zoom=t},EC.prototype.setCenter=function(t){this.option.center=t},EC.prototype.formatTooltip=function(t,e,n,i){for(var o=this.getData().tree,r=o.root.children[0],a=o.getNodeByDataIndex(t),s=a.getValue(),l=a.name;a&&a!==r;)l=a.parentNode.name+"."+l,a=a.parentNode;return"richText"===i?Hp(l)+": "+(isNaN(s)||null==s?"":s):'
'+Wp(l,isNaN(s)||null==s?"":s)+"
"},EC.type="series.tree",EC.layoutMode="box",EC.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},EC);function EC(){var t=null!==OC&&OC.apply(this,arguments)||this;return t.hasSymbolVisual=!0,t.ignoreStyleOnData=!0,t}function zC(t,e){var n,i=t.isExpand?t.children:[],o=t.parentNode.children,r=t.hierNode.i?o[t.hierNode.i-1]:null;i.length?(function(t){var e=t.children,n=e.length,i=0,o=0;for(;0<=--n;){var r=e[n];r.hierNode.prelim+=i,r.hierNode.modifier+=i,o+=r.hierNode.change,i+=r.hierNode.shift+o}}(t),n=(i[0].hierNode.prelim+i[i.length-1].hierNode.prelim)/2,r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-n):t.hierNode.prelim=n):r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r)),t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var o=t,r=t,a=r.parentNode.children[0],s=e,l=o.hierNode.modifier,u=r.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=GC(s),r=HC(r),s&&r;){o=GC(o),a=HC(a),o.hierNode.ancestor=t;var p=s.hierNode.prelim+c-r.hierNode.prelim-u+i(s,r);0m.x)||(w-=Math.PI)),S=x?"left":"right",T=(I=(M=s.getModel("label")).get("rotate"))*(Math.PI/180),(C=D.getTextContent())&&(D.setTextConfig({position:M.get("position")||S,rotation:null==I?-w:T,origin:"center"}),C.setStyle("verticalAlign","middle")));var A=s.get(["emphasis","focus"]),k="ancestor"===A?a.getAncestorsIndices():"descendant"===A?a.getDescendantIndices():null;k&&(qu(i).focus=k),function(t,e,n,i,o,r,a,s){var l=e.getModel(),u=t.get("edgeShape"),h=t.get("layout"),c=t.getOrient(),p=t.get(["lineStyle","curveness"]),d=t.get("edgeForkPosition"),f=l.getModel("lineStyle").getLineStyle(),g=i.__edge;if("curve"===u)e.parentNode&&e.parentNode!==n&&vp(g=g||(i.__edge=new Ws({shape:tD(h,c,p,o,o)})),{shape:tD(h,c,p,r,a)},t);else if("polyline"===u)if("orthogonal"===h){if(e!==n&&e.children&&0!==e.children.length&&!0===e.isExpand){for(var y=e.children,m=[],v=0;vh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}),p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,m=y=g=f=0,"radial"===i?(f=o/(h.getLayout().x+p+d),g=r/(c.depth-1||1),eD(l,function(t){y=(t.getLayout().x+d)*f,m=(t.depth-1)*g;var e=FC(y,m);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:m},!0)})):"RL"===(v=t.getOrient())||"LR"===v?(g=r/(h.getLayout().x+p+d),f=o/(c.depth-1||1),eD(l,function(t){m=(t.getLayout().x+d)*g,y="LR"===v?(t.depth-1)*f:o-(t.depth-1)*f,t.setLayout({x:y,y:m},!0)})):"TB"!==v&&"BT"!==v||(f=o/(h.getLayout().x+p+d),g=r/(c.depth-1||1),eD(l,function(t){y=(t.getLayout().x+d)*f,m="TB"===v?(t.depth-1)*g:r-(t.depth-1)*g,t.setLayout({x:y,y:m},!0)})))}}(t,e)})}),Cx(function(t){t.eachSeriesByType("tree",function(t){var n=t.getData();n.tree.eachNode(function(t){var e=t.getModel().getModel("itemStyle").getItemStyle();z(n.ensureUniqueItemVisual(t.dataIndex,"style"),e)})})});var aD,sD=(u(lD,aD=Rg),lD.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};!function n(t){var i=0;W(t.children,function(t){n(t);var e=t.value;E(e)&&(e=e[0]),i+=e});var e=t.value;E(e)&&(e=e[0]),null!=e&&!isNaN(e)||(e=i),e<0&&(e=0),E(t.value)?t.value[0]=e:t.value=e}(n);var i=t.levels||[],o=X((i=t.levels=function(t,e){var i,n=gu(e.get("color"));if(n)return W(t=t||[],function(t){var e=new vc(t),n=e.get("color");(e.get(["itemStyle","color"])||n&&"none"!==n)&&(i=!0)}),i||((t[0]||(t[0]={})).color=n.slice()),t}(i,e))||[],function(t){return new vc(t,this,e)},this),r=LC.createTree(n,this,null,function(t){t.wrapMethod("getItemModel",function(t,e){var n=r.getNodeByDataIndex(e),i=o[n.depth];return i&&(t.parentModel=i),t})});return r.data},lD.prototype.optionUpdated=function(){this.resetViewRoot()},lD.prototype.formatTooltip=function(t,e,n,i){var o=this.getData(),r=this.getRawValue(t),a=E(r)?zp(r[0]):zp(r),s=o.getName(t);return"richText"===i?Hp(s)+": "+a:'
'+Wp(s,a)+"
"},lD.prototype.getDataParams=function(t){var e=aD.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=rD(n,this),e},lD.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},z(this.layoutInfo,t)},lD.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=ut(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},lD.prototype.getViewRoot=function(){return this._viewRoot},lD.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},lD.type="series.treemap",lD.layoutMode="box",lD.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},lD);function lD(){var t=null!==aD&&aD.apply(this,arguments)||this;return t.type=lD.type,t.preventUsingHoverLayer=!0,t}Rg.registerClass(sD);var uD=5,hD=(cD.prototype.render=function(t,e,n,i){var o,r,a,s=t.getModel("breadcrumb"),l=this.group;l.removeAll(),s.get("show")&&n&&(r=(o=s.getModel("itemStyle")).getModel("textStyle"),a={pos:{left:s.get("left"),right:s.get("right"),top:s.get("top"),bottom:s.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:s.get("emptyItemWidth"),totalWidth:0,renderList:[]},this._prepare(n,a,r),this._renderContent(t,a,o,r,i),od(l,a.pos,a.box))},cD.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var o=i.getModel().get("name"),r=n.getTextRect(o),a=Math.max(r.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:o,width:a})}},cD.prototype._renderContent=function(t,e,n,i,o){for(var r,a,s,l,u,h,c,p,d,f,g,y,m,v,x,_,b,w=0,S=e.emptyItemWidth,M=t.get(["breadcrumb","height"]),I=(r=e.pos,a=e.box,l=a.width,u=a.height,h=Zl(r.left,l),c=Zl(r.top,u),p=Zl(r.right,l),d=Zl(r.bottom,u),(isNaN(h)||isNaN(parseFloat(r.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(r.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(r.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(r.bottom)))&&(d=u),s=Vp(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),T=e.totalWidth,C=e.renderList,D=C.length-1;0<=D;D--){var A=C[D],k=A.node,L=A.width,P=A.text;I.width=a.length||t===a[t.depth])&&(n=QD(l,p,t,e,_,s),i(t,n,o,r,a,s))})):(y=qD(p),d.fill=y)}}(n,{},X(e.levelModels,function(t){return t?t.get(YD):null}),i,t.getViewRoot().getAncestors(),t)}};function jD(n,i,o,r){var a=z({},i);return W(["color","colorAlpha","colorSaturation"],function(t){var e=n.get(t,!0);null==e&&o&&(e=o[t]),null==e&&(e=i[t]),null==e&&(e=r.get(t)),null!=e&&(a[t]=e)}),a}function qD(t){var e=KD(t,"color");if(e){var n=KD(t,"colorAlpha"),i=KD(t,"colorSaturation");return i&&(e=rn(e,null,null,i)),n&&(e=an(e,n)),e}}function KD(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function $D(t,e,n,i,o,r){if(r&&r.length){var a=JD(e,"color")||null!=o.color&&"none"!==o.color&&(JD(e,"colorAlpha")||JD(e,"colorSaturation"));if(a){var s=e.get("visualMin"),l=e.get("visualMax"),u=n.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new PD(c);return UD(p).drColorMappingBy=h,p}}}function JD(t,e){var n=t.get(e);return E(n)&&n.length?{name:e,range:n}:null}function QD(t,e,n,i,o,r){var a,s,l,u=z({},e);return o&&(l="index"===(s="color"===(a=o.type)&&UD(o).drColorMappingBy)?i:"id"===s?r.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension")),u[a]=o.mapValueToVisual(l)),u}var tA=Math.max,eA=Math.min,nA=$,iA=W,oA=["itemStyle","borderWidth"],rA=["itemStyle","gapWidth"],aA=["upperLabel","show"],sA=["upperLabel","height"],lA={seriesType:"treemap",reset:function(t,e,n,i){var o,r,a,s,l=n.getWidth(),u=n.getHeight(),h=t.option,c=id(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),p=h.size||[],d=Zl(nA(c.width,p[0]),l),f=Zl(nA(c.height,p[1]),u),g=i&&i.type,y=nD(i,["treemapZoomToNode","treemapRootToNode"],t),m="treemapRender"===g||"treemapMove"===g?i.rootRect:null,v=t.getViewRoot(),x=iD(v);"treemapMove"!==g&&(o="treemapZoomToNode"===g?function(t,e,n,i,o){var r,a=(e||{}).node,s=[i,o];if(!a||a===n)return s;var l=i*o,u=l*t.option.zoomToNodeRatio;for(;r=a.parentNode;){for(var h=0,c=r.children,p=0,d=c.length;pa[1]&&(a[1]=e)})):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===c.sum)return t.viewChildren=[];if(c.sum=function(t,e,n,i,o){if(!i)return n;for(var r=t.get("visibleMin"),a=o.length,s=a,l=a-1;0<=l;l--){var u=o["asc"===i?a-l-1:l].getValue();u/n*en[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;c "+p)),u++)}var d,f,g,y,m=n.get("coordinateSystem");"cartesian2d"===m||"polar"===m?y=__(t,n):(k(f=(d=af.get(m))&&d.dimensions||[],"value")<0&&f.concat(["value"]),g=d_(t,{coordDimensions:f}),(y=new l_(g,n)).initData(t));var v=new l_(["value"],n);return v.initData(l,s),o&&o(y,v),bC({mainData:y,struct:r,structAttr:"graph",datas:{node:y,edge:v},datasAttr:{node:"data",edge:"edgeData"}}),r.update(),r}M(yA,_A("hostGraph","data")),M(vA,_A("hostGraph","edgeData"));var wA,SA=(u(MA,wA=Rg),MA.prototype.init=function(t){wA.prototype.init.apply(this,arguments);var e=this;function n(){return e._categoriesData}this.legendVisualProvider=new TI(n,n),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},MA.prototype.mergeOption=function(t){wA.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},MA.prototype.mergeDefaultAndTheme=function(t){wA.prototype.mergeDefaultAndTheme.apply(this,arguments),yu(t,"edgeLabel",["show"])},MA.prototype.getInitialData=function(t,e){var n=t.edges||t.links||[],i=t.data||t.nodes||[],r=this;if(i&&n)return bA(i,n,this,!0,function(t,e){t.wrapMethod("getItemModel",function(t){var e=r._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var i=vc.prototype.getModel;function n(t,e){var n=i.call(this,t,e);return n.resolveParentPath=o,n}function o(t){if(!t||"label"!==t[0]&&"label"!==t[1])return t;var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}e.wrapMethod("getItemModel",function(t){return t.resolveParentPath=o,t.getModel=n,t})}).data},MA.prototype.getGraph=function(){return this.getData().graph},MA.prototype.getEdgeData=function(){return this.getGraph().edgeData},MA.prototype.getCategoriesData=function(){return this._categoriesData},MA.prototype.formatTooltip=function(t,e,n,i){if("edge"!==n)return wA.prototype.formatTooltip.apply(this,arguments);var o=this.getData(),r=this.getDataParams(t,n),a=o.graph.getEdgeByIndex(t),s=o.getName(a.node1.dataIndex),l=o.getName(a.node2.dataIndex),u=[];null!=s&&u.push(s),null!=l&&u.push(l);var h=Hp(u.join(" > "));return r.value&&(h+=" : "+Hp(r.value)),h},MA.prototype._updateCategoriesData=function(){var t=X(this.option.categories||[],function(t){return null!=t.value?t:z({value:0},t)}),e=new l_(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t)})},MA.prototype.setZoom=function(t){this.option.zoom=t},MA.prototype.setCenter=function(t){this.option.center=t},MA.prototype.isAnimationEnabled=function(){return wA.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},MA.type="series.graph",MA.defaultOption={zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},MA);function MA(){var t=null!==wA&&wA.apply(this,arguments)||this;return t.type=MA.type,t.hasSymbolVisual=!0,t}Rg.registerClass(SA);var IA,TA=xa.prototype,CA=Ws.prototype,DA=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};u(AA,IA=DA);function AA(){return null!==IA&&IA.apply(this,arguments)||this}function kA(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var LA,PA=(u(NA,LA=Sr),NA.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},NA.prototype.getDefaultShape=function(){return new DA},NA.prototype.buildPath=function(t,e){kA(e)?TA.buildPath.call(this,t,e):CA.buildPath.call(this,t,e)},NA.prototype.pointAt=function(t){return kA(this.shape)?TA.pointAt.call(this,t):CA.pointAt.call(this,t)},NA.prototype.tangentAt=function(t){var e=this.shape,n=kA(e)?[e.x2-e.x1,e.y2-e.y1]:CA.tangentAt.call(this,t);return It(n,n)},NA);function NA(t){var e=LA.call(this,t)||this;return e.type="ec-line",e}var OA=["fromSymbol","toSymbol"];function RA(t){return"_"+t+"Type"}function EA(t,e,n){var i=e.getItemVisual(n,t),o=e.getItemVisual(n,t+"Size");if(i&&"none"!==i){var r=E(o)?o:[o,o],a=Wb(i,-r[0]/2,-r[1]/2,r[0],r[1]);return a.name=t,a}}function zA(t,e){t.x1=e[0][0],t.y1=e[0][1],t.x2=e[1][0],t.y2=e[1][1],t.percent=1;var n=e[2];n?(t.cpx1=n[0],t.cpy1=n[1]):(t.cpx1=NaN,t.cpy1=NaN)}var BA,VA=(u(FA,BA=Ur),FA.prototype._createLine=function(n,i,t){var e,o,r=n.hostModel,a=n.getItemLayout(i),s=(e=a,zA((o=new PA({name:"line",subPixelOptimize:!0})).shape,e),o);s.shape.percent=0,xp(s,{shape:{percent:1}},r,i),this.add(s),W(OA,function(t){var e=EA(t,n,i);this.add(e),this[RA(t)]=n.getItemVisual(i,t)},this),this._updateCommonStl(n,i,t)},FA.prototype.updateData=function(o,r,t){var e=o.hostModel,n=this.childOfName("line"),i=o.getItemLayout(r),a={shape:{}};zA(a.shape,i),vp(n,a,e,r),W(OA,function(t){var e,n=o.getItemVisual(r,t),i=RA(t);this[i]!==n&&(this.remove(this.childOfName(t)),e=EA(t,o,r),this.add(e)),this[i]=n},this),this._updateCommonStl(o,r,t)},FA.prototype.getLinePath=function(){return this.childAt(0)},FA.prototype._updateCommonStl=function(n,t,e){var i,o=n.hostModel,l=this.childOfName("line"),r=e&&e.emphasisLineStyle,a=e&&e.blurLineStyle,s=e&&e.selectLineStyle,u=e&&e.labelStatesModels;e&&!n.hasItemOption||(r=(i=n.getItemModel(t)).getModel(["emphasis","lineStyle"]).getLineStyle(),a=i.getModel(["blur","lineStyle"]).getLineStyle(),s=i.getModel(["select","lineStyle"]).getLineStyle(),u=Kh(i));var h=n.getItemVisual(t,"style"),c=h.stroke;l.useStyle(h),l.style.fill=null,l.style.strokeNoScale=!0,l.ensureState("emphasis").style=r,l.ensureState("blur").style=a,l.ensureState("select").style=s,W(OA,function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n=t&&(0===e?0:i[e-1][0])r&&(e[1-i]=e[i]+u.sign*r),e}function Fk(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:0o*(1-c[0])?(u="jump",a=l-o*(1-c[2])):0<=(a=l-o*c[1])&&(a=l-o*(1-c[1]))<=0&&(a=0),(a*=e.axisExpandWidth/h)?Vk(a,i,r,"all"):u="none"):(s=i[1]-i[0],(i=[Xk(0,r[1]*l/s-s/2)])[1]=Wk(r[1],i[0]+s),i[0]=i[1]-s),{axisExpandWindow:i,behavior:u}},Kk);function Kk(t,e,n){this.type="parallel",this._axesMap=ut(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}function $k(t,e){return Wk(Xk(t,e[0]),e[1])}af.register("parallel",{create:function(i,o){var r=[];return i.eachComponent("parallel",function(t,e){var n=new qk(t,i,o);n.name="parallel_"+e,n.resize(t,o),(t.coordinateSystem=n).model=t,r.push(n)}),i.eachSeries(function(t){var e;"parallel"===t.get("coordinateSystem")&&(e=t.getReferringComponents("parallel",ku).models[0],t.coordinateSystem=e.coordinateSystem)}),r}});var Jk,Qk=(u(tL,Jk=gd),tL.prototype.getAreaSelectStyle=function(){return Yu([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},tL.prototype.setActiveIntervals=function(t){var e=this.activeIntervals=A(t);if(e)for(var n=e.length-1;0<=n;n--)ql(e[n])},tL.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,o=e.length;ia.getWidth()||r<0||r>a.getHeight()))){var i,o,r,a,s=t._zr,l=t._covers,u=IL(t,e,n);if(!t._dragging)for(var h=0;h'+Wp(r.source+" -- "+r.target,o.value||"")+""}if("node"!==n)return _P.prototype.formatTooltip.call(this,t,e,n,i);var a=this.getGraph().getNodeByIndex(t).getLayout().value,s=this.getDataParams(t,n).data.name;return"richText"===i?Hp(a?s:"")+": "+(a||""):'
'+Wp(a?s:"",a||"")+"
"},wP.prototype.optionUpdated=function(){var t=this.option;!0===t.focusNodeAdjacency&&(t.focusNodeAdjacency="allEdges")},wP.prototype.getDataParams=function(t,e){var n,i=_P.prototype.getDataParams.call(this,t,e);return null==i.value&&"node"===e&&(n=this.getGraph().getNodeByIndex(t).getLayout().value,i.value=n),i},wP.type="series.sankey",wP.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,focusNodeAdjacency:!1,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},wP);function wP(){var t=null!==_P&&_P.apply(this,arguments)||this;return t.type=wP.type,t}Rg.registerClass(bP);var SP,MP=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0},IP=(u(TP,SP=Sr),TP.prototype.getDefaultShape=function(){return new MP},TP.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},TP.prototype.highlight=function(){Ch(this)},TP.prototype.downplay=function(){Dh(this)},TP);function TP(t){return SP.call(this,t)||this}var CP,DP=(u(AP,CP=qg),AP.prototype.render=function(C,t,i){var e,n,o,r,a=this,s=C.getGraph(),D=this.group,l=C.layoutInfo,A=l.width,k=l.height,u=C.getData(),L=C.getData("edge"),P=C.get("orient");this._model=C,D.removeAll(),D.x=l.x,D.y=l.y,s.eachEdge(function(t){var e=new IP,n=qu(e);n.dataIndex=t.dataIndex,n.seriesIndex=C.seriesIndex,n.dataType="edge";var i,o,r,a,s,l,u,h,c=t.getModel(),p=c.getModel("lineStyle"),d=p.get("curveness"),f=t.node1.getLayout(),g=t.node1.getModel(),y=g.get("localX"),m=g.get("localY"),v=t.node2.getLayout(),x=t.node2.getModel(),_=x.get("localX"),b=x.get("localY"),w=t.getLayout();switch(e.shape.extent=Math.max(1,w.dy),h="vertical"===(e.shape.orient=P)?(i=(null!=y?y*A:f.x)+w.sy,o=(null!=m?m*k:f.y)+f.dy,r=(null!=_?_*A:v.x)+w.ty,s=i,l=o*(1-d)+(a=null!=b?b*k:v.y)*d,u=r,o*d+a*(1-d)):(i=(null!=y?y*A:f.x)+f.dx,o=(null!=m?m*k:f.y)+w.sy,s=i*(1-d)+(r=null!=_?_*A:v.x)*d,l=o,u=i*d+r*(1-d),a=(null!=b?b*k:v.y)+w.ty),e.setShape({x1:i,y1:o,x2:r,y2:a,cpx1:s,cpy1:l,cpx2:u,cpy2:h}),e.useStyle(p.getItemStyle()),e.style.fill){case"source":e.style.fill=t.node1.getVisual("color");break;case"target":e.style.fill=t.node2.getVisual("color");break;case"gradient":var S=t.node1.getVisual("color"),M=t.node2.getVisual("color");"string"==typeof S&&"string"==typeof M&&(e.style.fill=new Oa(0,0,1,0,[{color:S,offset:0},{color:M,offset:1}]))}var I=c.getModel("emphasis");Fh(e,c,"lineStyle","getItemStyle"),D.add(e),L.setItemGraphicEl(t.dataIndex,e);var T=I.get("focus");Eh(e,"adjacency"===T?t.getAdjacentDataIndices():T,I.get("blurScope")),qu(e).dataType="edge"}),s.eachNode(function(t){var e=t.getLayout(),n=t.getModel(),i=n.get("localX"),o=n.get("localY"),r=n.getModel("emphasis"),a=new ha({shape:{x:null!=i?i*A:e.x,y:null!=o?o*k:e.y,width:e.dx,height:e.dy},style:n.getModel("itemStyle").getItemStyle()});qh(a,Kh(n),{labelFetcher:C,labelDataIndex:t.dataIndex,defaultText:t.id}),a.disableLabelAnimation=!0,a.setStyle("fill",t.getVisual("color")),Fh(a,n),D.add(a),u.setItemGraphicEl(t.dataIndex,a),qu(a).dataType="node";var s=r.get("focus");Eh(a,"adjacency"===s?t.getAdjacentDataIndices():s,r.get("blurScope"))}),u.eachItemGraphicEl(function(t,n){u.getItemModel(n).get("draggable")&&(t.drift=function(t,e){a._focusAdjacencyDisabled=!0,this.shape.x+=t,this.shape.y+=e,this.dirty(),i.dispatchAction({type:"dragNode",seriesId:C.id,dataIndex:u.getRawIndex(n),localX:this.shape.x/A,localY:this.shape.y/k})},t.ondragend=function(){a._focusAdjacencyDisabled=!1},t.draggable=!0,t.cursor="move")}),!this._data&&C.isAnimationEnabled()&&D.setClipPath((e=D.getBoundingRect(),n=C,o=function(){D.removeClipPath()},xp(r=new ha({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}}),{shape:{width:e.width+20}},n,o),r)),this._data=C.getData()},AP.prototype.dispose=function(){},AP.type="sankey",AP);function AP(){var t=null!==CP&&CP.apply(this,arguments)||this;return t.type=AP.type,t._focusAdjacencyDisabled=!1,t}function kP(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&0<=e.depth}function LP(t,l,u,h,c){var p="vertical"===c?"x":"y";W(t,function(t){var e,n;t.sort(function(t,e){return t.getLayout()[p]-e.getLayout()[p]});for(var i,o=0,r=t.length,a="vertical"===c?"dx":"dy",s=0;sd&&(d=y.depth),g.setLayout({depth:m?y.depth:c},!0),"vertical"===r?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var v=0;v "))},XN.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},XN.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},XN.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},XN.type="series.lines",XN.dependencies=["grid","polar","geo","calendar"],XN.defaultOption={coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},XN);function XN(){var t=null!==HN&&HN.apply(this,arguments)||this;return t.type=XN.type,t.visualStyleAccessPath="lineStyle",t.visualDrawType="stroke",t}Rg.registerClass(WN);var YN,UN=(u(ZN,YN=Ur),ZN.prototype.createLine=function(t,e,n){return new VA(t,e,n)},ZN.prototype._updateEffectSymbol=function(t,e){var n=t.getItemModel(e).getModel("effect"),i=n.get("symbolSize"),o=n.get("symbol");E(i)||(i=[i,i]);var r=t.getItemVisual(e,"style"),a=n.get("color")||r&&r.stroke,s=this.childAt(1);this._symbolType!==o&&(this.remove(s),(s=Wb(o,-.5,-.5,1,1,a)).z2=100,s.culling=!0,this.add(s)),s&&(s.setStyle("shadowColor",a),s.setStyle(n.getItemStyle(["color"])),s.scaleX=i[0],s.scaleY=i[1],s.setColor(a),this._symbolType=o,this._symbolScale=i,this._updateEffectAnimation(t,n,e))},ZN.prototype._updateEffectAnimation=function(e,t,n){var i,o,r,a,s,l,u,h,c=this.childAt(1);c&&(i=this,o=e.getItemLayout(n),r=1e3*t.get("period"),a=t.get("loop"),s=t.get("constantSpeed"),l=$(t.get("delay"),function(t){return t/e.count()*r/3}),c.ignore=!0,this._updateAnimationPoints(c,o),0e);a++);a=Math.min(a-1,o-2)}var s=(e-i[a])/(i[a+1]-i[a]),l=n[a],u=n[a+1];t.x=l[0]*(1-s)+s*u[0],t.y=l[1]*(1-s)+s*u[1];var h=u[0]-l[0],c=u[1]-l[1];t.rotation=-Math.atan2(c,h)-Math.PI/2,this._lastFrame=a,this._lastFramePercent=e,t.ignore=!1}},QN);function QN(){var t=null!==$N&&$N.apply(this,arguments)||this;return t._lastFrame=0,t._lastFramePercent=0,t}var tO,eO=function(){this.polyline=!1,this.curveness=0,this.segs=[]},nO=(u(iO,tO=Sr),iO.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},iO.prototype.getDefaultShape=function(){return new eO},iO.prototype.buildPath=function(t,e){var n=e.segs,i=e.curveness;if(e.polyline)for(var o=0;os[1]||Ml[1])continue;var I=c.dataToPoint([S,M]),w=new ha({shape:{x:Math.floor(Math.round(I[0])-r/2),y:Math.floor(Math.round(I[1])-a/2),width:Math.ceil(r),height:Math.ceil(a)},style:d.getItemVisual(b,"style")})}else{if(isNaN(d.get(_[1],b)))continue;w=new ha({z2:1,shape:c.dataToRect([d.get(_[0],b)]).contentShape,style:d.getItemVisual(b,"style")})}var T,C=d.getItemModel(b);d.hasItemOption&&(f=(T=C.getModel("emphasis")).getModel("itemStyle").getItemStyle(),g=C.getModel(["blur","itemStyle"]).getItemStyle(),y=C.getModel(["select","itemStyle"]).getItemStyle(),v=T.get("focus"),x=T.get("blurScope"),m=Kh(C));var D=t.getRawValue(b),A="-";D&&null!=D[2]&&(A=D[2]+""),qh(w,m,{labelFetcher:t,labelDataIndex:b,defaultText:A}),w.ensureState("emphasis").style=f,w.ensureState("blur").style=g,w.ensureState("select").style=y,Eh(w,v,x),(w.incremental=o)&&(w.states.emphasis.hoverLayer=!0),p.add(w),d.setItemGraphicEl(b,w)}},xO.prototype._renderOnGeo=function(o,t,e,n){var i=e.targetVisuals.inRange,r=e.targetVisuals.outOfRange,a=t.getData(),s=this._hmLayer||this._hmLayer||new gO;s.blurSize=t.get("blurSize"),s.pointSize=t.get("pointSize"),s.minOpacity=t.get("minOpacity"),s.maxOpacity=t.get("maxOpacity");var l=o.getViewRect().clone(),u=o.getRoamTransform();l.applyTransform(u);var h,c,p,d,f,g,y,m,v,x=Math.max(l.x,0),_=Math.max(l.y,0),b=Math.min(l.width+l.x,n.getWidth()),w=Math.min(l.height+l.y,n.getHeight()),S=b-x,M=w-_,I=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],T=a.mapArray(I,function(t,e,n){var i=o.dataToPoint([t,e]);return i[0]-=x,i[1]-=_,i.push(n),i}),C=e.getExtent(),D="visualMap.continuous"===e.type?(y=C,m=e.option.range,v=y[1]-y[0],m=[(m[0]-y[0])/v,(m[1]-y[0])/v],function(t){return t>=m[0]&&t<=m[1]}):(h=C,c=e.getPieceList(),p=e.option.selected,d=h[1]-h[0],f=(c=X(c,function(t){return{interval:[(t.interval[0]-h[0])/d,(t.interval[1]-h[0])/d]}})).length,g=0,function(t){for(var e,n=g;n=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},KO.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},KO.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[o]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-o]=0==o?n.y+n.height/2:n.x+n.width/2,i},KO.prototype.convertToPixel=function(t,e,n){return $O(e)===this?this.dataToPoint(n):null},KO.prototype.convertFromPixel=function(t,e,n){return $O(e)===this?this.pointToData(n):null},KO);function KO(t,e,n){this.type="single",this.dimension="single",this.dimensions=["single"],this.axisPointerEnabled=!0,this.model=t,this._init(t,e,n)}function $O(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function JO(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,o={},r=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};o.position=["vertical"===a?u.vertical[r]:l[0],"horizontal"===a?u.horizontal[r]:l[3]];o.rotation=Math.PI/2*{horizontal:0,vertical:1}[a];o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,right:1,left:-1}[r],t.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),$(e.labelInside,t.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),o.labelRotation="top"===r?-h:h,o.z2=1,o}af.register("single",{create:function(i,o){var r=[];return i.eachComponent("singleAxis",function(t,e){var n=new qO(t,i,o);n.name="single_"+e,n.resize(t,o),t.coordinateSystem=n,r.push(n)}),i.eachSeries(function(t){var e;"singleAxis"===t.get("coordinateSystem")&&(e=t.getReferringComponents("singleAxis",ku).models[0],t.coordinateSystem=e&&e.coordinateSystem)}),r},dimensions:qO.prototype.dimensions});var QO,tR=["axisLine","axisTickLabel","axisName"],eR=["splitArea","splitLine"],nR=(u(iR,QO=oM),iR.prototype.render=function(e,t,n,i){var o=this.group;o.removeAll();var r=this._axisGroup;this._axisGroup=new Ur;var a=JO(e),s=new XS(e,a);W(tR,s.add,s),o.add(this._axisGroup),o.add(s.getGroup()),W(eR,function(t){e.get([t,"show"])&&oR[t](this,this.group,this._axisGroup,e)},this),Lp(r,this._axisGroup,e),QO.prototype.render.call(this,e,t,n,i)},iR.prototype.remove=function(){cM(this)},iR.type="singleAxis",iR);function iR(){var t=null!==QO&&QO.apply(this,arguments)||this;return t.type=iR.type,t.axisPointerClass="SingleAxisPointer",t}var oR={splitLine:function(t,e,n,i){var o=i.axis;if(!o.scale.isBlank()){for(var r=i.getModel("splitLine"),a=r.getModel("lineStyle"),s=a.get("width"),l=(l=a.get("color"))instanceof Array?l:[l],u=i.coordinateSystem.getRect(),h=o.isHorizontal(),c=[],p=0,d=o.getTicksCoords({tickModel:r}),f=[],g=[],y=0;ya)return!0;if(r){var s=QS(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1},DR.prototype.makeElOption=function(t,e,n,i,o){},DR.prototype.createPointerEl=function(t,e,n,i){var o,r=e.pointer;r&&(o=MR(t).pointerEl=new Ep[r.type](IR(e.pointer)),t.add(o))},DR.prototype.createLabelEl=function(t,e,n,i){var o;e.label&&(o=MR(t).labelEl=new Ts(IR(e.label)),t.add(o),kR(o,i))},DR.prototype.updatePointerEl=function(t,e,n){var i=MR(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},DR.prototype.updateLabelEl=function(t,e,n,i){var o=MR(t).labelEl;o&&(o.setStyle(e.label.style),n(o,{x:e.label.x,y:e.label.y}),kR(o,i))},DR.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),o=this._handle,r=n.getModel("handle"),a=n.get("status");if(!r.get("show")||!a||"hide"===a)return o&&i.remove(o),void(this._handle=null);this._handle||(e=!0,o=this._handle=Np(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){ee(t.event)},onmousedown:TR(this._onHandleDragMove,this,0,0),drift:TR(this._onHandleDragMove,this),ondragend:TR(this._onHandleDragEnd,this)}),i.add(o)),PR(o,n,!1),o.setStyle(r.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=r.get("size");E(s)||(s=[s,s]),o.scaleX=s[0]/2,o.scaleY=s[1]/2,ay(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},DR.prototype._moveHandleToValue=function(t,e){AR(this._axisPointerModel,!e&&this._moveAnimation,this._handle,LR(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},DR.prototype._onHandleDragMove=function(t,e){var n,i=this._handle;i&&(this._dragging=!0,n=this.updateHandleTransform(LR(i),[t,e],this._axisModel,this._axisPointerModel),this._payloadInfo=n,i.stopAnimation(),i.attr(LR(n)),MR(i).lastProp=null,this._doDispatchAxisPointer())},DR.prototype._doDispatchAxisPointer=function(){var t,e;this._handle&&(t=this._payloadInfo,e=this._axisModel,this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]}))},DR.prototype._onHandleDragEnd=function(){var t;this._dragging=!1,this._handle&&(t=this._axisPointerModel.get("value"),this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"}))},DR.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},DR.prototype.doClear=function(){},DR.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},DR);function DR(){this._dragging=!1,this.animationThreshold=15}function AR(t,e,n,i){!function n(i,t){{if(G(i)&&G(t)){var o=!0;return W(t,function(t,e){o=o&&n(i[e],t)}),!!o}return i===t}}(MR(n).lastProp,i)&&(MR(n).lastProp=i,e?vp(n,i,t):(n.stopAnimation(),n.attr(i)))}function kR(t,e){t[e.get(["label","show"])?"show":"hide"]()}function LR(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function PR(t,e,n){var i=e.get("z"),o=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=o&&(t.zlevel=o),t.silent=n)})}function NR(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function OR(t,e,n,i,o){var r=RR(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=Vp(a.get("padding")||0),l=a.getFont(),u=Ni(r,l),h=o.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=o.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f,g,y,m,v,x,_=o.verticalAlign;"bottom"===_&&(h[1]-=p),"middle"===_&&(h[1]-=p/2),f=h,g=c,y=p,v=(m=i).getWidth(),x=m.getHeight(),f[0]=Math.min(f[0]+g,v)-g,f[1]=Math.min(f[1]+y,x)-y,f[0]=Math.max(f[0],0),f[1]=Math.max(f[1],0);var b=a.get("backgroundColor");b&&"auto"!==b||(b=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:{text:r,textFont:l,fill:a.getTextColor(),padding:s,backgroundColor:b,borderColor:a.get("borderColor")||"transparent",borderRadius:a.get("borderRadius"),borderWidth:a.get("borderWidth")||0,shadowBlur:a.get("shadowBlur"),shadowColor:a.get("shadowColor"),shadowOffsetX:a.get("shadowOffsetX"),shadowOffsetY:a.get("shadowOffsetY")},z2:10}}function RR(t,e,o,n,i){t=e.scale.parse(t);var r,a=e.scale.getLabel({value:t},{precision:i.precision}),s=i.formatter;return s&&(r={value:Cb(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]},W(n,function(t){var e=o.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,i=e&&e.getDataParams(n);i&&r.seriesData.push(i)}),B(s)?a=s.replace("{value}",a):D(s)&&(a=s(r))),a}function ER(t,e,n){var i=qn();return ti(i,i,n.rotation),Qn(i,i,n.position),Dp([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function zR(t,e,n,i,o,r){var a=XS.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=o.get(["label","margin"]),OR(e,i,o,r,{position:ER(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function BR(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function VR(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function FR(t,e,n,i,o,r){return{cx:t,cy:e,r0:n,r:i,startAngle:o,endAngle:r,clockwise:!0}}var GR,HR=(u(WR,GR=CR),WR.prototype.makeElOption=function(t,e,n,i,o){var r,a,s=n.axis,l=s.grid,u=i.get("type"),h=XR(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(e,!0));u&&"none"!==u&&(r=NR(i),(a=YR[u](s,c,h)).style=r,t.graphicKey=a.type,t.pointer=a),zR(e,t,aM(l.model,n),n,i,o)},WR.prototype.getHandleTransform=function(t,e,n){var i=aM(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=ER(e.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},WR.prototype.updateHandleTransform=function(t,e,n,i){var o=n.axis,r=o.grid,a=o.getGlobalExtent(!0),s=XR(r,o).getOtherAxis(o).getGlobalExtent(),l="x"===o.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];return c[l]=u[l],{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},WR);function WR(){return null!==GR&&GR.apply(this,arguments)||this}function XR(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var YR={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:BR([e,n[0]],[e,n[1]],UR(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),o=n[1]-n[0];return{type:"Rect",shape:VR([e-i/2,n[0]],[i,o],UR(t))}}};function UR(t){return"x"===t.dim?0:1}oM.registerAxisPointerClass("CartesianAxisPointer",HR);var ZR,jR=(u(qR,ZR=gd),qR.type="axisPointer",qR.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},qR);function qR(){var t=null!==ZR&&ZR.apply(this,arguments)||this;return t.type=qR.type,t}gd.registerClass(jR),bx(function(t){var e;t&&(t.axisPointer&&0!==t.axisPointer.length||(t.axisPointer={}),(e=t.axisPointer.link)&&!E(e)&&(t.axisPointer.link=[e]))}),Sx(gv.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=$S(t,e)}),Mx({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,n){var i=t.currTrigger,a=[t.x,t.y],o=t,r=t.dispatchAction||N(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){fR(a)&&(a=lR({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=fR(a),u=o.axesInfo,h=s.axesInfo,c="leave"===i||fR(a),p={},d={},f={list:[],map:{}},g={showPointer:R(cR,d),showTooltip:R(pR,f)};W(s.coordSysMap,function(t,e){var r=l||t.containPoint(a);W(s.coordSysAxesInfo[e],function(t,e){var n,i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);c||!r||u&&!o||(null!=(n=o&&o.value)||l||(n=i.pointToData(a)),null!=n&&hR(t,n,g,!1,p))})});var y,m,v,x={};return W(h,function(o,t){var r=o.linkGroup;r&&!d[t]&&W(r.axesInfo,function(t,e){var n,i=d[e];t!==o&&i&&(n=i.value,r.mapper&&(n=o.axis.scale.parse(r.mapper(n,dR(t),dR(o)))),x[o.key]=n)})}),W(x,function(t,e){hR(h[e],t,g,!0,p)}),y=d,m=h,v=p.axesInfo=[],W(m,function(t,e){var n=t.axisPointerModel.option,i=y[e];i?(t.useHandle||(n.status="show"),n.value=i.value,n.seriesDataIndices=(i.payloadBatch||[]).slice()):t.useHandle||(n.status="hide"),"show"===n.status&&v.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:n.value})}),function(t,e,n,i){if(fR(e)||!t.list.length)return i({type:"hideTip"});var o=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}(f,a,t,r),function(t,e){var n=e.getZr(),i="axisPointerLastHighlights",o=uR(n)[i]||{},r=uR(n)[i]={};W(t,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&W(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;r[e]=t})});var a=[],s=[];W(o,function(t,e){r[e]||s.push(t)}),W(r,function(t,e){o[e]||a.push(t)}),s.length&&e.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:s}),a.length&&e.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:a})}(h,n),p}});var KR,$R=["x","y"],JR=["width","height"],QR=(u(tE,KR=CR),tE.prototype.makeElOption=function(t,e,n,i,o){var r,a,s=n.axis,l=s.coordinateSystem,u=iE(l,1-nE(s)),h=l.dataToPoint(e)[0],c=i.get("type");c&&"none"!==c&&(r=NR(i),(a=eE[c](s,h,u)).style=r,t.graphicKey=a.type,t.pointer=a),zR(e,t,JO(n),n,i,o)},tE.prototype.getHandleTransform=function(t,e,n){var i=JO(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var o=ER(e.axis,t,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},tE.prototype.updateHandleTransform=function(t,e,n,i){var o=n.axis,r=o.coordinateSystem,a=nE(o),s=iE(r,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=iE(r,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},tE);function tE(){return null!==KR&&KR.apply(this,arguments)||this}var eE={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:BR([e,n[0]],[e,n[1]],nE(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),o=n[1]-n[0];return{type:"Rect",shape:VR([e-i/2,n[0]],[i,o],nE(t))}}};function nE(t){return t.isHorizontal()?0:1}function iE(t,e){var n=t.getRect();return[n[$R[e]],n[$R[e]]+n[JR[e]]]}oM.registerAxisPointerClass("SingleAxisPointer",QR),Lx({type:"single"});var oE,rE=(u(aE,oE=Rg),aE.prototype.init=function(t){oE.prototype.init.apply(this,arguments),this.legendVisualProvider=new TI(N(this.getData,this),N(this.getRawData,this))},aE.prototype.fixData=function(t){var e=t.length,n=Ou(t,function(t){return t[2]}),i=[];n.buckets.each(function(t,e){i.push({name:e,dataList:t})});for(var o=i.length,r=-1,a=-1,s=0;s'+Wp(r,a)+""},aE.type="series.themeRiver",aE.dependencies=["singleAxis"],aE.defaultOption={zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",fontSize:11},emphasis:{label:{show:!0}}},aE);function aE(){var t=null!==oE&&oE.apply(this,arguments)||this;return t.type=aE.type,t.useColorPaletteOnData=!0,t}Rg.registerClass(rE);var sE,lE=(u(uE,sE=qg),uE.prototype.render=function(S,t,e){var M=S.getData(),I=this,T=this.group,C=S.getLayerSeries(),n=M.getLayout("layoutInfo"),i=n.rect,o=n.boundaryGap;function r(t){return t.name}T.x=0,T.y=i.y+o[0];var a=new Ox(this._layersSeries||[],C,r,r),D=[];function s(t,e,n){var i=I._layers;if("remove"!==t){for(var o,r=[],a=[],s=C[e].indices,l=0;lMath.PI/2?"right":"left"):c&&"center"!==c?"left"===c?(a=m.r0+h,x>Math.PI/2&&(c="right")):"right"===c&&(a=m.r-h,x>Math.PI/2&&(c="left")):(a=(m.r+m.r0)/2,c="center"),o.style.align=c,o.style.verticalAlign=I(e,"verticalAlign")||"middle",o.x=a*_+m.cx,o.y=a*b+m.cy;var p=I(e,"rotate"),d=0;"radial"===p?(d=-x)<-Math.PI/2&&(d+=Math.PI):"tangential"===p?(d=Math.PI/2-x)>Math.PI/2?d-=Math.PI:d<-Math.PI/2&&(d+=Math.PI):"number"==typeof p&&(d=p*Math.PI/180),o.rotation=d}),S.dirtyStyle()},yE);function yE(t,e,n){var i=fE.call(this)||this;i.z2=2,i.textConfig={inside:!0},qu(i).seriesIndex=e.seriesIndex;var o=new Ts({z2:4,silent:t.getModel().get(["label","silent"])});return i.setTextContent(o),i.updateData(!0,t,e,n),i}var mE="sunburstRootToNode";Mx({type:mE,update:"updateView"},function(o,t){t.eachComponent({mainType:"series",subType:"sunburst",query:o},function(t,e){var n=nD(o,[mE],t);{var i;n&&((i=t.getViewRoot())&&(o.direction=oD(i,n.node)?"rollUp":"drillDown"),t.resetViewRoot(n.node))}})});var vE="sunburstHighlight";Mx({type:vE,update:"none"},function(n,t,e){n=z({},n),t.eachComponent({mainType:"series",subType:"sunburst",query:n},function(t){var e=nD(n,[vE],t);e&&(n.dataIndex=e.node.dataIndex)}),e.dispatchAction(z(n,{type:"highlight"}))});Mx({type:"sunburstUnhighlight",update:"updateView"},function(t,e,n){t=z({},t),n.dispatchAction(z(t,{type:"downplay"}))});var xE,_E=(u(bE,xE=qg),bE.prototype.render=function(o,r,t,e){var n=this;this.seriesModel=o,this.api=t,this.ecModel=r;var a=o.getData(),s=a.tree.root,i=o.getViewRoot(),l=this.group,u=o.get("renderLabelForZeroData"),h=[];i.eachNode(function(t){h.push(t)});var c,p,d=this._oldChildren||[];!function(n,i){function t(t){return t.getId()}function e(t,e){!function(t,e){var n;u||!t||t.getValue()||(t=null),t!==s&&e!==s&&(e&&e.piece?t?(e.piece.updateData(!1,t,o,r),a.setItemGraphicEl(t.dataIndex,e.piece)):function(t){t&&t.piece&&(l.remove(t.piece),t.piece=null)}(e):t&&(n=new gE(t,o,r),l.add(n),a.setItemGraphicEl(t.dataIndex,n)))}(null==t?null:n[t],null==e?null:i[e])}0===n.length&&0===i.length||new Ox(i,n,t,t).add(e).update(e).remove(R(e,null)).execute()}(h,d),c=s,0<(p=i).depth?(n.virtualPiece?n.virtualPiece.updateData(!1,c,o,r):(n.virtualPiece=new gE(c,o,r),l.add(n.virtualPiece)),p.piece.off("click"),n.virtualPiece.on("click",function(t){n._rootToNode(p.parentNode)})):n.virtualPiece&&(l.remove(n.virtualPiece),n.virtualPiece=null),this._initEvents(),this._oldChildren=h},bE.prototype._initEvents=function(){var a=this;this.group.off("click"),this.group.on("click",function(o){var r=!1;a.seriesModel.getViewRoot().eachNode(function(t){var e,n,i;!r&&t.piece&&t.piece===o.target&&("rootToNode"===(e=t.getModel().get("nodeClick"))?a._rootToNode(t):"link"!==e||(i=(n=t.getModel()).get("link"))&&Kp(i,n.get("target",!0)||"_blank"),r=!0)})})},bE.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:mE,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},bE.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,o=t[1]-n.cy,r=Math.sqrt(i*i+o*o);return r<=n.r&&r>=n.r0}},bE.type="sunburst",bE);function bE(){var t=null!==xE&&xE.apply(this,arguments)||this;return t.type=bE.type,t}qg.registerClass(_E);var wE=Math.PI/180;function SE(t,e){if("function"==typeof e)return t.sort(e);var i="asc"===e;return t.sort(function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0==n?(t.dataIndex-e.dataIndex)*(i?-1:1):n})}function ME(r,a){return a=a||[0,0],X(["x","y"],function(t,e){var n=this.getAxis(t),i=a[e],o=r[e]/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o))},this)}function IE(r,a){return a=a||[0,0],X([0,1],function(t){var e=a[t],n=r[t]/2,i=[],o=[];return i[t]=e-n,o[t]=e+n,i[1-t]=o[1-t]=a[1-t],Math.abs(this.dataToPoint(i)[t]-this.dataToPoint(o)[t])},this)}function TE(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,o=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o))}function CE(a,s){return s=s||[0,0],X(["Radius","Angle"],function(t,e){var n=this["get"+t+"Axis"](),i=s[e],o=a[e]/2,r="category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-o)-n.dataToCoord(i+o));return"Angle"===t&&(r=r*Math.PI/180),r},this)}Tx(R(function(t,e,D){e.eachSeriesByType(t,function(t){var e=t.get("center"),n=t.get("radius");E(n)||(n=[0,n]),E(e)||(e=[e,e]);var i=D.getWidth(),o=D.getHeight(),h=Math.min(i,o),c=Zl(e[0],i),p=Zl(e[1],o),d=Zl(n[0],h/2),r=Zl(n[1],h/2),a=-t.get("startAngle")*wE,f=t.get("minAngle")*wE,g=t.getData().tree.root,s=t.getViewRoot(),y=s.depth,l=t.get("sort");null!=l&&!function e(t,n){var i=t.children||[];t.children=SE(i,n);i.length&&W(t.children,function(t){e(t,n)})}(s,l);var u=0;W(s.children,function(t){isNaN(t.getValue())||u++});var m,v,x=s.getValue(),_=Math.PI/(x||u)*2,b=0t[1]&&t.reverse(),{coordSys:{type:"polar",cx:o.cx,cy:o.cy,r:t[1],r0:t[0]},api:{coord:function(t){var e=r.dataToRadius(t[0]),n=a.dataToAngle(t[1]),i=o.coordToPoint([e,n]);return i.push(e,n*Math.PI/180),i},size:N(CE,o)}}},calendar:function(n){var t=n.getRect(),e=n.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:n.getCellWidth(),cellHeight:n.getCellHeight(),rangeInfo:{start:e.start,end:e.end,weeks:e.weeks,dayCount:e.allDay}},api:{coord:function(t,e){return n.dataToPoint(t,e)}}}}},ZE=(u(jE,LE=Rg),jE.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},jE.prototype.getInitialData=function(t,e){return __(this.getSource(),this)},jE.prototype.getDataParams=function(t,e,n){var i=LE.prototype.getDataParams.call(this,t,e);return n&&(i.info=PE(n).info),i},jE.type="series.custom",jE.dependencies=["grid","polar","geo","singleAxis","calendar"],jE.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,clip:!1},jE);function jE(){var t=null!==LE&&LE.apply(this,arguments)||this;return t.type=jE.type,t}gd.registerClass(ZE);var qE,KE=(u($E,qE=qg),$E.prototype.render=function(n,t,e,i){var o=this._data,r=n.getData(),a=this.group,s=uz(n,r,t,e);r.diff(o).add(function(t){hz(null,t,s(t,i),n,a,r)}).update(function(t,e){hz(o.getItemGraphicEl(e),t,s(t,i),n,a,r)}).remove(function(t){xz(o.getItemGraphicEl(t),n,a)}).execute();var l=n.get("clip",!0)?xS(n.coordinateSystem,!1,n):null;l?a.setClipPath(l):a.removeClipPath(),this._data=r},$E.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},$E.prototype.incrementalRender=function(t,e,n,i,o){var r=e.getData(),a=uz(e,r,n,i);function s(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var l=t.start;le[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,o=n*n+i*i,r=this.r,a=this.r0;return o<=r*r&&a*a<=o}}},Wz.prototype.convertToPixel=function(t,e,n){return Xz(e)===this?this.dataToPoint(n):null},Wz.prototype.convertFromPixel=function(t,e,n){return Xz(e)===this?this.pointToData(n):null},Wz);function Wz(t){this.dimensions=["radius","angle"],this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new Ez,this._angleAxis=new Fz,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}function Xz(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function Yz(t,e){var n,i,o=this,r=o.getAngleAxis(),a=o.getRadiusAxis();r.scale.setExtent(1/0,-1/0),a.scale.setExtent(1/0,-1/0),t.eachSeries(function(t){var e;t.coordinateSystem===o&&(W(Lb(e=t.getData(),"radius"),function(t){a.scale.unionExtentFromData(e,t)}),W(Lb(e,"angle"),function(t){r.scale.unionExtentFromData(e,t)}))}),Mb(r.scale,r.model),Mb(a.scale,a.model),"category"!==r.type||r.onBand||(n=r.getExtent(),i=360/r.scale.count(),r.inverse?n[1]+=i:n[1]-=i,r.setExtent(n[0],n[1]))}function Uz(t,e){var n;t.type=e.get("type"),t.scale=Ib(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),"angleAxis"===e.mainType&&(t.inverse=t.inverse!==e.get("clockwise"),n=e.get("startAngle"),t.setExtent(n,n+(t.inverse?-360:360))),(e.axis=t).model=e}var Zz={dimensions:Hz.prototype.dimensions,create:function(t,s){var l=[];return t.eachComponent("polar",function(t,e){var n=new Hz(e+"");n.update=Yz;var i=n.getRadiusAxis(),o=n.getAngleAxis(),r=t.findAxisModel("radiusAxis"),a=t.findAxisModel("angleAxis");Uz(i,r),Uz(o,a),function(t,e,n){var i=e.get("center"),o=n.getWidth(),r=n.getHeight();t.cx=Zl(i[0],o),t.cy=Zl(i[1],r);var a=t.getRadiusAxis(),s=Math.min(o,r)/2,l=e.get("radius");null==l?l=[0,"100%"]:E(l)||(l=[0,l]);var u=[Zl(l[0],s),Zl(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(n,t,s),l.push(n),(t.coordinateSystem=n).model=t}),t.eachSeries(function(t){var e;"polar"===t.get("coordinateSystem")&&(e=t.getReferringComponents("polar",ku).models[0],t.coordinateSystem=e.coordinateSystem)}),l}};af.register("polar",Zz);var jz=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function qz(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),o=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:o[0],y2:o[1]}}function Kz(t){return t.getRadiusAxis().inverse?0:1}function $z(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var Jz,Qz=(u(tB,Jz=oM),tB.prototype.render=function(e,t){var n,i,o,r,a,s;this.group.removeAll(),e.get("show")&&(n=e.axis,i=n.polar,o=i.getRadiusAxis().getExtent(),r=n.getTicksCoords(),a=n.getMinorTicksCoords(),$z(s=X(n.getViewLabels(),function(t){return(t=A(t)).coord=n.dataToCoord(t.tickValue),t})),$z(r),W(jz,function(t){!e.get([t,"show"])||n.scale.isBlank()&&"axisLine"!==t||eB[t](this.group,e,i,r,a,o,s)},this))},tB.type="angleAxis",tB);function tB(){var t=null!==Jz&&Jz.apply(this,arguments)||this;return t.type=tB.type,t.axisPointerClass="PolarAxisPointer",t}var eB={axisLine:function(t,e,n,i,o,r){var a=e.getModel(["axisLine","lineStyle"]),s=Kz(n),l=s?0:1,u=0===r[l]?new ea({shape:{cx:n.cx,cy:n.cy,r:r[s]},style:a.getLineStyle(),z2:1,silent:!0}):new rl({shape:{cx:n.cx,cy:n.cy,r:r[s],r0:r[l]},style:a.getLineStyle(),z2:1,silent:!0});u.style.fill=null,t.add(u)},axisTick:function(t,e,n,i,o,r){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=r[Kz(n)],u=X(i,function(t){return new xa({shape:qz(n,[l,l+s],t.coord)})});t.add(fp(u,{style:O(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,o,r){if(o.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=r[Kz(n)],h=[],c=0;cs?"left":"right",h=Math.abs(a[1]-l)/r<.3?"middle":a[1]>l?"top":"bottom";m&&m[o]&&(G(n=m[o])&&n.textStyle&&(i=new vc(n.textStyle,v,v.ecModel)));var c,p=new Ts({silent:XS.isLabelSilent(f),style:$h(i,{x:a[0],y:a[1],fill:i.getTextColor()||f.get(["axisLine","lineStyle","color"]),text:t.formattedLabel,align:u,verticalAlign:h})});d.add(p),_&&((c=XS.makeAxisEventDataBase(f)).targetType="axisLabel",c.value=t.rawLabel,qu(p).eventData=c)},this)},splitLine:function(t,e,n,i,o,r){for(var a=e.getModel("splitLine").getModel("lineStyle"),s=0,l=(l=a.get("color"))instanceof Array?l:[l],u=[],h=0;hf?"left":"right",Math.abs(s[1]-g)/d<.3?"middle":s[1]>g?"top":"bottom"),{position:s,align:l,verticalAlign:u}}(e,n,l,p))},hB);function hB(){return null!==lB&&lB.apply(this,arguments)||this}var cB={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:BR(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var o=Math.max(1,t.getBandWidth()),r=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:FR(e.cx,e.cy,i[0],i[1],(-n-o/2)*r,(o/2-n)*r)}:{type:"Sector",shape:FR(e.cx,e.cy,n-o/2,n+o/2,0,2*Math.PI)}}};oM.registerAxisPointerClass("PolarAxisPointer",uB),Tx(R(function(t,e,n){var N={},O=function(t){var g={};W(t,function(t,e){var n=t.getData(),i=t.coordinateSystem,o=i.getBaseAxis(),r=wz(i,o),a=o.getExtent(),s="category"===o.type?o.getBandWidth():Math.abs(a[1]-a[0])/n.count(),l=g[r]||{bandWidth:s,remainedWidth:s,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},u=l.stacks;g[r]=l;var h=bz(t);u[h]||l.autoWidthCount++,u[h]=u[h]||{width:0,maxWidth:0};var c=Zl(t.get("barWidth"),s),p=Zl(t.get("barMaxWidth"),s),d=t.get("barGap"),f=t.get("barCategoryGap");c&&!u[h].width&&(c=Math.min(l.remainedWidth,c),u[h].width=c,l.remainedWidth-=c),p&&(u[h].maxWidth=p),null!=d&&(l.gap=d),null!=f&&(l.categoryGap=f)});var p={};return W(g,function(t,n){p[n]={};var e=t.stacks,i=t.bandWidth,o=Zl(t.categoryGap,i),r=Zl(t.gap,1),a=t.remainedWidth,s=t.autoWidthCount,l=(a-o)/(s+(s-1)*r),l=Math.max(l,0);W(e,function(t,e){var n=t.maxWidth;n&&n=i.start.time&&n.timea.end.time&&o.reverse(),o},_B.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/864e5)-Math.floor(n[0].time/864e5)+1,o=new Date(n[0].time),r=o.getDate(),a=n[1].date.getDate();o.setDate(r+i-1);var s=o.getDate();if(s!==a)for(var l=0i.weeks||0===t&&ei.lweek)return null;var o=7*(t-1)-i.fweek+e,r=new Date(i.start.time);return r.setDate(+i.start.d+o),this.getDateInfo(r)},_B.create=function(t,e){var n=[];return t.eachComponent("calendar",function(t){var e=new _B(t);n.push(e),t.coordinateSystem=e}),t.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=n[t.get("calendarIndex")||0])}),n},_B.dimensions=["time","value"],_B);function _B(t,e,n){this.type="calendar",this.dimensions=_B.dimensions,this.getDimensionsInfo=_B.getDimensionsInfo,this._model=t}function bB(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}af.register("calendar",xB);var wB,SB=(u(MB,wB=gd),MB.prototype.init=function(t,e,n){var i=sd(t);wB.prototype.init.apply(this,arguments),IB(t,i)},MB.prototype.mergeOption=function(t){wB.prototype.mergeOption.apply(this,arguments),IB(this.option,t)},MB.prototype.getCellSize=function(){return this.option.cellSize},MB.type="calendar",MB.defaultOption={zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},MB);function MB(){var t=null!==wB&&wB.apply(this,arguments)||this;return t.type=MB.type,t}function IB(t,i){var e=t.cellSize,o=E(e)?e:t.cellSize=[e,e];1===o.length&&(o[1]=o[0]);var n=X([0,1],function(t){var e,n;return(null!=(e=i)[td[n=t][0]]||null!=e[td[n][1]]&&null!=e[td[n][2]])&&(o[t]="auto"),null!=o[t]&&"auto"!==o[t]});ad(t,i,{type:"box",ignoreSize:n})}gd.registerClass(SB);var TB,CB={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},DB={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},AB=(u(kB,TB=Xg),kB.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var o=t.coordinateSystem,r=o.getRangeInfo(),a=o.getOrient();this._renderDayRect(t,r,i),this._renderLines(t,r,a,i),this._renderYearText(t,r,a,i),this._renderMonthText(t,a,i),this._renderWeekText(t,r,a,i)},kB.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),r=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new ha({shape:{x:l[0],y:l[1],width:r,height:a},cursor:"default",style:o});n.add(u)}},kB.prototype._renderLines=function(n,t,i,o){var r=this,a=n.coordinateSystem,s=n.getModel(["splitLine","lineStyle"]).getLineStyle(),l=n.get(["splitLine","show"]),e=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=t.start,h=0;u.time<=t.end.time;h++){p(u.formatedDate),0===h&&(u=a.getDateInfo(t.start.y+"-"+t.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=a.getDateInfo(c)}function p(t){r._firstDayOfMonth.push(a.getDateInfo(t)),r._firstDayPoints.push(a.dataToRect([t],!1).tl);var e=r._getLinePointsOfOneWeek(n,t,i);r._tlpoints.push(e[0]),r._blpoints.push(e[e.length-1]),l&&r._drawSplitline(e,s,o)}p(a.getNextNDay(t.end.time,1).formatedDate),l&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,e,i),s,o),l&&this._drawSplitline(r._getEdgesPoints(r._blpoints,e,i),s,o)},kB.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===n?0:1;return i[0][o]=i[0][o]-e/2,i[1][o]=i[1][o]+e/2,i},kB.prototype._drawSplitline=function(t,e,n){var i=new Aa({z2:20,shape:{points:t},style:e});n.add(i)},kB.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,o=i.getDateInfo(e),r=[],a=0;a<7;a++){var s=i.getNextNDay(o.time,a),l=i.dataToRect([s.time],!1);r[2*s.day]=l.tl,r[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return r},kB.prototype._formatterLabel=function(t,e){return"string"==typeof t&&t?Zp(t,e):"function"==typeof t?t(e):e.nameMap},kB.prototype._yearTextPositionControl=function(t,e,n,i,o){var r=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=o,s=["center","top"]):"left"===i?r-=o:"right"===i?(r+=o,s=["center","top"]):a-=o;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:r,y:a,style:{align:s[0],verticalAlign:s[1]}}},kB.prototype._renderYearText=function(t,e,n,i){var o,r,a,s,l,u,h,c,p,d,f,g,y=t.getModel("yearLabel");y.get("show")&&(o=y.get("margin"),r=(r=y.get("position"))||("horizontal"!==n?"top":"left"),s=((a=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]])[0][0]+a[1][0])/2,l=(a[0][1]+a[1][1])/2,h={top:[s,a[u="horizontal"===n?0:1][1]],bottom:[s,a[1-u][1]],left:[a[1-u][0],l],right:[a[u][0],l]},c=e.start.y,+e.end.y>+e.start.y&&(c=c+"-"+e.end.y),p=y.get("formatter"),d={start:e.start.y,end:e.end.y,nameMap:c},f=this._formatterLabel(p,d),(g=new Ts({z2:30,style:$h(y,{text:f})})).attr(this._yearTextPositionControl(g,h[r],n,r,o)),i.add(g))},kB.prototype._monthTextPositionControl=function(t,e,n,i,o){var r="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=o,e&&(r="center"),"start"===i&&(a="bottom")):(s+=o,e&&(a="middle"),"start"===i&&(r="right")),{x:s,y:l,align:r,verticalAlign:a}},kB.prototype._renderMonthText=function(t,e,n){var i=t.getModel("monthLabel");if(i.get("show")){var o=i.get("nameMap"),r=i.get("margin"),a=i.get("position"),s=i.get("align"),l=[this._tlpoints,this._blpoints];B(o)&&(o=CB[o.toUpperCase()]||[]);for(var u="start"===a?0:1,h="horizontal"===e?0:1,r="start"===a?-r:r,c="center"===s,p=0;pd.getHeight()&&(l.position="top",o=!0),r=o?-5-n.height:f+8,i+n.width/2>d.getWidth()?(l.position=["100%",r],e.align="right"):i-n.width/2<0&&(l.position=[0,r],e.align="left"))}))},UB.prototype.updateView=function(t,e,n,i){W(this._features,function(t){t instanceof EB&&t.updateView&&t.updateView(t.model,e,n,i)})},UB.prototype.remove=function(e,n){W(this._features,function(t){t instanceof EB&&t.remove&&t.remove(e,n)}),this.group.removeAll()},UB.prototype.dispose=function(e,n){W(this._features,function(t){t instanceof EB&&t.dispose&&t.dispose(e,n)})},UB.type="toolbox",UB);function UB(){return null!==XB&&XB.apply(this,arguments)||this}Xg.registerClass(YB);var ZB,jB=(u(qB,ZB=EB),qB.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",o="svg"===e.getZr().painter.getType()?"svg":n.get("type",!0)||"png",r=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||x.browser.ie||x.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var a=atob(r.split(",")[1]),s=a.length,l=new Uint8Array(s);s--;)l[s]=a.charCodeAt(s);var u=new Blob([l]);window.navigator.msSaveOrOpenBlob(u,i+"."+o)}else{var h=n.get("lang"),c='';window.open().document.write(c)}else{var p=document.createElement("a");p.download=i+"."+o,p.target="_blank",p.href=r;var d=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});p.dispatchEvent(d)}},qB.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},qB);function qB(){return null!==ZB&&ZB.apply(this,arguments)||this}jB.prototype.unusable=!x.canvasSupported,BB("saveAsImage",jB);var KB,$B="__ec_magicType_stack__",JB=[["line","bar"],["stack"]],QB=(u(tV,KB=EB),tV.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return W(t.get("type"),function(t){e[t]&&(n[t]=e[t])}),n},tV.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},tV.prototype.onclick=function(t,e,u){var h,n,i,o,r,c=this.model,a=c.get(["seriesIndex",u]);eV[u]&&(h={series:[]},W(JB,function(t){0<=k(t,u)&&W(t,function(t){c.setIconStatus(t,"normal")})}),c.setIconStatus(u,"emphasis"),t.eachComponent({mainType:"series",query:null==a?null:{seriesIndex:a}},function(t){var e=t.subType,n=t.id,i=eV[u](e,n,t,c);i&&(O(i,t.option),h.series.push(i));var o=t.coordinateSystem;if(o&&"cartesian2d"===o.type&&("line"===u||"bar"===u)){var r=o.getAxesByScale("ordinal")[0];if(r){var a=r.dim+"Axis",s=t.getReferringComponents(a,ku).models[0].componentIndex;h[a]=h[a]||[];for(var l=0;l<=s;l++)h[a][s]=h[a][s]||{};h[a][s].boundaryGap="bar"===u}}}),"stack"===u&&(n=h.series,i=t.getLocale(["toolbox","magicType","title","tiled"]),o=t.getLocale(["toolbox","magicType","title"]),r=n&&n[0]&&n[0].stack===$B?_({stack:i},o):A(o)),e.dispatchAction({type:"changeMagicType",currentType:u,newOption:h,newTitle:r,featureName:"magicType"}))},tV);function tV(){return null!==KB&&KB.apply(this,arguments)||this}var eV={line:function(t,e,n,i){if("bar"===t)return _({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return _({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var o=n.get("stack")===$B;if("line"===t||"bar"===t)return i.setIconStatus("stack",o?"normal":"emphasis"),_({id:e,stack:o?"":$B},i.get(["option","stack"])||{},!0)}};Mx({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),BB("magicType",QB);var nV=new Array(60).join("-"),iV="\t";function oV(t){var o,r,a,h,e=(o={},r=[],a=[],t.eachRawSeries(function(t){var e,n,i=t.coordinateSystem;!i||"cartesian2d"!==i.type&&"polar"!==i.type||"category"!==(e=i.getBaseAxis()).type?r.push(t):(n=e.dim+"_"+e.index,o[n]||(o[n]={categoryAxis:e,valueAxis:i.getOtherAxis(e),series:[]},a.push({axisDim:e.dim,axisIndex:e.index})),o[n].series.push(t))}),{seriesGroupByCategoryAxis:o,other:r,meta:a});return{value:T([(h=[],W(e.seriesGroupByCategoryAxis,function(t,e){var n=t.categoryAxis,i=t.valueAxis.dim,o=[" "].concat(X(t.series,function(t){return t.name})),r=[n.model.getCategories()];W(t.series,function(t){r.push(t.getRawData().mapArray(i,function(t){return t}))});for(var a=[o.join(iV)],s=0;st[1]&&t.reverse(),t}function gV(t,e){return Au(t,e,{includeMainTypes:cV})}var yV={grid:function(t,i){var o=t.xAxisModels,r=t.yAxisModels,e=t.gridModels,n=ut(),a={},s={};(o||r||e)&&(W(o,function(t){var e=t.axis.grid.model;n.set(e.id,e),a[e.id]=!0}),W(r,function(t){var e=t.axis.grid.model;n.set(e.id,e),s[e.id]=!0}),W(e,function(t){n.set(t.id,t),a[t.id]=!0,s[t.id]=!0}),n.each(function(t){var e=t.coordinateSystem,n=[];W(e.getCartesians(),function(t,e){(0<=k(o,t.getAxis("x").model)||0<=k(r,t.getAxis("y").model))&&n.push(t)}),i.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:n[0],coordSyses:n,getPanelRect:vV.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,n){W(t.geoModels,function(t){var e=t.coordinateSystem;n.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:e,coordSyses:[e],getPanelRect:vV.geo})})}},mV=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,o=t.gridModel;return!o&&n&&(o=n.axis.grid.model),!o&&i&&(o=i.axis.grid.model),o&&o===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],vV={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Cp(t)),e}},xV={lineX:R(_V,0),lineY:R(_V,1),rect:function(t,e,n){var i=e[hV[t]]([n[0][0],n[1][0]]),o=e[hV[t]]([n[0][1],n[1][1]]),r=[fV([i[0],o[0]]),fV([i[1],o[1]])];return{values:r,xyMinMax:r}},polygon:function(n,i,t){var o=[[1/0,-1/0],[1/0,-1/0]];return{values:X(t,function(t){var e=i[hV[n]](t);return o[0][0]=Math.min(o[0][0],e[0]),o[1][0]=Math.min(o[1][0],e[1]),o[0][1]=Math.max(o[0][1],e[0]),o[1][1]=Math.max(o[1][1],e[1]),e}),xyMinMax:o}}};function _V(t,e,n,i){var o=n.getAxis(["x","y"][t]),r=fV(X([0,1],function(t){return e?o.coordToData(o.toLocalCoord(i[t])):o.toGlobalCoord(o.dataToCoord(i[t]))})),a=[];return a[t]=r,a[1-t]=[NaN,NaN],{values:r,xyMinMax:a}}var bV={lineX:R(wV,0),lineY:R(wV,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,n,i){return X(t,function(t,e){return[t[0]-i[0]*n[e][0],t[1]-i[1]*n[e][1]]})}};function wV(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function SV(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var MV=W,IV=Cu();function TV(t){var e=IV(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}gd.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var CV=["x","y","radius","angle","single"],DV=["cartesian2d","polar","singleAxis"];function AV(t){return t+"Axis"}function kV(t,e){var n,o=ut(),i=[],r=ut();for(t.eachComponent({mainType:"dataZoom",query:e},function(t){r.get(t.uid)||s(t)});n=!1,t.eachComponent("dataZoom",a),n;);function a(t){var i;!r.get(t.uid)&&(i=!1,t.eachTargetAxis(function(t,e){var n=o.get(t);n&&n[e]&&(i=!0)}),i)&&(s(t),n=!0)}function s(t){r.set(t.uid,!0),i.push(t),t.eachTargetAxis(function(t,e){(o.get(t)||o.set(t,[]))[e]=!0})}return i}function LV(t){var a=t.ecModel,s={infoList:[],infoMap:ut()};return t.eachTargetAxis(function(t,e){var n,i,o,r=a.getComponent(AV(t),e);!r||(n=r.getCoordSysModel())&&(i=n.uid,(o=s.infoMap.get(i))||(o={model:n,axisModels:[]},s.infoList.push(o),s.infoMap.set(i,o)),o.axisModels.push(r))}),s}var PV=(NV.prototype.add=function(t){this.indexList.push(t),this.indexMap[t]=!0},NV);function NV(){this.indexList=[],this.indexMap=[]}var OV,RV=(u(EV,OV=gd),EV.prototype.init=function(t,e,n){var i=zV(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},EV.prototype.mergeOption=function(t){var e=zV(t);_(this.option,t,!0),_(this.settledOption,e,!0),this._doInit(e)},EV.prototype._doInit=function(t){var n=this.option;x.canvasSupported||(n.realtime=!1),this._setDefaultThrottle(t),this._updateRangeUse(t);var i=this.settledOption;W([["start","startValue"],["end","endValue"]],function(t,e){"value"===this._rangePropMode[e]&&(n[t[0]]=i[t[0]]=null)},this),this._resetTarget()},EV.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ut();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each(function(t){t.indexList.length&&(this._noTarget=!1)},this)},EV.prototype._fillSpecifiedTargetAxis=function(i){var o=!1;return W(CV,function(t){var e,n=this.getReferringComponents(AV(t),Lu);n.specified&&(o=!0,e=new PV,W(n.models,function(t){e.add(t.componentIndex)}),i.set(t,e))},this),o},EV.prototype._fillAutoTargetAxisByOrient=function(r,e){var t,i=this.ecModel,a=!0;function n(t,e){var n,i,o=t[0];o&&((n=new PV).add(o.componentIndex),r.set(e,n),a=!1,"x"!==e&&"y"!==e||(i=o.getReferringComponents("grid",ku).models[0])&&W(t,function(t){o.componentIndex!==t.componentIndex&&i===t.getReferringComponents("grid",ku).models[0]&&n.add(t.componentIndex)}))}a&&(t="vertical"===e?"y":"x",n(i.findComponents({mainType:t+"Axis"}),t)),a&&n(i.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single"),a&&W(CV,function(t){var e,n;a||(e=i.findComponents({mainType:AV(t),filter:function(t){return"category"===t.get("type",!0)}}))[0]&&((n=new PV).add(e[0].componentIndex),r.set(t,n))},this)},EV.prototype._makeAutoOrientByTargetAxis=function(){var e;return this.eachTargetAxis(function(t){e=e||t},this),"y"===e?"vertical":"horizontal"},EV.prototype._setDefaultThrottle=function(t){var e;t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle&&(e=this.ecModel.option,this.option.throttle=e.animation&&0c[1];if(a&&!s&&!l)return!0;a&&(i=!0),s&&(e=!0),l&&(n=!0)}return i&&e&&n}):ZV(h,function(t){var e;"empty"===o?n.setData(u=u.map(t,function(t){return(e=t)>=c[0]&&e<=c[1]?t:NaN;var e})):((e={})[t]=c,u.selectRange(e))}),ZV(h,function(t){u.setApproximateExtent(c,t)}))}))},KV.prototype._updateMinMaxSpan=function(){var i=this._minMaxSpan={},o=this._dataZoomModel,r=this._dataExtent;ZV(["min","max"],function(t){var e=o.get(t+"Span"),n=o.get(t+"ValueSpan");null!=n&&(n=this.getAxisModel().axis.scale.parse(n)),null!=n?e=Ul(r[0]+n,r,[0,100],!0):null!=e&&(n=Ul(e,[0,100],r,!0)-r[0]),i[t+"Span"]=e,i[t+"ValueSpan"]=n},this)},KV.prototype._setAxisModel=function(){var t,e,n=this.getAxisModel(),i=this._percentWindow,o=this._valueWindow;i&&(t=Jl(o,[0,500]),t=Math.min(t,20),e=n.axis.scale.rawExtentInfo,0!==i[0]&&e.setDeterminedMinMax("min",+o[0].toFixed(t)),100!==i[1]&&e.setDeterminedMinMax("max",+o[1].toFixed(t)),e.freeze())},KV);function KV(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}Sx(gv.PROCESSOR.FILTER,{getTargetSeries:function(r){function t(o){r.eachComponent("dataZoom",function(i){i.eachTargetAxis(function(t,e){var n=r.getComponent(AV(t),e);o(t,e,n,i)})})}t(function(t,e,n,i){n.__dzAxisProxy=null});var o=[];t(function(t,e,n,i){n.__dzAxisProxy||(n.__dzAxisProxy=new qV(t,e,i,r),o.push(n.__dzAxisProxy))});var e=ut();return W(o,function(t){W(t.getTargetSeriesModels(),function(t){e.set(t.uid,t)})}),e},overallReset:function(t,i){t.eachComponent("dataZoom",function(n){n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).reset(n)}),n.eachTargetAxis(function(t,e){n.getAxisProxy(t,e).filterData(n,i)})}),t.eachComponent("dataZoom",function(t){var e,n,i=t.findRepresentativeAxisProxy();i&&(e=i.getDataPercentWindow(),n=i.getDataValueWindow(),t.setCalculatedRange({start:e[0],end:e[1],startValue:n[0],endValue:n[1]}))})}}),Mx("dataZoom",function(e,t){W(kV(t,e),function(t){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})});var $V,JV=W,QV=fu+"toolbox-dataZoom_",tF=(u(eF,$V=EB),eF.prototype.render=function(t,e,n,i){var o;this.brushController||(this.brushController=new mL(n.getZr()),this.brushController.on("brush",N(this._onBrush,this)).mount()),function(t,e,n,i,o){var r=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(r="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n.isZoomActive=r,t.setIconStatus("zoom",r?"emphasis":"normal");var a=new pV(aF(t),e,{include:["grid"]}).makePanelOpts(o,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"});n.brushController.setPanels(a).enableBrush(!(!r||!a.length)&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(210,219,238,0.2)"}})}(t,e,this,i,n),o=e,t.setIconStatus("back",1"}(n.get("backgroundColor"),i,o):"")},vF.prototype.setEnterable=function(t){this._enterable=t},vF.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},vF.prototype.moveTo=function(t,e){var n=this._styleCoord;yF(n,this._zr,this._appendToBody,t,e);var i=this.el.style;i.left=n[0]+"px",i.top=n[1]+"px"},vF.prototype.hide=function(){this.el.style.display="none",this._show=!1},vF.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(N(this.hide,this),t)):this.hide())},vF.prototype.isShow=function(){return this._show},vF.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},vF.prototype.getOuterSize=function(){var t,e=this.el.clientWidth,n=this.el.clientHeight;return document.defaultView&&document.defaultView.getComputedStyle&&(t=document.defaultView.getComputedStyle(this.el))&&(e+=parseInt(t.borderLeftWidth,10)+parseInt(t.borderRightWidth,10),n+=parseInt(t.borderTopWidth,10)+parseInt(t.borderBottomWidth,10)),{width:e,height:n}},vF);function vF(t,e,n){if(this._show=!1,this._styleCoord=[0,0],this._enterable=!0,this._firstShow=!0,x.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var o=this._zr=e.getZr(),r=this._appendToBody=n&&n.appendToBody;yF(this._styleCoord,o,r,e.getWidth()/2,e.getHeight()/2),r?document.body.appendChild(i):t.appendChild(i),this._container=t;var a=this;i.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},i.onmousemove=function(t){var e;t=t||window.event,a._enterable||(e=o.handler,Qt(o.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t))},i.onmouseleave=function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}}var xF=(_F.prototype.update=function(){},_F.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},_F.prototype.setContent=function(t,e,n,i,o){this.el&&this._zr.remove(this.el);for(var r={},a=t,s="{marker",l=a.indexOf(s);0<=l;){var u=a.indexOf("|}"),h=a.substr(l+s.length,u-l-s.length);-1'+Hp(t)+""+a:"")+e.reverse().join(a)),o.push("
")}})},this),o.pop();var s=o.join(this._newLine+this._newLine),l=e.position;this._showOrMove(r,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(r,l,i[0],i[1],this._tooltipContent,p):this._showTooltipContent(r,s,p,Math.random()+"",i[0],i[1],l,void 0,f)})},CF.prototype._showSeriesItemTooltip=function(t,e,n){var i,o,r,a,s,l,u=this._ecModel,h=qu(e),c=h.seriesIndex,p=u.getSeriesByIndex(c),d=h.dataModel||p,f=h.dataIndex,g=h.dataType,y=d.getData(g),m=DF([y.getItemModel(f),d,p&&(p.coordinateSystem||{}).model,this._tooltipModel]),v=m.get("trigger");null!=v&&"item"!==v||(i=m.get("order"),(o=d.getDataParams(f,g)).marker=jp({color:o.color,renderMode:this._renderMode}),r=d.formatTooltip(f,!1,g,this._renderMode,i),s=G(r)?(a=r.html,r.markers):(a=r,null),l="item_"+d.name+"_"+f,this._showOrMove(m,function(){this._showTooltipContent(m,a,o,l,t.offsetX,t.offsetY,t.position,t.target,s)}),n({type:"showTip",dataIndexInside:f,dataIndex:y.getRawIndex(f),seriesIndex:c,from:this.uid}))},CF.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;B(i)&&(i={content:i,formatter:i});var o=new vc(i,this._tooltipModel,this._ecModel),r=o.get("content"),a=Math.random()+"";this._showOrMove(o,function(){this._showTooltipContent(o,r,o.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e)}),n({type:"showTip",from:this.uid})},CF.prototype._showTooltipContent=function(n,t,i,e,o,r,a,s,l){var u,h,c,p,d;this._ticket="",n.get("showContent")&&n.get("show")&&(u=this._tooltipContent,h=n.get("formatter"),a=a||n.get("position"),c=t,p=this._getNearestPoint([o,r],i,n.get("trigger")),h&&B(h)?c=Up(h,i,!0):D(h)&&(d=wF(function(t,e){t===this._ticket&&(u.setContent(e,l,n,p.color,a),this._updatePosition(n,a,o,r,u,i,s))},this),this._ticket=e,c=h(i,e,d)),u.setContent(c,l,n,p.color,a),u.show(n,p.color),this._updatePosition(n,a,o,r,u,i,s))},CF.prototype._getNearestPoint=function(t,e,n){return"axis"===n||E(e)?{color:"html"===this._renderMode?"#fff":"none"}:E(e)?void 0:{color:e.color||e.borderColor}},CF.prototype._updatePosition=function(t,e,n,i,o,r,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u,h,c,p,d,f,g,y,m,v,x=o.getSize(),_=t.get("align"),b=t.get("verticalAlign"),w=a&&a.getBoundingRect().clone();a&&w.applyTransform(a.transform),D(e)&&(e=e([n,i],r,o.el,w,{viewSize:[s,l],contentSize:x.slice()})),E(e)?(n=MF(e[0],s),i=MF(e[1],l)):G(e)?((u=e).width=x[0],u.height=x[1],n=(h=id(u,{width:s,height:l})).x,i=h.y,b=_=null):(n=B(e)&&a?(c=function(t,e,n){var i=n[0],o=n[1],r=0,a=0,s=e.width,l=e.height;switch(t){case"inside":r=e.x+s/2-i/2,a=e.y+l/2-o/2;break;case"top":r=e.x+s/2-i/2,a=e.y-o-10;break;case"bottom":r=e.x+s/2-i/2,a=e.y+l+10;break;case"left":r=e.x-i-10-5,a=e.y+l/2-o/2;break;case"right":r=e.x+s+10+5,a=e.y+l/2-o/2}return[r,a]}(e,w,x))[0]:(c=function(t,e,n,i,o,r,a){var s=n.getOuterSize(),l=s.width,u=s.height;return null!=r&&(ie[0][1]&&(e[0][1]=r[0]),r[1]e[1][1]&&(e[1][1]=r[1])}return e&&UF(e)}};function UF(t){return new Mi(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var ZF,jF=(u(qF,ZF=gd),qF.prototype.optionUpdated=function(t,e){var n=this.option;e||RF(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},qF.prototype.setAreas=function(t){t&&(this.areas=X(t,function(t){return KF(this.option,t)},this))},qF.prototype.setBrushOption=function(t){this.brushOption=KF(this.option,t),this.brushType=this.brushOption.brushType},qF.type="brush",qF.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],qF.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},qF);function qF(){var t=null!==ZF&&ZF.apply(this,arguments)||this;return t.type=qF.type,t.areas=[],t.brushOption={},t}function KF(t,e){return _({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new vc(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}gd.registerClass(jF);var $F,JF=(u(QF,$F=Xg),QF.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new mL(e.getZr())).on("brush",N(this._onBrush,this)).mount()},QF.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},QF.prototype.updateTransform=function(t,e,n,i){HF(e),this._updateController(t,e,n,i)},QF.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},QF.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},QF.prototype._updateController=function(t,e,n,i){i&&i.$from===t.id||this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},QF.prototype.dispose=function(){this._brushController.dispose()},QF.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);t.isEnd&&!t.removeOnClick||this.api.dispatchAction({type:"brush",brushId:e,areas:A(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:A(n),$from:e})},QF.type="brush",QF);function QF(){var t=null!==$F&&$F.apply(this,arguments)||this;return t.type=QF.type,t}Xg.registerClass(JF),Mx({type:"brush",event:"brush",update:"updateVisual"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(t){t.setAreas(e.areas)})}),Mx({type:"brushSelect",event:"brushSelected",update:"none"},function(){}),Mx({type:"brushEnd",event:"brushEnd",update:"none"},function(){});var tG,eG=["rect","polygon","lineX","lineY","keep","clear"];function nG(){return null!==tG&&tG.apply(this,arguments)||this}BB("brush",(u(nG,tG=EB),nG.prototype.render=function(e,t,n){var i,o,r;t.eachComponent({mainType:"brush"},function(t){i=t.brushType,o=t.brushOption.brushMode||"single",r=r||!!t.areas.length}),this._brushType=i,this._brushMode=o,W(e.get("type",!0),function(t){e.setIconStatus(t,("keep"===t?"multiple"===o:"clear"===t?r:t===i)?"emphasis":"normal")})},nG.prototype.updateView=function(t,e,n){this.render(t,e,n)},nG.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return W(t.get("type",!0),function(t){e[t]&&(n[t]=e[t])}),n},nG.prototype.onclick=function(t,e,n){var i=this._brushType,o=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===o?"single":"multiple":o}})},nG.getDefaultOption=function(t){return{show:!0,type:eG.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocale(["toolbox","brush","title"])}},nG)),bx(function(t,e){var n,i,o,r,a,s,l,u=gu(t?t.brush:[]);u.length&&(n=[],W(u,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))}),E(i=t&&t.toolbox)&&(i=i[0]),i||(i={feature:{}},t.toolbox=[i]),(a=(r=(o=i.feature||(i.feature={})).brush||(o.brush={})).type||(r.type=[])).push.apply(a,n),l={},W(s=a,function(t){l[t]=1}),s.length=0,W(l,function(t,e){s.push(e)}),e&&!a.length&&a.push.apply(a,LF))});var iG,oG=(u(rG,iG=gd),rG.type="title",rG.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},rG);function rG(){var t=null!==iG&&iG.apply(this,arguments)||this;return t.type=rG.type,t.layoutMode={type:"box",ignoreSize:!0},t}gd.registerClass(oG);var aG,sG=(u(lG,aG=Xg),lG.prototype.render=function(t,e,n){var i,o,r,a,s,l,u,h,c,p,d,f,g,y,m,v,x,_,b;this.group.removeAll(),t.get("show")&&(i=this.group,o=t.getModel("textStyle"),r=t.getModel("subtextStyle"),a=t.get("textAlign"),s=J(t.get("textBaseline"),t.get("textVerticalAlign")),u=(l=new Ts({style:$h(o,{text:t.get("text"),fill:o.getTextColor()},{disableBox:!0}),z2:10})).getBoundingRect(),h=t.get("subtext"),c=new Ts({style:$h(r,{text:h,fill:r.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0),l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",function(){Kp(p,"_"+t.get("target"))}),d&&c.on("click",function(){Kp(p,"_"+t.get("subtarget"))}),qu(l).eventData=qu(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c),g=i.getBoundingRect(),(y=t.getBoxLayoutParams()).width=g.width,y.height=g.height,m=id(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding")),a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?m.x+=m.width:"center"===a&&(m.x+=m.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?m.y+=m.height:"middle"===s&&(m.y+=m.height/2),s=s||"top"),i.x=m.x,i.y=m.y,i.markRedraw(),v={align:a,verticalAlign:s},l.setStyle(v),c.setStyle(v),g=i.getBoundingRect(),x=m.margin,(_=t.getItemStyle(["color","opacity"])).fill=t.get("backgroundColor"),b=new ha({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0}),i.add(b))},lG.type="title",lG);function lG(){var t=null!==aG&&aG.apply(this,arguments)||this;return t.type=lG.type,t}function uG(t){var e=t.itemStyle||(t.itemStyle={}),n=e.emphasis||(e.emphasis={}),i=t.label||t.label||{},o=i.normal||(i.normal={}),r={normal:1,emphasis:1};W(i,function(t,e){r[e]||hG(o,e)||(o[e]=t)}),n.label&&!hG(i,"emphasis")&&(i.emphasis=n.label,delete n.label)}function hG(t,e){return t.hasOwnProperty(e)}Xg.registerClass(sG),gd.registerSubTypeDefaulter("timeline",function(){return"slider"}),Mx({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var n=e.getComponent("timeline");return n&&null!=t.currentIndex&&(n.setCurrentIndex(t.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),e.resetOption("timeline",{replaceMerge:n.get("replaceMerge",!0)}),O({currentIndex:n.option.currentIndex},t)}),Mx({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var n=e.getComponent("timeline");n&&null!=t.playState&&n.setPlayState(t.playState)});var cG,pG=(u(dG,cG=gd),dG.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},dG.prototype.mergeOption=function(t){cG.prototype.mergeOption.apply(this,arguments),this._initData()},dG.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(e<=t&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},dG.prototype.getCurrentIndex=function(){return this.option.currentIndex},dG.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},dG.prototype.setPlayState=function(t){this.option.autoPlay=!!t},dG.prototype.getPlayState=function(){return!!this.option.autoPlay},dG.prototype._initData=function(){var o,t=this.option,e=t.data||[],n=t.axisType,r=this._names=[];"category"===n?(o=[],W(e,function(t,e){var n,i=vu(t);G(t)?(n=A(t)).value=e:n=e,o.push(n),B(i)||null!=i&&!isNaN(i)||(i=""),r.push(i+"")})):o=e;var i={category:"ordinal",time:"time",value:"number"}[n]||"number";(this._data=new l_([{name:"value",type:i}],this)).initData(o,r)},dG.prototype.getData=function(){return this._data},dG.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},dG.type="timeline",dG.defaultOption={zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},dG);function dG(){var t=null!==cG&&cG.apply(this,arguments)||this;return t.type=dG.type,t.layoutMode="box",t}gd.registerClass(pG);var fG,gG=(u(yG,fG=pG),yG.type="timeline.slider",yG.defaultOption=wc(pG.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),yG);function yG(){var t=null!==fG&&fG.apply(this,arguments)||this;return t.type=yG.type,t}M(gG,$f.prototype),gd.registerClass(gG);var mG,vG=(u(xG,mG=Xg),xG.type="timeline",xG);function xG(){var t=null!==mG&&mG.apply(this,arguments)||this;return t.type=xG.type,t}var _G,bG=(u(wG,_G=uw),wG.prototype.getLabelModel=function(){return this.model.getModel("label")},wG.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},wG);function wG(t,e,n,i){var o=_G.call(this,t,e,n)||this;return o.type=i||"value",o}var SG,MG=Math.PI,IG=Cu(),TG=(u(CG,SG=vG),CG.prototype.init=function(t,e){this.api=e},CG.prototype.render=function(e,t,n){var i,o,r,a;this.model=e,this.api=n,this.ecModel=t,this.group.removeAll(),e.get("show",!0)&&(i=this._layout(e,n),o=this._createGroup("_mainGroup"),r=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,e),e.formatTooltip=function(t){return Hp(a.scale.getLabel({value:t}))},W(["AxisLine","AxisTick","Control","CurrentPointer"],function(t){this["_render"+t](i,o,a,e)},this),this._renderAxisLabel(i,r,a,e),this._position(i,e)),this._doPlayStop(),this._updateTicksStatus()},CG.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},CG.prototype.dispose=function(){this._clearTimer()},CG.prototype._layout=function(t,e){var n,i,o,r,a,s=t.get(["label","position"]),l=t.get("orient"),u=(i=e,id((n=t).getBoxLayoutParams(),{width:i.getWidth(),height:i.getHeight()},n.get("padding"))),h=null==s||"auto"===s?"horizontal"===l?u.y+u.height/2i[1]&&(n=i[1]),n'+Hp(this.name)+"";return null==r&&!s||(l+="html"===i?"":"\n"),s&&(l+='
'+s+""),null!=r&&(l="html"===i?Wp(l,a,!0)+(s?"
":""):l+a),l},OG.prototype.getData=function(){return this._data},OG.prototype.setData=function(t){this._data=t},OG.getMarkerModelFromSeries=function(t,e){return PG(t)[e]},OG.type="marker",OG.dependencies=["series","grid","polar","geo"],OG);function OG(){var t=null!==LG&&LG.apply(this,arguments)||this;return t.type=OG.type,t.createdBySelf=!1,t}M(NG,$f.prototype);var RG,EG=(u(zG,RG=NG),zG.prototype.createMarkerModelFromSeries=function(t,e,n){return new zG(t,e,n)},zG.type="markPoint",zG.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},zG);function zG(){var t=null!==RG&&RG.apply(this,arguments)||this;return t.type=zG.type,t}function BG(t,e,n,i,o,r){var a=[],s=v_(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=XG(e,s,t),u=e.indicesOfNearest(s,l)[0];a[o]=e.get(n,u),a[r]=e.get(s,u);var h=e.get(i,u),c=Kl(e.get(i,u));return 0<=(c=Math.min(c,20))&&(a[r]=+a[r].toFixed(c)),[a,h]}gd.registerClass(EG);var VG={min:R(BG,"min"),max:R(BG,"max"),average:R(BG,"average"),median:R(BG,"median")};function FG(t,e){var n,i=t.getData(),o=t.coordinateSystem;if(e&&(n=e,isNaN(parseFloat(n.x))||isNaN(parseFloat(n.y)))&&!E(e.coord)&&o){var r=o.dimensions,a=GG(e,i,o,t);if((e=A(e)).type&&VG[e.type]&&a.baseAxis&&a.valueAxis){var s=k(r,a.baseAxis.dim),l=k(r,a.valueAxis.dim),u=VG[e.type](i,a.baseDataDim,a.valueDataDim,s,l);e.coord=u[0],e.value=u[1]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],c=0;c<2;c++)VG[h[c]]&&(h[c]=XG(i,i.mapDimension(r[c]),h[c]));e.coord=h}}return e}function GG(t,e,n,i){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var o=0;on[o],d=[-h.x,-h.y];e||(d[i]=s[a]);var f=[0,0],g=[-c.x,-c.y],y=J(t.get("pageButtonGap",!0),t.get("itemGap",!0));p&&("end"===t.get("pageButtonPosition",!0)?g[i]+=n[o]-c[o]:f[i]+=c[o]+y),g[1-i]+=h[r]/2-c[r]/2,s.setPosition(d),l.setPosition(f),u.setPosition(g);var m,v={x:0,y:0};v[o]=p?n[o]:h[o],v[r]=Math.max(h[r],c[r]),v[a]=Math.min(0,c[a]+g[1-i]),l.__rectSize=n[o],p?((m={x:0,y:0})[o]=Math.max(n[o]-c[o]-y,0),m[r]=v[r],l.setClipPath(new ha({shape:m})),l.__rectSize=m[o]):u.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&vp(s,{x:x.contentPosition[0],y:x.contentPosition[1]},p?t:null),this._updatePageInfoView(t,x),v},jH.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},jH.prototype._updatePageInfoView=function(i,o){var r=this._controllerGroup;W(["pagePrev","pageNext"],function(t){var e=null!=o[t+"DataIndex"],n=r.childOfName(t);n&&(n.setStyle("fill",e?i.get("pageIconColor",!0):i.get("pageIconInactiveColor",!0)),n.cursor=e?"pointer":"default")});var t=r.childOfName("pageText"),e=i.get("pageFormatter"),n=o.pageIndex,a=null!=n?n+1:0,s=o.pageCount;t&&e&&t.setStyle("text",B(e)?e.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):e({current:a,total:s}))},jH.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,o=t.getOrient().index,r=YH[o],a=UH[o],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=v(u);p.contentPosition[o]=-d.s;for(var f=s+1,g=d,y=d,m=null;f<=h;++f)(!(m=v(l[f]))&&y.e>g.s+i||m&&!x(m,g.s))&&(g=y.i>g.i?y:m)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=m;for(f=s-1,y=g=d,m=null;-1<=f;--f)(m=v(l[f]))&&x(y,m.s)||!(g.i=e&&t.s<=e+i}},jH.prototype._findTargetItemIndex=function(i){return this._showController?(this.getContentGroup().eachChild(function(t,e){var n=t.__legendDataIndex;null==r&&null!=n&&(r=e),n===i&&(o=e)}),null!=o?o:r):0;var o,r},jH.type="legend.scroll",jH);function jH(){var t=null!==WH&&WH.apply(this,arguments)||this;return t.type=jH.type,t.newlineDisabled=!0,t._currentIndex=0,t}Xg.registerClass(ZH),Mx("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})});var qH,KH=(u($H,qH=RV),$H.type="dataZoom.slider",$H.layoutMode="box",$H.defaultOption=wc(RV.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),$H);function $H(){var t=null!==qH&&qH.apply(this,arguments)||this;return t.type=$H.type,t}gd.registerClass(KH);var JH,QH=ha,tW="horizontal",eW="vertical",nW=["line","bar","candlestick","scatter"],iW={easing:"cubicOut",duration:100},oW=(u(rW,JH=VV),rW.prototype.init=function(t,e){this.api=e,this._onBrush=N(this._onBrush,this),this._onBrushEnd=N(this._onBrushEnd,this)},rW.prototype.render=function(t,e,n,i){if(JH.prototype.render.apply(this,arguments),ay(this,"_dispatchZoomAction",t.get("throttle"),"fixRate"),this._orient=t.getOrient(),!1!==t.get("show")){if(t.noTarget())return this._clear(),void this.group.removeAll();i&&"dataZoom"===i.type&&i.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},rW.prototype.dispose=function(){this._clear(),JH.prototype.dispose.apply(this,arguments)},rW.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[ny]&&(t[e]=n[ny]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},rW.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Ur;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},rW.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),o={width:e.getWidth(),height:e.getHeight()},r=this._orient===tW?{right:o.width-i.x-i.width,top:o.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=sd(t.option);W(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=r[t])});var s=id(a,o);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===eW&&this._size.reverse()},rW.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),o=i&&i.get("inverse"),r=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;r.attr(n!==tW||o?n===tW&&o?{scaleY:a?1:-1,scaleX:-1}:n!==eW||o?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([r]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},rW.prototype._getViewExtent=function(){return[0,this._size[0]]},rW.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new QH({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var o=new QH({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:N(this._onClickPanel,this)}),r=this.api.getZr();i?(o.on("mousedown",this._onBrushStart,this),o.cursor="crosshair",r.on("mousemove",this._onBrush),r.on("mouseup",this._onBrushEnd)):(r.off("mousemove",this._onBrush),r.off("mouseup",this._onBrushEnd)),n.add(o)},rW.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),o=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=o){var r,a=.3*((s=i.getDataExtent(o))[1]-s[0]),s=[s[0]-a,s[1]+a],l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([o],function(t,e){var n,i;0o[0]||r[1]<0||r[1]>o[1]||(n=((e=this._handleEnds)[0]+e[1])/2,i=this._updateInterval("all",r[0]-n),this._updateView(),i&&this._dispatchZoomAction(!1))},rW.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new fi(e,n),this._brushing=!0,this._brushStartTime=+new Date},rW.prototype._onBrushEnd=function(t){var e,n,i,o;this._brushing&&(e=this._displayables.brushRect,this._brushing=!1,e&&(e.attr("ignore",!0),n=e.shape,new Date-this._brushStartTime<200&&Math.abs(n.width)<5||(i=this._getViewExtent(),o=[0,100],this._range=ql([Ul(n.x,i,o,!0),Ul(n.x+n.width,i,o,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1))))},rW.prototype._onBrush=function(t){this._brushing&&(ee(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},rW.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,o=n.brushRect;o||(o=n.brushRect=new QH({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(o)),o.ignore=!1;var r=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(r.x,r.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),o.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},rW.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?iW:null,start:e[0],end:e[1]})},rW.prototype._findCoordRect=function(){var t,e,n,i,o=LV(this.dataZoomModel).infoList;return!e&&o.length&&(e=(t=o[0].model.coordinateSystem).getRect&&t.getRect()),e=e||{x:.2*(n=this.api.getWidth()),y:.2*(i=this.api.getHeight()),width:.6*n,height:.6*i}},rW.type="dataZoom.slider",rW);function rW(){var t=null!==JH&&JH.apply(this,arguments)||this;return t.type=rW.type,t._displayables={},t}function aW(t){return"vertical"===t?"ns-resize":"ew-resize"}Xg.registerClass(oW);var sW,lW=(u(uW,sW=RV),uW.type="dataZoom.inside",uW.defaultOption=wc(RV.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),uW);function uW(){var t=null!==sW&&sW.apply(this,arguments)||this;return t.type=uW.type,t}gd.registerClass(lW);var hW=Cu();function cW(t,e){var n;e&&(t.removeKey(e.model.uid),(n=e.controller)&&n.dispose())}function pW(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function dW(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}Sx(gv.PROCESSOR.FILTER,function(t,l){var e=hW(l),u=e.coordSysRecordMap||(e.coordSysRecordMap=ut());u.each(function(t){t.dataZoomInfoMap=null}),t.eachComponent({mainType:"dataZoom",subType:"inside"},function(s){W(LV(s).infoList,function(t){var e,n,a,i,o=t.model.uid,r=u.get(o)||u.set(o,(e=l,n=t.model,a={model:n,containsPoint:R(dW,n),dispatchAction:R(pW,e),dataZoomInfoMap:null,controller:null},i=a.controller=new UT(e.getZr()),W(["pan","zoom","scrollMove"],function(r){i.on(r,function(i){var o=[];a.dataZoomInfoMap.each(function(t){var e,n;i.isAvailableBehavior(t.model.option)&&(n=(e=(t.getRange||{})[r])&&e(t.dzReferCoordSysInfo,a.model.mainType,a.controller,i),!t.model.get("disabled",!0)&&n&&o.push({dataZoomId:t.model.id,start:n[0],end:n[1]}))}),o.length&&a.dispatchAction(o)})}),a));(r.dataZoomInfoMap||(r.dataZoomInfoMap=ut())).set(s.uid,{dzReferCoordSysInfo:t,model:s,getRange:null})})}),u.each(function(t){var e,n,i,o,r,a,s=t.controller,l=t.dataZoomInfoMap;!l||null!=(n=l.keys()[0])&&(e=l.get(n)),e?(r={type_true:2,type_move:1,type_false:0,type_undefined:-1},a=!0,l.each(function(t){var e=t.model,n=!e.get("disabled",!0)&&(!e.get("zoomLock",!0)||"move");r["type_"+o]"],E(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return B(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):D(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(r,20))}},RW.prototype.resetExtent=function(){var t=this.option,e=PW([t.min,t.max]);this._dataExtent=e},RW.prototype.getDataDimension=function(t){var e=this.option.dimension,n=t.dimensions;if(null!=e||n.length){if(null!=e)return t.getDimension(e);for(var i=t.dimensions,o=i.length-1;0<=o;o--){var r=i[o];if(!t.getDimensionInfo(r).isCalculationCoord)return r}}},RW.prototype.getExtent=function(){return this._dataExtent.slice()},RW.prototype.completeVisualOption=function(){var e=this.ecModel,n=this.option,t={inRange:n.inRange,outOfRange:n.outOfRange},i=n.target||(n.target={}),o=n.controller||(n.controller={});_(i,t),_(o,t);var u=this.isCategory();function r(t){kW(n.color)&&!t.inRange&&(t.inRange={color:n.color.slice().reverse()}),t.inRange=t.inRange||{color:e.get("gradientColor")}}r.call(this,i),r.call(this,o),function(t,e,n){var i=t[e],o=t[n];i&&!o&&(o=t[n]={},LW(i,function(t,e){var n;!PD.isValidType(e)||null!=(n=TW(e,"inactive",u))&&(o[e]=n,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}))}.call(this,i,"inRange","outOfRange"),function(r){var a=(r.inRange||{}).symbol||(r.outOfRange||{}).symbol,s=(r.inRange||{}).symbolSize||(r.outOfRange||{}).symbolSize,l=this.get("inactiveColor");LW(this.stateList,function(t){var e=this.itemSize,n=r[t];null==(n=n||(r[t]={color:u?l:[l]})).symbol&&(n.symbol=a&&A(a)||(u?"roundRect":["roundRect"])),null==n.symbolSize&&(n.symbolSize=s&&A(s)||(u?e[0]:[e[0],e[0]])),n.symbol=DW(n.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var i,o=n.symbolSize;null!=o&&(i=-1/0,AW(o,function(t){ie[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},VW.prototype.completeVisualOption=function(){EW.prototype.completeVisualOption.apply(this,arguments),W(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)},this)},VW.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},VW.prototype.getSelected=function(){var t=this.getExtent(),e=ql((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=n[1]||t<=e[1])?"inRange":"outOfRange"},VW.prototype.findTargetDataIndices=function(i){var o=[];return this.eachTargetSeries(function(t){var n=[],e=t.getData();e.each(this.getDataDimension(e),function(t,e){i[0]<=t&&t<=i[1]&&n.push(e)},this),o.push({seriesId:t.id,dataIndex:n})},this),o},VW.prototype.getVisualMeta=function(n){var t=FW(0,0,this.getExtent()),e=FW(0,0,this.option.range.slice()),i=[];function o(t,e){i.push({value:t,color:n(t,e)})}for(var r=0,a=0,s=e.length,l=t.length;at[1])break;n.push({color:this.getControllerVisual(r,"color",e),offset:o/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},QW.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},QW.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Ur("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},QW.prototype._updateHandle=function(r,a){var s,l,u,h,c,p;this._useHandle&&(s=this._shapes,l=this.visualMapModel,u=s.handleThumbs,h=s.handleLabels,c=l.itemSize,p=l.getExtent(),qW([0,1],function(t){var e=u[t];e.setStyle("fill",a.handlesColor[t]),e.y=r[t];var n=jW(r[t],[0,c[1]],p,!0),i=this.getControllerVisual(n,"symbolSize");e.scaleX=e.scaleY=i/c[0],e.x=c[0]-i/2;var o=Dp(s.handleLabelPoints[t],Cp(e,this.group));h[t].setStyle({x:o[0],y:o[1],text:l.formatValueText(this._dataInterval[t]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",s.mainGroup):"center"})},this))},QW.prototype._showIndicator=function(t,e,n,i){var o=this.visualMapModel,r=o.getExtent(),a=o.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=jW(t,r,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=Dp(l.indicatorLabelPoint,Cp(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var m=this._applyTransform("left",l.mainGroup),v="horizontal"===this._orient;y.setStyle({text:(n||"")+o.formatValueText(e),verticalAlign:v?m:"middle",align:v?"center":m});var x,_={x:d,y:p,style:{fill:h}},b={style:{x:g[0],y:g[1]}};o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator?(x={duration:100,easing:"cubicInOut",additive:!0},u.x=f.x,u.y=f.y,u.animateTo(_,x),y.animateTo(b,x)):(u.attr(_),y.attr(b)),this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;S ",o):this._showIndicator(a,a,"≈ ",o)),l=this._hoverLinkDataIndices,u=[],(e||eX(f))&&(u=this._hoverLinkDataIndices=f.findTargetDataIndices(s)),c=u,d={},y(l||[],p={}),y(c||[],d,p),h=[m(p),m(d)],this._dispatchHighDown("downplay",UW(h[0],f)),this._dispatchHighDown("highlight",UW(h[1],f)))},QW.prototype._hoverLinkFromSeriesMouseOver=function(t){var e,n,i,o,r=t.target,a=this.visualMapModel;r&&null!=qu(r).dataIndex&&(e=qu(r),n=this.ecModel.getSeriesByIndex(e.seriesIndex),a.isTargetSeries(n)&&(o=(i=n.getData(e.dataType)).get(a.getDataDimension(i),e.dataIndex),isNaN(o)||this._showIndicator(o,o)))},QW.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;nn&&i([n,e[0]],"outOfRange"),i(e.slice()),n=e[1])},this),{stops:r,outerColors:a}}function i(t,e){var n=s.getRepresentValue({interval:t});e=e||s.getValueState(n);var i=o(n,e);t[0]===-1/0?a[0]=i:t[1]===1/0?a[1]=i:r.push({value:t[0],color:i},{value:t[1],color:i})}},rX.type="visualMap.piecewise",rX.defaultOption=wc(OW.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),rX);function rX(){var t=null!==iX&&iX.apply(this,arguments)||this;return t.type=rX.type,t._pieceList=[],t}var aX={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),o=e.splitNumber,o=Math.max(parseInt(o,10),1);e.splitNumber=o;for(var r=(i[1]-i[0])/o;+r.toFixed(n)!==r&&n<5;)n++;e.precision=n,r=+r.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)},this)}};function sX(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}gd.registerClass(oX);var lX,uX=(u(hX,lX=HW),hX.prototype.doRender=function(){var r=this.group;r.removeAll();var a=this.visualMapModel,s=a.get("textGap"),t=a.textStyleModel,l=t.getFont(),u=t.getTextColor(),h=this._getItemAlign(),c=a.itemSize,e=this._getViewData(),n=e.endsText,p=$(a.get("showLabel",!0),!n);n&&this._renderEndsText(r,n[0],c,p,h),W(e.viewPieceList,function(t){var e=t.piece,n=new Ur;n.onclick=N(this._onItemClick,this,e),this._enableHoverLink(n,t.indexInModelPieceList);var i,o=a.getRepresentValue(e);this._createItemSymbol(n,o,[0,0,c[0],c[1]]),p&&(i=this.visualMapModel.getValueState(o),n.add(new Ts({style:{x:"right"===h?-s:c[0]+s,y:c[1]/2,text:e.text,verticalAlign:"middle",align:h,font:l,fill:u,opacity:"outOfRange"===i?.5:1}}))),r.add(n)},this),n&&this._renderEndsText(r,n[1],c,p,h),nd(a.get("orient"),r,a.get("itemGap")),this.renderBackground(r),this.positionGroup(r)},hX.prototype._enableHoverLink=function(t,n){var i=this;t.on("mouseover",function(){return e("highlight")}).on("mouseout",function(){return e("downplay")});var e=function(t){var e=i.visualMapModel;e.option.hoverLink&&i.api.dispatchAction({type:t,batch:UW(e.findTargetDataIndices(n),e)})}},hX.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return YW(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},hX.prototype._renderEndsText=function(t,e,n,i,o){var r,a;e&&(r=new Ur,a=this.visualMapModel.textStyleModel,r.add(new Ts({style:{x:i?"right"===o?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?o:"center",text:e,font:a.getFont(),fill:a.getTextColor()}})),t.add(r))},hX.prototype._getViewData=function(){var t=this.visualMapModel,e=X(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),n=t.get("text"),i=t.get("orient"),o=t.get("inverse");return("horizontal"===i?o:!o)?e.reverse():n=n&&n.slice().reverse(),{viewPieceList:e,endsText:n}},hX.prototype._createItemSymbol=function(t,e,n){t.add(Wb(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},hX.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=A(n.selected),o=e.getSelectedMapKey(t);"single"===n.selectedMode?(i[o]=!0,W(i,function(t,e){i[e]=e===o})):i[o]=!i[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})},hX.type="visualMap.piecewise",hX);function hX(){var t=null!==lX&&lX.apply(this,arguments)||this;return t.type=hX.type,t}function cX(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}Xg.registerClass(uX),bx(bW);var pX=ir.CMD,dX="none",fX=Math.round,gX=Math.sin,yX=Math.cos,mX=Math.PI,vX=2*Math.PI,xX=180/mX,_X=1e-4;function bX(t){return fX(1e4*t)/1e4}function wX(t){return t<_X&&-_X=c&&p<=e+1){for(var n=[],i=0;i=c&&p<=r+1)return function(t){for(var e=0,n=t.length,i=0,o=0;e\n\r<"))},JX)),t.Axis=uw,t.List=l_,t.Model=vc,t.PRIORITY=gv,t.color=un,t.connect=function(e){var t;return E(e)&&(t=e,e=null,pv(t,function(t){null!=t.group&&(e=t.group)}),e=e||"g_"+gx++,pv(t,function(t){t.group=e})),dx[e]=!0,e},t.dataTool={},t.dependencies={zrender:"5.0.0-alpha.2"},t.disConnect=mx,t.disconnect=vx,t.dispose=function(t){"string"==typeof t?t=px[t]:t instanceof qv||(t=xx(t)),t instanceof qv&&!t.isDisposed()&&t.dispose()},t.env=x,t.extendChartView=function(t){return qg.extend(t)},t.extendComponentModel=kx,t.extendComponentView=Lx,t.extendSeriesModel=function(t){return Rg.extend(t)},t.format=$p,t.getCoordinateSystemDimensions=function(t){var e=af.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=xx,t.getInstanceById=function(t){return px[t]},t.getMap=function(t){var e=jy(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=gw,t.helper=Yb,t.init=function(t,e,n){var i=xx(t);if(i)return i;var o=new qv(t,e,n);return o.id="ec_"+fx++,px[o.id]=o,Nu(t,yx,o.id),Xv(o),o},t.matrix=oi,t.number=pu,t.parseGeoJSON=Jb,t.parseGeoJson=pw,t.registerAction=Mx,t.registerCoordinateSystem=Ix,t.registerLayout=Tx,t.registerLoading=Ax,t.registerLocale=Ac,t.registerMap=function(t,e,n){Zy(t,e,n)},t.registerPostUpdate=function(t){lx.push(t)},t.registerPreprocessor=bx,t.registerProcessor=Sx,t.registerTheme=_x,t.registerTransform=Px,t.registerVisual=Cx,t.setCanvasCreator=function(t){g("createCanvas",t)},t.throttle=ry,t.time=dw,t.util=fw,t.vector=Ot,t.version="5.0.0-alpha.2",t.zrender=Xl,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/dist/echarts.simple.js b/dist/echarts.simple.js index cb234acc2060ac5ef9a4036c8f00d2980c3dd85a..f7eb1c28f254d9afb1564a3a6c870507ff9e5efd 100644 --- a/dist/echarts.simple.js +++ b/dist/echarts.simple.js @@ -424,18 +424,6 @@ } } - function find(arr, cb, context) { - if (!(arr && cb)) { - return; - } - - for (var i = 0, len = arr.length; i < len; i++) { - if (cb.call(context, arr[i], i, arr)) { - return arr[i]; - } - } - } - function keys(obj) { if (!obj) { return []; @@ -1293,7 +1281,7 @@ function removeEventListener(el, name, handler, opt) { if (isDomLevel2) { - el.removeEventListener(name, handler); + el.removeEventListener(name, handler, opt); } else { el.detachEvent('on' + name, handler); } @@ -2544,13 +2532,9 @@ var requestAnimationFrame; - if (typeof window !== 'undefined') { - requestAnimationFrame = window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame; - } else { - requestAnimationFrame = function (func) { - return setTimeout(func, 16); - }; - } + requestAnimationFrame = typeof window !== 'undefined' && window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { + return setTimeout(func, 16); + }; var requestAnimationFrame$1 = requestAnimationFrame; var easing = { @@ -3844,7 +3828,7 @@ return; } - this._additiveAnimator = additiveTo; + this._additiveAnimators = additiveTo; } Animator.prototype.getTarget = function () { @@ -3870,7 +3854,7 @@ track = tracks[propName] = new Track(propName); var initialValue = void 0; - var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName); + var additiveTrack = this._getAdditiveTrack(propName); if (additiveTrack) { var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1]; @@ -3934,6 +3918,23 @@ } }; + Animator.prototype._getAdditiveTrack = function (trackName) { + var additiveTrack; + var additiveAnimators = this._additiveAnimators; + + if (additiveAnimators) { + for (var i = 0; i < additiveAnimators.length; i++) { + var track = additiveAnimators[i].getTrack(trackName); + + if (track) { + additiveTrack = track; + } + } + } + + return additiveTrack; + }; + Animator.prototype.start = function (easing, forceAnimate) { if (this._started > 0) { return; @@ -3947,7 +3948,7 @@ var propName = this._trackKeys[i]; var track = this._tracks[propName]; - var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName); + var additiveTrack = this._getAdditiveTrack(propName); var kfs = track.keyframes; track.prepare(additiveTrack); @@ -3970,9 +3971,21 @@ delay: this._delay, onframe: function (percent) { self._started = 2; + var additiveAnimators = self._additiveAnimators; + + if (additiveAnimators) { + var stillHasAdditiveAnimator = false; - if (self._additiveAnimator && !self._additiveAnimator._clip) { - self._additiveAnimator = null; + for (var i = 0; i < additiveAnimators.length; i++) { + if (additiveAnimators[i]._clip) { + stillHasAdditiveAnimator = true; + break; + } + } + + if (!stillHasAdditiveAnimator) { + self._additiveAnimators = null; + } } for (var i = 0; i < tracks.length; i++) { @@ -4307,6 +4320,7 @@ Animation.prototype.animate = function (target, options) { options = options || {}; + this.start(); var animator = new Animator(target, options.loop); this.addAnimator(animator); return animator; @@ -4610,21 +4624,21 @@ _this.__pointerCapturing = false; _this.dom = dom; _this.painterRoot = painterRoot; - _this.__localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); + _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); if (globalEventSupported) { - _this.__globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); + _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); } - mountLocalDOMEventListeners(_this, _this.__localHandlerScope); + mountLocalDOMEventListeners(_this, _this._localHandlerScope); return _this; } HandlerDomProxy.prototype.dispose = function () { - unmountDOMEventListeners(this.__localHandlerScope); + unmountDOMEventListeners(this._localHandlerScope); if (globalEventSupported) { - unmountDOMEventListeners(this.__globalHandlerScope); + unmountDOMEventListeners(this._globalHandlerScope); } }; @@ -4637,7 +4651,7 @@ if (globalEventSupported && +this.__pointerCapturing ^ +isPointerCapturing) { this.__pointerCapturing = isPointerCapturing; - var globalHandlerScope = this.__globalHandlerScope; + var globalHandlerScope = this._globalHandlerScope; isPointerCapturing ? mountGlobalDOMEventListeners(this, globalHandlerScope) : unmountDOMEventListeners(globalHandlerScope); } }; @@ -5609,7 +5623,7 @@ var dpr = 1; if (typeof window !== 'undefined') { - dpr = Math.max(window.devicePixelRatio || 1, 1); + dpr = Math.max(window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1); } var devicePixelRatio = dpr; @@ -6471,6 +6485,8 @@ if (zr) { zr.animation.addAnimator(animator); } + + zr && zr.wakeUp(); }; Element.prototype.updateDuringAnimation = function (key) { @@ -6579,7 +6595,7 @@ } } - if (Object.defineProperty) { + if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) { createLegacyProperty('position', '_legacyPos', 'x', 'y'); createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY'); createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY'); @@ -6703,20 +6719,22 @@ if (keyLen > 0 || cfg.force) { var existsAnimators = animatable.animators; - var lastAnimator = void 0; + var existsAnimatorsOnSameTarget = []; for (var i = 0; i < existsAnimators.length; i++) { if (existsAnimators[i].targetName === topKey) { - lastAnimator = existsAnimators[i]; + existsAnimatorsOnSameTarget.push(existsAnimators[i]); } } - if (!additive && lastAnimator) { - var allAborted = lastAnimator.stopTracks(changedKeys); + if (!additive && existsAnimatorsOnSameTarget.length) { + for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) { + var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys); - if (allAborted) { - var idx = indexOf(existsAnimators, lastAnimator); - existsAnimators.splice(idx, 1); + if (allAborted) { + var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]); + existsAnimators.splice(idx, 1); + } } } @@ -6751,7 +6769,7 @@ } } - var animator = new Animator(source, false, additive ? lastAnimator : null); + var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null); animator.targetName = topKey; if (cfg.scope) { @@ -12911,6 +12929,8 @@ var ZRender = function () { function ZRender(id, dom, opts) { + var _this = this; + this._stillFrameAccum = 0; this._needsRefresh = true; this._needsRefreshHover = true; @@ -12942,7 +12962,9 @@ this.handler = new Handler(storage, painter, handerProxy, painter.root); this.animation = new Animation({ stage: { - update: bind(this.flush, this) + update: function () { + return _this._flush(true); + } } }); this.animation.start(); @@ -12951,13 +12973,13 @@ ZRender.prototype.add = function (el) { this.storage.addRoot(el); el.addSelfToZr(this); - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.remove = function (el) { this.storage.delRoot(el); el.removeSelfFromZr(this); - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.configLayer = function (zLevel, config) { @@ -12965,7 +12987,7 @@ this.painter.configLayer(zLevel, config); } - this._needsRefresh = true; + this.refresh(); }; ZRender.prototype.setBackgroundColor = function (backgroundColor) { @@ -12973,7 +12995,7 @@ this.painter.setBackgroundColor(backgroundColor); } - this._needsRefresh = true; + this.refresh(); this._backgroundColor = backgroundColor; this._darkMode = isDarkMode(backgroundColor); }; @@ -13006,11 +13028,15 @@ }; ZRender.prototype.flush = function () { + this._flush(false); + }; + + ZRender.prototype._flush = function (fromInside) { var triggerRendered; if (this._needsRefresh) { triggerRendered = true; - this.refreshImmediately(true); + this.refreshImmediately(fromInside); } if (this._needsRefreshHover) { @@ -13375,8 +13401,13 @@ return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val; } - function isNumeric(v) { - return v - parseFloat(v) >= 0; + function numericToNumber(val) { + var valFloat = parseFloat(val); + return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN; + } + + function isNumeric(val) { + return !isNaN(numericToNumber(val)); } var DUMMY_COMPONENT_NAME_PREFIX = 'series\0'; @@ -14854,8 +14885,10 @@ } } - fillColor = fillColor || globalTextStyle.color; - strokeColor = strokeColor || globalTextStyle.textBorderColor; + if (!isAttached) { + fillColor = fillColor || globalTextStyle.color; + strokeColor = strokeColor || globalTextStyle.textBorderColor; + } if (fillColor != null) { textStyle.fill = fillColor; @@ -16028,6 +16061,11 @@ var text = el.getTextContent(); var host_1 = text && innerLabel(text); host_1 && (host_1.startValue = host_1.nextValue); + var duration = animatableModel.get('animationDuration'); + + if (!duration) { + host_1.nextValue = interpolateValues_1; + } var during = function (percent) { var text = el.getTextContent(); @@ -16614,7 +16652,7 @@ var globalDefault = { darkMode: 'auto', - color: ['#5470c6', '#91cc75', '#ffbf25', '#ef6868', '#ffa086', '#b25790', '#fe719b', '#59d9d2', '#46a9ee'], + color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'], gradientColor: ['#f6efa6', '#d88273', '#bf444c'], textStyle: { fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif', @@ -17693,7 +17731,7 @@ function isNotTargetSeries(seriesModel, payload) { if (payload) { - var index = payload.seiresIndex; + var index = payload.seriesIndex; var id = payload.seriesId; var name_1 = payload.seriesName; return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1; @@ -19221,6 +19259,18 @@ return value == null || value === '' ? NaN : +value; } + var valueParserMap = createHashMap({ + 'number': function (val) { + return parseFloat(val); + }, + 'time': function (val) { + return +parseDate(val); + }, + 'trim': function (val) { + return typeof val === 'string' ? trim(val) : val; + } + }); + var ExternalSource = function () { function ExternalSource() {} @@ -20599,7 +20649,7 @@ fontSize: '12px', maskColor: 'rgba(255, 255, 255, 0.8)', showSpinner: true, - color: '#c23531', + color: '#5470c6', spinnerRadius: 10, lineWidth: 5, zlevel: 0 @@ -21098,7 +21148,8 @@ color: colorAll, colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll] }; - var contrastColor = '#eee'; + var contrastColor = '#B9B8CE'; + var backgroundColor = '#100C2A'; var axisCommon = function () { return { @@ -21107,46 +21158,38 @@ color: contrastColor } }, - axisTick: { - lineStyle: { - color: contrastColor - } - }, - axisLabel: { - textStyle: { - color: contrastColor - } - }, splitLine: { lineStyle: { - type: 'dashed', - color: '#aaa' + color: '#484753' } }, splitArea: { areaStyle: { - color: contrastColor + color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)'] + } + }, + minorSplitLine: { + lineStyle: { + color: '#20203B' } } }; }; - var colorPalette = ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53', '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42']; + var colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff']; var theme = { darkMode: true, color: colorPalette, - backgroundColor: '#333', - tooltip: { - axisPointer: { - lineStyle: { - color: contrastColor - }, - crossStyle: { - color: contrastColor - }, - label: { - color: '#000' - } + backgroundColor: backgroundColor, + axisPointer: { + lineStyle: { + color: '#817f91' + }, + crossStyle: { + color: '#817f91' + }, + label: { + color: '#fff' } }, legend: { @@ -21159,7 +21202,10 @@ }, title: { textStyle: { - color: contrastColor + color: '#EEF1FA' + }, + subtextStyle: { + color: '#B9B8CE' } }, toolbox: { @@ -21170,8 +21216,48 @@ } }, dataZoom: { + borderColor: '#71708A', textStyle: { color: contrastColor + }, + brushStyle: { + color: 'rgba(135,163,206,0.3)' + }, + handleStyle: { + color: '#353450', + borderColor: '#C5CBE3' + }, + moveHandleStyle: { + color: '#B0B6C3', + opacity: 0.3 + }, + fillerColor: 'rgba(135,163,206,0.2)', + emphasis: { + handleStyle: { + borderColor: '#91B7F2', + color: '#4D587D' + }, + moveHandleStyle: { + color: '#636D9A', + opacity: 0.7 + } + }, + dataBackground: { + lineStyle: { + color: '#71708A', + width: 1 + }, + areaStyle: { + color: '#71708A' + } + }, + selectedDataBackground: { + lineStyle: { + color: '#87A3CE' + }, + areaStyle: { + color: '#87A3CE' + } } }, visualMap: { @@ -21183,23 +21269,28 @@ lineStyle: { color: contrastColor }, - itemStyle: { - normal: { - color: colorPalette[1] - } - }, label: { - normal: { - textStyle: { - color: contrastColor - } + textStyle: { + color: contrastColor } }, controlStyle: { - normal: { - color: contrastColor, - borderColor: contrastColor - } + color: contrastColor, + borderColor: contrastColor + } + }, + calendar: { + itemStyle: { + color: backgroundColor + }, + dayLabel: { + color: contrastColor + }, + monthLabel: { + color: contrastColor + }, + yearLabel: { + color: contrastColor } }, timeAxis: axisCommon(), @@ -22570,10 +22661,10 @@ var height = api.getHeight(); var labelList = prepareLayoutList(this._labelList); var labelsNeedsAdjustOnX = filter(labelList, function (item) { - return item.layoutOption.moveOverlap === 'shift-x'; + return item.layoutOption.moveOverlap === 'shiftX'; }); var labelsNeedsAdjustOnY = filter(labelList, function (item) { - return item.layoutOption.moveOverlap === 'shift-y'; + return item.layoutOption.moveOverlap === 'shiftY'; }); shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width); shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height); @@ -24422,9 +24513,9 @@ var each$3 = each; var isFunction$1 = isFunction; var isObject$2 = isObject; - var version = '5.0.0-alpha.1'; + var version = '5.0.0-alpha.2'; var dependencies = { - zrender: '5.0.0-alpha.1' + zrender: '5.0.0-alpha.2' }; var TEST_FRAME_REMAIN_TIME = 1; var PRIORITY_PROCESSOR_SERIES_FILTER = 800; @@ -30787,9 +30878,6 @@ mixin(CartesianAxisModel, AxisModelCommonMixin); var extraOption = { offset: 0, - sort: false, - realtimeSort: false, - sortSeriesIndex: null, categorySortInfo: [] }; axisModelCreator('x', CartesianAxisModel, extraOption); @@ -35004,7 +35092,8 @@ itemStyle: { borderColor: '#212121' } - } + }, + realtimeSort: false }); return BarSeriesModel; }(BaseBarSeriesModel); @@ -35121,6 +35210,7 @@ BarView.prototype.render = function (seriesModel, ecModel, api, payload) { this._model = seriesModel; + this.removeOnRenderedListener(api); this._updateDrawMode(seriesModel); @@ -35157,14 +35247,14 @@ }; BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) { - var that = this; + var _this = this; + var group = this.group; var data = seriesModel.getData(); var oldData = this._data; var coord = seriesModel.coordinateSystem; var baseAxis = coord.getBaseAxis(); var isHorizontalOrRadial; - var lastAnimator = null; if (coord.type === 'cartesian2d') { isHorizontalOrRadial = baseAxis.isHorizontal(); @@ -35174,14 +35264,32 @@ var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null; var axis2DModel = baseAxis.model; - var axisSort = coord.type === 'cartesian2d' && axis2DModel.get('sort') && axis2DModel.get('sortSeriesIndex') === seriesModel.seriesIndex; - var realtimeSort = axisSort && axis2DModel.get('realtimeSort'); + var realtimeSort = seriesModel.get('realtimeSort'); - if (realtimeSort && this._isFirstFrame && data.count()) { - this._initSort(data, isHorizontalOrRadial, baseAxis, api); + if (realtimeSort && data.count()) { + if (this._isFirstFrame) { + this._initSort(data, isHorizontalOrRadial, baseAxis, api); - this._isFirstFrame = false; - return; + this._isFirstFrame = false; + return; + } else { + this._onRendered = function () { + var orderMap = function (idx) { + var el = data.getItemGraphicEl(idx); + + if (el) { + var shape = el.shape; + return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0; + } else { + return 0; + } + }; + + _this._updateSort(data, orderMap, baseAxis, api); + }; + + api.getZr().on('rendered', this._onRendered); + } } var needsClip = seriesModel.get('clip', true) || realtimeSort; @@ -35224,8 +35332,7 @@ if (realtimeSort) { el.disableLabelAnimation = true; - var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false); - animator && (lastAnimator = animator); + updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false); } else if (coord.type === 'cartesian2d') { initProps(el, { shape: layout @@ -35280,8 +35387,7 @@ if (realtimeSort) { el.disableLabelAnimation = true; - var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true); - animator && (lastAnimator = animator); + updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true); } else { updateProps(el, { shape: layout @@ -35305,23 +35411,6 @@ group.add(bgGroup); this._backgroundEls = bgEls; this._data = data; - - if (lastAnimator) { - lastAnimator.during(function () { - var orderMap = function (idx) { - var el = data.getItemGraphicEl(idx); - - if (el) { - var shape = el.shape; - return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0; - } else { - return 0; - } - }; - - that._updateSort(data, orderMap, baseAxis, api); - }); - } }; BarView.prototype._renderLarge = function (seriesModel, ecModel, api) { @@ -35407,6 +35496,7 @@ for (var i = extent[0]; i < extent[1]; ++i) { if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) { + this.removeOnRenderedListener(api); var action = { type: 'changeAxisOrder', componentType: baseAxis.dim + 'Axis', @@ -35432,8 +35522,21 @@ api.dispatchAction(action); }; - BarView.prototype.remove = function () { + BarView.prototype.remove = function (ecModel, api) { this._clear(this._model); + + this.removeOnRenderedListener(api); + }; + + BarView.prototype.dispose = function (ecModel, api) { + this.removeOnRenderedListener(api); + }; + + BarView.prototype.removeOnRenderedListener = function (api) { + if (this._onRendered) { + api.getZr().off('rendered', this._onRendered); + this._onRendered = null; + } }; BarView.prototype._clear = function (model) { @@ -35576,9 +35679,6 @@ (isUpdate ? updateProps : initProps)(el, { shape: seriesTarget }, seriesModel, newIndex, null); - var lastAnimator = el.animators.length ? find(el.animators, function (animator) { - return animator.targetName === 'shape' && !!animator.getTrack('width'); - }) : null; (isUpdate ? updateProps : initProps)(el, { shape: axisTarget }, axisModel, newIndex); @@ -35589,7 +35689,6 @@ var labelModel = seriesModel.getModel('label'); (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter); - return lastAnimator; } } @@ -36518,7 +36617,6 @@ var data = seriesModel.getData(); var oldData = this._data; var group = this.group; - var hasAnimation = ecModel.get('animation'); var startAngle; if (!oldData && data.count() > 0) { diff --git a/dist/echarts.simple.js.map b/dist/echarts.simple.js.map index fbc4a8ebdea0c1e062d18e7583b1d2f3e87aaa56..ee9c7ee25cd7d5647d068d21ec43364e366b03af 100644 --- a/dist/echarts.simple.js.map +++ b/dist/echarts.simple.js.map @@ -1 +1 @@ -{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__spreadArrays","s","i","il","arguments","length","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","apply","clone","source","result","typeStr","call","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","extend","assign","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","find","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","createObject","proto","properties","StyleCtor","hasOwn","own","noop","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","scale","normalize","distance","dist","distanceSquare","distSquare","lerp","t","applyTransform","m","min","max","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","transformCoordWithViewport","el","inX","inY","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","start","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","offset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","sort","remaining","ts","minRun","force","invalidZErrorLogged","logInvalidZError","warn","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","traverse","update","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","beforeUpdate","__dirty","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","updateTransform","childrenRef","children","child","markRedraw","disp","__clipPaths","isNaN","textGuide","getTextGuideLine","textEl","getTextContent","addRoot","delRoot","idx","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","cos","PI","sinusoidalOut","sin","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","m1","m2","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","iv","substr","op","ep","fname","params","split","alpha","pop","hsla2rgba","hsla","rgba","lift","color","level","colorArr","stringify","arrColor","lum","backgroundLum","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","floor","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","needsAnimate","getAdditiveTrack","_additiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_doneList","_onframeList","_clip","_target","_loop","_additiveAnimator","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","getTrack","lastFinalKf","during","callback","isPaused","_doneCallback","doneList","forceAnimate","clip","animation","addClip","forwardToLast","removeClip","done","getClip","stopTracks","tracksKeys","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","addAnimator","animator","removeAnimator","Date","getTime","nextClip","finished","_startLoop","animate","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","scope","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","__localHandlerScope","__globalHandlerScope","isPointerCapturing","globalHandlerScope","create$1","identity","copy$1","mul","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","ct","scale$1","vx","vy","invert","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","setLocalTransform","atan2","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","Point","other","equal","scalar","dot","negate","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","updateInnerText","forceUpdate","_textContent","textConfig","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","previousTextContent","removeTextContent","cfg","setTextGuideLine","guideLine","removeTextGuideLine","refreshHover","refresh","dirty","inHover","textContent","updateDuringAnimation","stopAnimation","leftAnimators","animateTo","animationProps","animateFrom","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","count","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","lastAnimator","revertedSource","reversedTarget","sourceClone","STYLE_MAGIC_KEY","random","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","rectContain","coord","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","_getAnimationStyleProps","mergedStyle","dispProto","invisible","culling","incremental","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","B","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","L","Q","Z","R","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","PathProxy","notSaveData","_xi","_yi","_x0","_y0","_saveData","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathData","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","Path","shape","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","buildPath","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","isZeroArea","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","SVGPath","isPathProxy","createPathOptions","pathProxy","innerOpts","createFromString","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpRect","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","ZRImage","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","CompoundPath","_updatePathDirty","paths","dirtyPath","IncrementalDisplayble","notClear","_displayables","_temporaryDisplayables","_cursor","getCursor","clearDisplaybles","clearTemporalDisplayables","addDisplayable","notPersistent","addDisplayables","displayables","getDisplayables","getTemporalDisplayables","eachPendingDisplayable","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","createOrUpdateImage","cbPayload","__zrImageSrc","pendingWrap","isImageReady","pending","Image","onload","onerror","imageOnLoad","__cachedImgObj","STYLE_REG","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","preparedOpts","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","contentWidth","ellipsisWidth","textLine","subLength","estimateLength","charCode","charCodeAt","parsePlainText","overflow","padding","truncate","calculatedLineHeight","lineHeight","truncateLineOverflow","lineOverflow","lines","wrapText","contentHeight","lineCount","outerHeight","outerWidth","truncateMinChar","maxWidth","RichTextToken","RichTextLine","tokens","RichTextContentBlock","parseRichText","contentBlock","topWidth","topHeight","wrapInfo","accumWidth","breakAll","exec","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","outer","line","token","tokenStyle","styleName","rich","textPadding","paddingH","tokenHeight","styleTokenWidth","tokenWidthNotSpecified","percentWidth","textBackgroundColor","bgImg","remainTruncWidth","block","isEmptyStr","newLine","strLines","linesWidths","tokenPadding","tokenPaddingH","outerWidth_1","parsePercent$1","isLineHolder","tokensLen","isLatin","ch","code","breakCharMap","isWordBreakChar","isBreakAll","lastAccumWidth","currentWord","currentWordWidth","chWidth","inWord","DEFAULT_RICH_TEXT_COLOR","DEFAULT_STROKE_LINE_WIDTH","DEFAULT_TEXT_ANIMATION_PROPS","fontSize","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","leftIndex","lineXLeft","lineXRight","rightIndex","_placeToken","parentBgColorDrawn","textWidth","textHeight","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","shadowStyle","makeFont","fontFamily","fontWeight","fontStyle","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","clockwise","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$2","IsogonShape","Isogon","dStep","deg","RingShape","r0","Ring","sin$1","cos$1","radian","RoseShape","Rose","SectorShape","Sector","PI$3","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","dim","proj","proj_1","useVML","painterCtors","delInstance","totalLum","ZRender","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","handerProxy","getViewportRoot","flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","triggerRendered","refreshHoverImmediately","wakeUp","addHover","removeHover","clearHover","clearAnimation","pathToImage","eventHandler","registerPainter","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","isNumeric","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","validateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","item","idNum","obj1","obj2","key1","key2","idOrName","isValidIdOrName","isNameSpecified","componentModel","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","queryDataIndex","payload","dataIndexInside","dataIndex","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","defaultMainType","queryOptionMap","parsedKey","queryType","includeMainTypes","queryOption","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getAttribute","TYPE_DELIMITER","IS_CONTAINER","IS_EXTENDED_CLASS","parseClassType","componentType","main","typeArr","checkClassType","isExtendedClass","clz","enableClassExtend","rootClz","mandatoryMethods","$constructor","method","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","defaultValue","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","ecIns","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","dataIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","styleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getterType","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","arg","JSON","toISOString","err","EMPTY_OBJ","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","normal","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","targetElEmphasisState","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","textStyle","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","inheritColor","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","richTextStyle","setTokenTextStyle","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","fillColor","strokeColor","baseline","disableBox","getFont","gTextStyleModel","PATH_COLOR","tmpRichText","TextStyleMixin","getTextColor","isEmphasis","getTextRect","LINE_STYLE_KEY_MAP","getLineStyle","LineStyleMixin","getLineDash","lineType","dotSize","dashSize","ITEM_STYLE_KEY_MAP","getItemStyle","ItemStyleMixin","getBorderLineDash","Model","rest","mergeOption","_doGet","parsePath","hasPath","pathFinal","resolveParentPath","isEmpty","restoreData","isAnimationEnabled","pathArr","base","getUID","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","componentTypeMain","enableTopologicalTravel","entity","dependencyGetter","topologicalTravel","targetNameList","fullNameList","makeDepndencyGraph","graph","stack","noEntryList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","originalDeps","successor","removeEdgeAndAdd","removeEdge","succComponentType","entryCount","thisItem","createDependencyGraphItem","availableDeps","getAvailableDependencies","dependentName","predecessor","thatItem","dep","inheritDefaultOption","superOption","subOption","langEN","month","monthAbbr","dayOfWeek","dayOfWeekAbbr","legend","selector","toolbox","brush","title","polygon","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","q","dateGetterName","H","hoursGetterName","minutesGetterName","secondsGetterName","S","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","innerLabel","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","img","boundingRect","aspect","pathRect","animateOrSetProps","animationType","animatableModel","isFrom","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","fadeOutDisplayable","removeElementWithFadeOut","doRemove","isElementRemoved","animateOrSetLabel","labelModel","defaultTextGetter","valueAnimationEnabled","precisionOption","precision_1","interpolateValues_1","rawValues_1","getRawValue","isRawValueNumber_1","info","getDimensionInfo","host_1","nextValue","interpolated","startValues","labelText","updateLabel","initLabel","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","addCommas","parts","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","isTimeAxis","axisType","axisValue","axisIndex","$vars","alias","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getLayoutRect","positionInfo","containerRect","containerHeight","verticalMargin","horizontalMargin","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","hvIdx","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","ctor","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","globalDefault","gradientColor","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","useUTC","inner$1","getNearestColorPalette","colors","requestColorNum","paletteNum","ColorPaletteMixin","clearColorPalette","colorIdx","colorNameMap","getColorFromPalette","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","Source","sourceFormat","seriesLayoutBy","startIndex","dimensionsDefine","dimensionsDetectCount","encodeDefine","metaRawOption","seriesDataToSource","BE_ORDINAL","Must","Might","Not","innerGlobalModel","detectSourceFormat","resetSourceDefaulter","datasetMap","createSource","sourceData","thisMetaRawOption","dimInfo","determineSourceDimensions","sourceHeader","dimensions","makeEncodeDefine","inheritSourceMetaRawOption","thisNew","cloneSourceShallow","normalizeDimensionsOption","dataArrayRows","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","nameMap","displayName","exist","maxLoop","firstIndex","dimensions_1","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","dimName","dimType","dimDefItem","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeReplaceMergeInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","internalField","seriesIndices","mergeTheme","seiresIndex","seriesId","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","api","coordinateSystems","creater","getCoordinateSystems","register","creator","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","timelineOpt","timeline","media","singleMedia","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","toObj","compatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","toolboxOpt","feature","featureOpt","tooltip","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","backwardCompat","seriesType","clipOverflow","clockWise","label","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","order","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","ceil","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","ExternalSource","getDimensionInfoAll","getRawHeaderItem","retrieveItemValue","rawItem","convertDataValue","rawVal","createExternalSource","sourceHeaderCount","extSource","dimsByName","dimDef","dimDefExt","rawValueGetter","externalTransformMap","registerExternalTransform","externalTransform","typeParsed","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","transOption","isFinal","applySingleDataTransform","upSourceList","transType","resultList","print","printStrArr","datasetIndex","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSource","upSourceMgr","_createSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","upSourceList_1","upMgr","errMsg","doThrow","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","inner$2","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","getRawData","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","isRichText","formatArrayValue","vertially","dimItem","tooltipDims","setEachItem","otherDims","markName","dimHead","dimHeadStr","valStr","formatSingleValue","mapDimensionsAll","tooltipDimLen","isValueArr","visualDrawType","formattedValue","colorEl","html","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","tmpArr","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","param","CHANGABLE_METHODS","wrapMethod","onDataSelfChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$3","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","inner$4","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","colorCallback","setVisual","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","ariaModel","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","getConfig","seriesLabels_1","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","RegExp","userConfig","PI$4","loadingDefault","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","overallProgress","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","axisTick","axisLabel","splitLine","splitArea","crossStyle","iconStyle","controlStyle","timeAxis","logAxis","valueAxis","categoryAxis","symbol","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","symbolSize","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","PI2$5","CMD$3","DEFAULT_SEARCH_SPACE","getCandidateAnchor","outPt","outDir","projectPointToArc","projectPointToLine","limitToEnds","dx1","dy1","lineLen","projectedLen","projectPointToRect","tmpPt","nearestPointOnRect","pt","nearestPointOnPath","minDist","pt0","pt1","pt2","dir2","updateLabelLinePoints","labelLineModel","labelLine","labelGuideConfig","textGuideLineConfig","searchSpace","candidates","anchorPoint","anchor","targetTransform","targetInversedTransform","candidate","limitTurnAngle","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","tan","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","newAngle","setLabelLineState","isNormal","styleObj","buildLabelLinePath","moveLen","midPoint0","midPoint2","midPoint1","setLabelLineStyle","labelIgnoreNormal","stateShow","isLabelIgnored","getLabelLineStatesModels","labelLineName","prepareLayoutList","defaultAttr","localRect","isAxisAligned","minMargin","globalRect","obb","priority","layoutOption","computedLayoutOption","axisAligned","shiftLayout","xyDim","sizeDim","minBound","maxBound","balanceShift","lastPos","adjusted","totalShifts","shiftList","first","last","minGap","maxGap","updateMinMaxGap","squeezeGaps","takeBoundsGap","squeezeWhenBailout","gapThisBound","gapOtherBound","moveDir","moveFromMaxGap","remained","maxSqeezePercent","gaps","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","labelAttr","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","__image","createPattern","repeat","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","setTransform","viewRect","isDisplayableCulled","isClipPathChanged","prevClipPaths","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","isLast","viewWidth","viewHeight","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","i_1","len_1","returnFalse","createDom","newDom","newDomStyle","Layer","motionBlur","lastFrameAlpha","virtual","__used","__drawIndex","__startIndex","__endIndex","domStyle","onselectstart","webkitUserSelect","userSelect","webkitTapHighlightColor","domBack","ctxBack","getElementCount","initContext","createBackBuffer","clearAll","clearColor","haveMotionBLur","clearRect","clearColorGradientOrPattern","__canvasGradient","__painter","fillRect","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","parseInt10","isLayerValid","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","_opts","_singleCanvas","rootStyle","innerHTML","zlevelList","layers","_width","_getSize","_height","_domRoot","rootCanvas","mainLayer","getType","isSingleCanvas","getViewportRootOffset","viewportRoot","paintAll","_redrawId","_paintList","_paintHoverList","_hoverlayer","getLayer","getHoverLayer","redrawId","_updateLayerStatus","_doPaintList","needsRefreshHover","_compositeManually","self_1","eachBuiltinLayer","layerList","zi","useTimer","now","startTime","firstEl","dTime","draw","insertLayer","layersMap","prevLayer","prevDom","insertBefore","eachLayer","getLayers","updatePrevLayer","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","removeChild","display","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","ctx_1","renderToCanvas","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","canvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","assert$1","each$3","isFunction$1","isObject$2","zrender","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_BRUSH","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","__ECHARTS__DEFAULT__RENDERER__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","getZr","notMerge","lazyUpdate","setTheme","getDevicePixelRatio","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","url","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","top_1","right_1","bottom_1","canvasList_1","dpr_1","instances","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","statusChanged","newObj","pendingActions","getDispatcher","dispatcher","dirtyList","updateZ","updateStates","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","oldStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","echartsProto","one","wrapped","args2","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","connect","disConnect","disconnect","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","_add","_update","_remove","execute","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","keyArr","keyGetterName","existence","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","otherDim","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","DataDimensionInfo","isObject$3","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getRawValueFromStore","getIndicesCtor","prepareChunks","getRawIndexWithoutIndices","getRawIndexWithIndices","normalizeDimensions","validateDimensions","cloneListForMapAndSample","cloneDimStore","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","chunkSize","dimLen","rawExtent","originalChunkCount","emptyDataItem","sourceIdx","chunkIndex","chunkOffset","dimRawExtent","dimensionInfoMap","idList","nameRepeatCount","nameDimIdx","_nameDimIdx","itemId","_idDimIdx","dimStorage","nameDim","nameDimChunk","getIndices","newIndices","thisCount","buffer","chunkStore","dimStore","_getFast","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","dimExtent","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","mapArray","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","dimension","rate","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","name_2","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","excludeDimensions","allDimensions","originalStorage","originalDimStore","newDimStore","cloneChunk","originalChunk","childECData","thisECData","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","LineSeriesModel","legendHoverLink","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","circle","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","size","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","getDefaultLabel","interpolatedValues","labelDims","vals","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","setSymbolScale","emphasisState","fadeOut","keepLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","newIdx","symbolEl","oldIdx","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","baseAxis","getOtherAxis","valueStart","getValueStart","baseAxisDim","valueAxisDim","valueDim","baseDim","baseDataOffset","stacked","stackResultDim","dataDimsForPoint","getExtent","getStackedOnPoint","dataCoordInfo","stackedData","dataToPoint","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","idxAdd","idxMinus","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","scaleAndAdd$1","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawNonMono","drawMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","ECPolylineShape","ECPolyline","ECPolygonShape","ECPolygon","stackedOnPoints","bbox","stackedOnBBox","stackedOnSmooth","createGridClipPath","cartesian","hasAnimation","getArea","isHorizontal","createPolarClipPath","sectorArea","createClipPath","isPointsSame","points1","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","toGlobalCoord","dataToCoord","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","gradient","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","getViewLabels","tickValue","axisExtent","availSize","createLineClipPath","expandSize","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","polyline","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolyline","_newPolygon","_stackedOnPoints","_points","_updateAnimation","lineJoin","shouldBolderOnEmphasis","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","layoutPoints","isLargeRender","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","showMinLabel","showMaxLabel","boundaryGap","deduplication","alignWithLabel","splitNumber","minorTick","minorSplitLine","primary","logBase","axisDefault","category","OrdinalMeta","_needCollect","needCollect","_deduplication","createByAxisModel","dedplication","getOrdinal","_getOrCreateMap","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","getCategories","AxisModelCommonMixin","getNeedCrossZero","getCoordSysModel","CartesianAxisModel","extraOption","realtimeSort","sortSeriesIndex","categorySortInfo","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","roundNumber","intervalScaleNiceTicks","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","dataNum","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","bandWidth","getBandWidth","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","axisKey","stackId","doCalBarWidthAndOffset","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","barMinHeight","isValueAxisH","valueAxisStart","getValueAxisStart","baseValue","baseCoord","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","bisect","TimeScale","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","freeze","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","PI$5","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","direction","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","matrix","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","ticksCoords","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","tickModel","getTicksCoords","minorTickModel","minorTicksCoords","getMinorTicksCoords","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labels","labelRotation","rawCategoryData","formattedLabel","rawLabel","itemLabelModel","rawCategoryItem","fixValue","axisInfo","getAxisInfo","axisPointerModel","useHandle","isHandleTrigger","coordSysAxesInfo","axesInfo","makeKey","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$5","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","condVal","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","getAxes","addAxis","cartesian2DDimensions","Cartesian2D","axisX","axisY","toLocalCoord","containData","clampData","xScale","yScale","xAxisExtent","yAxisExtent","pointToData","coordToData","xExtent","getGlobalExtent","yExtent","inner$6","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","makeCategoryTicks","makeCategoryLabelsActually","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","cache","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","fixExtentWithBands","getTickModel","tickVal","fixOnBandTicksCoords","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","littleThan","Axis2D","coordExtent","asc","Grid","_coordsMap","_coordsList","_axesMap","_axesList","axisPointerEnabled","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","getTooltipAxes","baseAxes","otherAxes","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","borderType","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","isCoordinateSystemType","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$3","mathMin$3","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","_updateDrawMode","coordinateSystemType","isReorder","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","that","isHorizontalOrRadial","animationModel","axis2DModel","axisSort","_initSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","orderMap","_updateSort","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","__dataIndex","animateProperty","isRadial","ShapeClass","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","hasLabelRotate","minShowLabelRadian","setNotShow","labelLineLen","labelLineLen2","midAngle","nx","ny","isLabelInside","notShowLabel","PiePiece","firstCreate","_updateLabel","labelTextEmphasisState","labelHoverModel","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$6","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function find(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n return arr[i];\r\n }\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len;) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\r\n out.zrX = _calcOut[0];\r\n out.zrY = _calcOut[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n while (el) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n if (el.__dirty) {\r\n el.update();\r\n }\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.markRedraw();\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n if (typeof window !== 'undefined') {\r\n requestAnimationFrame = (window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame;\r\n }\r\n else {\r\n requestAnimationFrame = function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n }\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n if (str.charAt(0) === '#') {\r\n if (str.length === 4) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (str.length === 7) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === str.length) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.interpolable\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, this._additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + this._additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._doneList = [];\r\n this._onframeList = [];\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimator = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.during = function (callback) {\r\n this._onframeList.push(callback);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._tracks = null;\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._additiveAnimator && this._additiveAnimator.getTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n if (self._additiveAnimator && !self._additiveAnimator._clip) {\r\n self._additiveAnimator = null;\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n for (var i = 0; i < self._onframeList.length; i++) {\r\n self._onframeList[i](self._target, percent);\r\n }\r\n },\r\n ondestroy: function () {\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].setFinished();\r\n }\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n var animation = this.animation;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n if (animation) {\r\n animation.removeClip(clip);\r\n }\r\n this._clip = null;\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted && this.animation) {\r\n this.animation.removeClip(this._clip);\r\n this._clip = null;\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function () {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n if (this.stage.update) {\r\n this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this.__localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this.__globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this.__localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this.__localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this.__globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this.__globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n this.updateInnerText();\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + 255 * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function () {\r\n this.useState(PRESERVED_NORMAL_STATE, false);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var count = animators.length;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n }\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n if (animators.length > 0 && typeof cfg.during === 'function') {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i]\r\n .done(done)\r\n .start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0 || cfg.force) {\r\n var existsAnimators = animatable.animators;\r\n var lastAnimator = void 0;\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n lastAnimator = existsAnimators[i];\r\n }\r\n }\r\n if (!additive && lastAnimator) {\r\n var allAborted = lastAnimator.stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, lastAnimator);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? lastAnimator : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this._getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n var delta = endAngle - startAngle;\r\n endAngle = startAngle + delta;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = 1 - data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, !!anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n if (i === 1) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var scaleX = (rx > ry) ? 1 : rx / ry;\r\n var scaleY = (rx > ry) ? ry / rx : 1;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse) {\r\n ctx.translate(cx, cy);\r\n ctx.rotate(psi);\r\n ctx.scale(scaleX, scaleY);\r\n ctx.arc(0, 0, r, startAngle, endAngle, anticlockwise);\r\n ctx.scale(1 / scaleX, 1 / scaleY);\r\n ctx.rotate(-psi);\r\n ctx.translate(-cx, -cy);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta % PI2$4 < 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (anticlockwise) {\r\n var tmp_1 = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp_1);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(data, lineWidth, isStroke, x, y) {\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i > 1) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathData, x, y) {\r\n return containPath(pathData, 0, false, x, y);\r\n }\r\n function containStroke$4(pathData, lineWidth, x, y) {\r\n return containPath(pathData, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.6) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke()) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n w = Math.max(w, this.strokeContainThreshold || 4);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathData = this.path.data;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathData, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathData, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath (path, m) {\r\n var data = path.data;\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < data.length;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline (points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier (points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top'\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n function parseXML(svg) {\r\n if (isString(svg)) {\r\n var parser = new DOMParser();\r\n svg = parser.parseFromString(svg, 'text/xml');\r\n }\r\n var svgNode = svg;\r\n if (svgNode.nodeType === 9) {\r\n svgNode = svgNode.firstChild;\r\n }\r\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\r\n svgNode = svgNode.nextSibling;\r\n }\r\n return svgNode;\r\n }\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: cb, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.opacity = retrieve2(style.opacity, 1);\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var shadowStyle = (rectEl || imgEl).style;\r\n shadowStyle.shadowBlur = style.shadowBlur || 0;\r\n shadowStyle.shadowColor = style.shadowColor || 'transparent';\r\n shadowStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n shadowStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$2 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$2 / n;\r\n var deg = -PI$2 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var SectorShape = (function () {\r\n function SectorShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SectorShape;\r\n }());\r\n var Sector = (function (_super) {\r\n __extends(Sector, _super);\r\n function Sector(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Sector.prototype.getDefaultShape = function () {\r\n return new SectorShape();\r\n };\r\n Sector.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r0 + x, unitY * r0 + y);\r\n ctx.lineTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n }\r\n ctx.closePath();\r\n };\r\n Sector.prototype.isZeroArea = function () {\r\n return this.shape.startAngle === this.shape.endAngle\r\n || this.shape.r === this.shape.r0;\r\n };\r\n return Sector;\r\n }(Path));\r\n Sector.prototype.type = 'sector';\n\n var PI$3 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$3 / n) / cos$2(PI$3 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n function delInstance(id) {\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: bind(this.flush, this)\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this._needsRefresh = true;\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this._needsRefresh = true;\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update();\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n var triggerRendered;\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(true);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered');\r\n }\r\n else {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > 10) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover) {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n return zr;\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function isNumeric(v) {\r\n return v - parseFloat(v) >= 0;\r\n }\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n cmptOption.id == null || validateIdOrName(cmptOption.id);\r\n cmptOption.name == null || validateIdOrName(cmptOption.name);\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n var nextIdx = 0;\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = obj1[attr];\r\n var key2 = obj2[attr];\r\n return key1 != null && key2 != null && key1 + '' === key2 + '';\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return val + '';\r\n }\r\n function validateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n assert(isValidIdOrName(idOrName), '`' + idOrName + '` is invalid id or name. Must be a string.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = Math.round(Math.random() * 5);\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (mainType !== defaultMainType && value == null)\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: mainType === defaultMainType,\r\n enableAll: true,\r\n enableNone: true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper (properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color) {\r\n if (typeof color !== 'string') {\r\n return color;\r\n }\r\n var liftedColor = liftedColorCache.get(color);\r\n if (!liftedColor) {\r\n liftedColor = lift(color, -0.1);\r\n liftedColorCache.put(color, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange) {\r\n if ((el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(ecIns) {\r\n var model = ecIns.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? ecIns.getViewOfSeriesModel(componentModel)\r\n : ecIns.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, ecIns, isBlur) {\r\n var ecModel = ecIns.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(ecIns);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = ecIns.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = ecIns.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, ecIns) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, ecIns, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, ecIns, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, ecIns) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n if (focus != null) {\r\n var ecData = getECData(el);\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var styleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getterType) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = model[getterType || styleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : val;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\n\n var EMPTY_OBJ = {};\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : null;\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n textContent = targetEl.getTextContent();\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n stateObj.ignore = !retrieve2(stateModel.getShallow('show'), showNormal);\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'opacity',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var lineWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (lineWidth != null) {\r\n textStyle.lineWidth = lineWidth;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n var style = getLineStyle(this, excludes);\r\n style.lineDash = this.getLineDash(style.lineWidth);\r\n return style;\r\n };\r\n LineStyleMixin.prototype.getLineDash = function (lineWidth) {\r\n if (lineWidth == null) {\r\n lineWidth = 1;\r\n }\r\n var lineType = this.get('type');\r\n var dotSize = Math.max(lineWidth, 2);\r\n var dashSize = lineWidth * 4;\r\n return (lineType === 'solid' || lineType == null)\r\n ? false\r\n : lineType === 'dashed'\r\n ? [dashSize, dashSize]\r\n : [dotSize, dotSize];\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n var style = getItemStyle(this, excludes, includes);\r\n var lineDash = this.getBorderLineDash();\r\n lineDash && (style.lineDash = lineDash);\r\n return style;\r\n };\r\n ItemStyleMixin.prototype.getBorderLineDash = function () {\r\n var lineType = this.get('borderType');\r\n return (lineType === 'solid' || lineType == null) ? null\r\n : (lineType === 'dashed' ? [5, 5] : [1, 1]);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var stack = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (stack.length) {\r\n var currComponentType = stack.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n throw new Error('Circle dependency may exists');\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n stack.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}:{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, lang, isUTC) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, lang, isUTC);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n var innerLabel = makeInner();\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n duration = 200;\r\n animationEasing = 'cubicOut';\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n }\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(), el.attr(props), cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, function (percent) {\r\n during && during(percent);\r\n });\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function animateOrSetLabel(animationType, el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n var valueAnimationEnabled = labelModel && labelModel.get('valueAnimation');\r\n if (valueAnimationEnabled) {\r\n var precisionOption = labelModel.get('precision');\r\n var precision_1 = !precisionOption || precisionOption === 'auto'\r\n ? 0\r\n : precisionOption;\r\n var interpolateValues_1;\r\n var rawValues_1 = seriesModel.getRawValue(dataIndex);\r\n var isRawValueNumber_1 = false;\r\n if (typeof rawValues_1 === 'number') {\r\n isRawValueNumber_1 = true;\r\n interpolateValues_1 = rawValues_1;\r\n }\r\n else {\r\n interpolateValues_1 = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type !== 'ordinal') {\r\n interpolateValues_1.push(rawValues_1[i]);\r\n }\r\n }\r\n }\r\n var text = el.getTextContent();\r\n var host_1 = text && innerLabel(text);\r\n host_1 && (host_1.startValue = host_1.nextValue);\r\n var during = function (percent) {\r\n var text = el.getTextContent();\r\n if (!text || !host_1) {\r\n return;\r\n }\r\n var interpolated;\r\n if (isRawValueNumber_1) {\r\n var value = interpolateNumber(host_1.startValue || 0, interpolateValues_1, percent);\r\n interpolated = round$1(value, precision_1);\r\n }\r\n else {\r\n interpolated = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = rawValues_1[i];\r\n }\r\n else {\r\n var startValues = host_1.startValue;\r\n var value = startValues == null\r\n ? rawValues_1[i]\r\n : interpolateNumber(startValues && startValues[i] ? startValues[i] : 0, interpolateValues_1[i], percent);\r\n interpolated[i] = round$1(value), precision_1;\r\n }\r\n }\r\n }\r\n host_1.nextValue = interpolated;\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n labelFetcher: seriesModel,\r\n defaultText: defaultTextGetter\r\n ? defaultTextGetter(interpolated)\r\n : interpolated + ''\r\n }, { normal: labelModel }, interpolated);\r\n text.style.text = labelText.normal;\r\n text.dirty();\r\n };\r\n var props = {};\r\n animateOrSetProps(animationType, el, props, animatableModel, dataIndex, null, during);\r\n }\r\n }\r\n function updateLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('update', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function initLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('init', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\n\n function addCommas(x) {\r\n if (isNaN(x)) {\r\n return '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': '''\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var isTimeAxis = paramsList[0].axisType && paramsList[0].axisType.indexOf('time') >= 0;\r\n if (isTimeAxis) {\r\n var axisValue = paramsList[0].data[paramsList[0].axisIndex];\r\n var date = parseDate(axisValue);\r\n return format(date, tpl);\r\n }\r\n else {\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n }\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n var markerId = opt.markerId || 'X';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? ''\r\n : '';\r\n }\r\n else {\r\n return {\r\n renderMode: renderMode,\r\n content: '{marker' + markerId + '|} ',\r\n style: {\r\n color: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#ffbf25',\r\n '#ef6868',\r\n '#ffa086',\r\n '#b25790',\r\n '#fe719b',\r\n '#59d9d2',\r\n '#46a9ee'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var inner$1 = makeInner();\r\n function getNearestColorPalette(colors, requestColorNum) {\r\n var paletteNum = colors.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (colors[i].length > requestColorNum) {\r\n return colors[i];\r\n }\r\n }\r\n return colors[paletteNum - 1];\r\n }\r\n var ColorPaletteMixin = (function () {\r\n function ColorPaletteMixin() {\r\n }\r\n ColorPaletteMixin.prototype.clearColorPalette = function () {\r\n inner$1(this).colorIdx = 0;\r\n inner$1(this).colorNameMap = {};\r\n };\r\n ColorPaletteMixin.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n scope = scope || this;\r\n var scopeFields = inner$1(scope);\r\n var colorIdx = scopeFields.colorIdx || 0;\r\n var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {};\r\n if (colorNameMap.hasOwnProperty(name)) {\r\n return colorNameMap[name];\r\n }\r\n var defaultColorPalette = normalizeToArray(this.get('color', true));\r\n var layeredColorPalette = this.get('colorLayer', true);\r\n var colorPalette = ((requestColorNum == null || !layeredColorPalette)\r\n ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum));\r\n colorPalette = colorPalette || defaultColorPalette;\r\n if (!colorPalette || !colorPalette.length) {\r\n return;\r\n }\r\n var color = colorPalette[colorIdx];\r\n if (name) {\r\n colorNameMap[name] = color;\r\n }\r\n scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\r\n return color;\r\n };\r\n return ColorPaletteMixin;\r\n }());\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var Source = (function () {\r\n function Source(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectCount = fields.dimensionsDetectCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n Source.seriesDataToSource = function (data) {\r\n return new Source({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n };\r\n return Source;\r\n }());\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var dimInfo = determineSourceDimensions(sourceData, sourceFormat, thisMetaRawOption.seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new Source({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: thisMetaRawOption.seriesLayoutBy,\r\n dimensionsDefine: dimInfo.dimensionsDefine,\r\n startIndex: dimInfo.startIndex,\r\n dimensionsDetectCount: dimInfo.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function inheritSourceMetaRawOption(opt) {\r\n return defaults(opt.thisNew, opt.parent);\r\n }\r\n function cloneSourceShallow(source) {\r\n return new Source({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectCount: source.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (item, index) {\r\n item = extend({}, isObject(item) ? item : { name: item });\r\n if (item.name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeReplaceMergeInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeReplaceMergeInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (!newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.name === name; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n componentTypes.push(componentType);\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seiresIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap(idOrName);\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n validateIdOrName(idOrNameItem);\r\n keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n validateIdOrName(idOrName);\r\n return filter(cmpts, function (cmpt) { return cmpt && cmpt[attr] === idOrName + ''; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeReplaceMergeInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, ColorPaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getModel',\r\n 'getOption',\r\n 'getViewOfComponentModel',\r\n 'getViewOfSeriesModel',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var timelineOptions = [];\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var timelineOpt = rawOption.timeline;\r\n if (rawOption.baseOption) {\r\n baseOption = rawOption.baseOption;\r\n }\r\n if (timelineOpt || rawOption.options) {\r\n baseOption = baseOption || {};\r\n timelineOptions = (rawOption.options || []).slice();\r\n }\r\n if (rawOption.media) {\r\n baseOption = baseOption || {};\r\n var media = rawOption.media;\r\n each(media, function (singleMedia) {\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n if (!baseOption) {\r\n baseOption = rawOption;\r\n }\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOpt;\r\n }\r\n each([baseOption].concat(timelineOptions)\r\n .concat(map(mediaList, function (media) {\r\n return media.option;\r\n })), function (option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n });\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptions,\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function compatStyle (option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function backwardCompat (option, isTheme) {\r\n compatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack (ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !(sourceParam instanceof Source)\r\n ? Source.seriesDataToSource(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var offset = this._dimSize * idx;\r\n for (var i = 0; i < this._dimSize; i++) {\r\n out[i] = this._data[offset + i];\r\n }\r\n return out;\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var col = rawData[dimsDef[i].name];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfoAll = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawHeaderItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveItemValue = function (rawItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertDataValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(data, sourceFormat, dimsDef, sourceHeaderCount) {\r\n var extSource = new ExternalSource();\r\n extSource.data = data;\r\n extSource.sourceFormat = sourceFormat;\r\n extSource.sourceHeaderCount = sourceHeaderCount;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n assert(!hasOwn(dimsByName, name), 'dimension name \"' + name + '\" duplicated.');\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.getRawDataItem = bind(rawItemGetter, null, data, sourceHeaderCount, dimensions);\r\n extSource.getRawHeaderItem = function (dataIndex) {\r\n if (dataIndex < sourceHeaderCount) {\r\n return rawItemGetter(data, 0, dimensions, dataIndex);\r\n }\r\n };\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveItemValue = function (rawItem, dimIndex) {\r\n if (rawItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(rawItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.getDimensionInfoAll = bind(getDimensionInfoAll, null, dimensions);\r\n return extSource;\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function getDimensionInfoAll(dimensions) {\r\n return dimensions;\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n assert(type, 'Must have a `type` when `registerTransform`.');\r\n var typeParsed = type.split(':');\r\n assert(typeParsed.length === 2, 'Name must include namespace like \"ns:regression\".');\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n }\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n for (var i = 0, len = pipedTransOption.length; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n var isFinal = i === len - 1;\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, isFinal);\r\n if (!isFinal) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(rawTransOption, upSourceList, infoForPrint, isFinal) {\r\n assert(upSourceList.length, 'Must have at least one upstream dataset.');\r\n var transOption = rawTransOption;\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n assert(externalTransform, 'Can not find transform on type \"' + transType + '\".');\r\n var sourceList = map(upSourceList, function (source) {\r\n return createExternalSource(source.data, source.sourceFormat, source.dimensionsDefine, source.startIndex);\r\n });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n source: sourceList[0],\r\n sourceList: sourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (isFinal && transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n return [\r\n '--- datasetIndex: ' + infoForPrint.datasetIndex + '---',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions),\r\n '- transform result sourceHeader: ' + extSource.sourceHeader,\r\n '------'\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n assert(isObject(result), 'A transform should not return some empty results.');\r\n assert(isObject(result.data) || isArrayLike(result.data), 'Result data should be object or array in data transform.');\r\n var resultMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSourceList[0].metaRawOption,\r\n thisNew: {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: result.sourceHeader,\r\n dimensions: result.dimensions\r\n }\r\n });\r\n return createSource(result.data, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSource ? upSource.metaRawOption : null,\r\n thisNew: this._createSourceMetaRawOption()\r\n });\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._createSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n var sourceList;\r\n var upstreamSignList;\r\n if (transformOption) {\r\n var upSourceList_1 = [];\r\n upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n upSourceList_1.push(upMgr.getSource());\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n sourceList = applyDataTransform(transformOption, upSourceList_1, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n if (upMgrList.length !== 1) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n var upMgr = upMgrList[0];\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult);\r\n upstreamSignList = [upMgr._getVersionSign()];\r\n sourceList = [cloneSourceShallow(upSource)];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._createSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var inner$2 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$2(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$2(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$2(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$2(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$2(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$2(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var series = this;\r\n renderMode = renderMode || 'html';\r\n var newLine = renderMode === 'html' ? '' : '\\n';\r\n var isRichText = renderMode === 'richText';\r\n var markers = {};\r\n var markerId = 0;\r\n function formatArrayValue(value) {\r\n var vertially = reduce(value, function (vertially, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return vertially |= (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, 0);\r\n var result = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n var dimType = dimInfo.type;\r\n var markName = 'sub' + series.seriesIndex + 'at' + markerId;\r\n var dimHead = getTooltipMarker({\r\n color: colorStr,\r\n type: 'subItem',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content;\r\n var valStr = (vertially\r\n ? ''\r\n + dimHeadStr + encodeHTML(dimInfo.displayName || '-')\r\n + ''\r\n : '')\r\n + ''\r\n + encodeHTML(dimType === 'ordinal'\r\n ? val + ''\r\n : dimType === 'time'\r\n ? (multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val))\r\n : addCommas(val))\r\n + '';\r\n valStr && result.push(\"
\" + valStr + \"
\");\r\n if (isRichText) {\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n }\r\n }\r\n var newLine = vertially ? (isRichText ? '\\n' : '') : '';\r\n var content = newLine + result.join(newLine || '');\r\n return {\r\n renderMode: renderMode,\r\n content: content,\r\n style: markers\r\n };\r\n }\r\n function formatSingleValue(val) {\r\n return {\r\n renderMode: renderMode,\r\n content: encodeHTML(addCommas(val)),\r\n style: markers\r\n };\r\n }\r\n var data = this.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = this.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style[this.visualDrawType];\r\n var colorStr;\r\n if (isString(color)) {\r\n colorStr = color;\r\n }\r\n else if (color && color.colorStops) {\r\n colorStr = (color.colorStops[0] || {}).color;\r\n }\r\n colorStr = colorStr || 'transparent';\r\n var formattedValue = (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? formatArrayValue(value)\r\n : tooltipDimLen\r\n ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0]))\r\n : formatSingleValue(isValueArr ? value[0] : value);\r\n var content = isRichText\r\n ? formattedValue.content\r\n : (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? '
'\r\n + formattedValue.content + '
'\r\n : ''\r\n + formattedValue.content + '';\r\n var markName = series.seriesIndex + 'at' + markerId;\r\n var colorEl = getTooltipMarker({\r\n color: colorStr,\r\n type: 'item',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n var name = data.getName(dataIndex);\r\n var seriesName = this.name;\r\n if (!isNameSpecified(this)) {\r\n seriesName = '';\r\n }\r\n seriesName = seriesName\r\n ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ' ')\r\n : '';\r\n colorStr = isString(colorEl) ? colorEl : colorEl.content;\r\n var html = '';\r\n if (!isRichText) {\r\n seriesName = seriesName\r\n ? !multipleSeries\r\n ? \"
\" + seriesName + \"
\"\r\n : \"\" + seriesName + \"\"\r\n : '';\r\n html = !multipleSeries\r\n ? seriesName + (\"
\")\r\n + colorStr\r\n + (name\r\n ? \"\" + encodeHTML(name) + \"\" + content\r\n : content) + '
'\r\n : \"
\" + colorStr + seriesName + content + \"
\";\r\n }\r\n else {\r\n html = !multipleSeries\r\n ? seriesName + (seriesName ? '\\n' : '') + ''\r\n + colorStr\r\n + (name\r\n ? encodeHTML(name) + \": \" + content\r\n : content) + ''\r\n : \"\" + colorStr + seriesName + \": \" + content;\r\n }\r\n return { html: html, markers: markers };\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = ColorPaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, ColorPaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(data.CHANGABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataSelfChange, seriesModel));\r\n });\r\n }\r\n function onDataSelfChange(seriesModel) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd(this.count());\r\n }\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner () {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = fields.large;\r\n var originalProgressive = fields.progressiveRender;\r\n var large = fields.large = pipelineContext && pipelineContext.large;\r\n var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;\r\n return (!!((originalLarge ^ large) || (originalProgressive ^ progressive)) && 'reset');\r\n };\r\n }\n\n var inner$3 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$3(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$3(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\n\n var inner$4 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$4(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$4(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || (rawIdx + ''), colorScope, dataAll.count());\r\n }\r\n });\r\n });\r\n }\r\n };\n\n function aria (dom, ecModel) {\r\n var ariaModel = ecModel.getModel('aria');\r\n if (!ariaModel.get('show')) {\r\n return;\r\n }\r\n else if (ariaModel.get('description')) {\r\n dom.setAttribute('aria-label', ariaModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = 0;\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n ++seriesCnt;\r\n }, this);\r\n var maxDataCnt = ariaModel.get('data.maxCount') || 10;\r\n var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n ariaLabel = replace(getConfig('general.withTitle'), {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = getConfig('general.withoutTitle');\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? 'series.multiple.prefix'\r\n : 'series.single.prefix';\r\n ariaLabel += replace(getConfig(prefix), { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var seriesTpl = 'series.'\r\n + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\r\n seriesLabel = getConfig(seriesName\r\n ? seriesTpl + 'withName'\r\n : seriesTpl + 'withoutName');\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n window.data = data;\r\n if (data.count() > maxDataCnt) {\r\n seriesLabel += replace(getConfig('data.partialData'), {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += getConfig('data.allData');\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n dataLabels.push(replace(name_1\r\n ? getConfig('data.withName')\r\n : getConfig('data.withoutName'), {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n seriesLabel += dataLabels\r\n .join(getConfig('data.separator.middle'))\r\n + getConfig('data.separator.end');\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n ariaLabel += seriesLabels_1\r\n .join(getConfig('series.multiple.separator.middle'))\r\n + getConfig('series.multiple.separator.end');\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getConfig(path) {\r\n var userConfig = ariaModel.get(path);\r\n if (userConfig == null) {\r\n var pathArr = path.split('.');\r\n var result = ecModel.getLocale('aria');\r\n for (var i = 0; i < pathArr.length; ++i) {\r\n result = result[pathArr[i]];\r\n }\r\n return result;\r\n }\r\n else {\r\n return userConfig;\r\n }\r\n }\r\n function getTitle() {\r\n var title = ecModel.getModel('title').option;\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocale(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n var PI$4 = Math.PI;\r\n function loadingDefault (api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#c23531',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$4 / 2,\r\n endAngle: -PI$4 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$4 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$4 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.ecInstance.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap\r\n || (stageHandlerRecord.seriesTaskMap = createHashMap());\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = seriesTaskMap.get(pipelineId)\r\n || seriesTaskMap.set(pipelineId, createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n task.dispose();\r\n seriesTaskMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap\r\n || createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = agentStubMap.get(pipelineId);\r\n if (!stub) {\r\n stub = agentStubMap.set(pipelineId, createTask({ reset: stubReset, onDirty: stubOnDirty }));\r\n overallTask.dirty();\r\n }\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n agentStubMap.each(function (stub, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n stub.dispose();\r\n overallTask.dirty();\r\n agentStubMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#eee';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n axisTick: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n axisLabel: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n type: 'dashed',\r\n color: '#aaa'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53',\r\n '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: '#333',\r\n tooltip: {\r\n axisPointer: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n crossStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n color: '#000'\r\n }\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n normal: {\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n dataZoom: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n itemStyle: {\r\n normal: {\r\n color: colorPalette[1]\r\n }\r\n },\r\n label: {\r\n normal: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n controlStyle: {\r\n normal: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\n\n var PI2$5 = Math.PI * 2;\r\n var CMD$3 = PathProxy.CMD;\r\n var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\r\n function getCandidateAnchor(pos, distance, rect, outPt, outDir) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n switch (pos) {\r\n case 'top':\r\n outPt.set(rect.x + width / 2, rect.y - distance);\r\n outDir.set(0, -1);\r\n break;\r\n case 'bottom':\r\n outPt.set(rect.x + width / 2, rect.y + height + distance);\r\n outDir.set(0, 1);\r\n break;\r\n case 'left':\r\n outPt.set(rect.x - distance, rect.y + height / 2);\r\n outDir.set(-1, 0);\r\n break;\r\n case 'right':\r\n outPt.set(rect.x + width + distance, rect.y + height / 2);\r\n outDir.set(1, 0);\r\n break;\r\n }\r\n }\r\n function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n x /= d;\r\n y /= d;\r\n var ox = x * r + cx;\r\n var oy = y * r + cy;\r\n if (Math.abs(startAngle - endAngle) % PI2$5 < 1e-4) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$5;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$5;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$5 >= startAngle && angle + PI2$5 <= endAngle)) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n var x1 = r * Math.cos(startAngle) + cx;\r\n var y1 = r * Math.sin(startAngle) + cy;\r\n var x2 = r * Math.cos(endAngle) + cx;\r\n var y2 = r * Math.sin(endAngle) + cy;\r\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\r\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\r\n if (d1 < d2) {\r\n out[0] = x1;\r\n out[1] = y1;\r\n return Math.sqrt(d1);\r\n }\r\n else {\r\n out[0] = x2;\r\n out[1] = y2;\r\n return Math.sqrt(d2);\r\n }\r\n }\r\n function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\r\n var dx = x - x1;\r\n var dy = y - y1;\r\n var dx1 = x2 - x1;\r\n var dy1 = y2 - y1;\r\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n dx1 /= lineLen;\r\n dy1 /= lineLen;\r\n var projectedLen = dx * dx1 + dy * dy1;\r\n var t = projectedLen / lineLen;\r\n if (limitToEnds) {\r\n t = Math.min(Math.max(t, 0), 1);\r\n }\r\n t *= lineLen;\r\n var ox = out[0] = x1 + t * dx1;\r\n var oy = out[1] = y1 + t * dy1;\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n function projectPointToRect(x1, y1, width, height, x, y, out) {\r\n if (width < 0) {\r\n x1 = x1 + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y1 = y1 + height;\r\n height = -height;\r\n }\r\n var x2 = x1 + width;\r\n var y2 = y1 + height;\r\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\r\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n var tmpPt = [];\r\n function nearestPointOnRect(pt, rect, out) {\r\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\r\n out.set(tmpPt[0], tmpPt[1]);\r\n return dist;\r\n }\r\n function nearestPointOnPath(pt, path, out) {\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n var minDist = Infinity;\r\n var data = path.data;\r\n var x = pt.x;\r\n var y = pt.y;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var d = minDist;\r\n switch (cmd) {\r\n case CMD$3.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$3.L:\r\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.C:\r\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.Q:\r\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i <= 1) {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\r\n break;\r\n case CMD$3.Z:\r\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n if (d < minDist) {\r\n minDist = d;\r\n out.set(tmpPt[0], tmpPt[1]);\r\n }\r\n }\r\n return minDist;\r\n }\r\n var pt0 = new Point();\r\n var pt1 = new Point();\r\n var pt2 = new Point();\r\n var dir = new Point();\r\n var dir2 = new Point();\r\n function updateLabelLinePoints(target, labelLineModel) {\r\n if (!target) {\r\n return;\r\n }\r\n var labelLine = target.getTextGuideLine();\r\n var label = target.getTextContent();\r\n if (!(label && labelLine)) {\r\n return;\r\n }\r\n var labelGuideConfig = target.textGuideLineConfig || {};\r\n var points = [[0, 0], [0, 0], [0, 0]];\r\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\r\n var labelRect = label.getBoundingRect().clone();\r\n labelRect.applyTransform(label.getComputedTransform());\r\n var minDist = Infinity;\r\n var anchorPoint = labelGuideConfig && labelGuideConfig.anchor;\r\n var targetTransform = target.getComputedTransform();\r\n var targetInversedTransform = targetTransform && invert([], targetTransform);\r\n var len = labelLineModel.get('length2') || 0;\r\n if (anchorPoint) {\r\n pt2.copy(anchorPoint);\r\n }\r\n for (var i = 0; i < searchSpace.length; i++) {\r\n var candidate = searchSpace[i];\r\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\r\n Point.scaleAndAdd(pt1, pt0, dir, len);\r\n pt1.transform(targetInversedTransform);\r\n var boundingRect = target.getBoundingRect();\r\n var dist = anchorPoint ? anchorPoint.distance(pt1)\r\n : (target instanceof Path\r\n ? nearestPointOnPath(pt1, target.path, pt2)\r\n : nearestPointOnRect(pt1, boundingRect, pt2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n pt1.transform(targetTransform);\r\n pt2.transform(targetTransform);\r\n pt2.toArray(points[0]);\r\n pt1.toArray(points[1]);\r\n pt0.toArray(points[2]);\r\n }\r\n }\r\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\r\n labelLine.setShape({ points: points });\r\n }\r\n var tmpArr = [];\r\n var tmpProjPoint = new Point();\r\n function limitTurnAngle(linePoints, minTurnAngle) {\r\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\r\n return;\r\n }\r\n minTurnAngle = minTurnAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt0, pt1);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(dir2);\r\n var minTurnAngleCos = Math.cos(minTurnAngle);\r\n if (minTurnAngleCos < angleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\r\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\r\n return;\r\n }\r\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt1, pt0);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(surfaceNormal);\r\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\r\n if (angleCos < maxSurfaceAngleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n label.hide();\r\n labelLine && labelLine.hide();\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var labelAttr = labelItem.defaultAttr;\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelAttr.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n rect: labelRect,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null && !textEl.disableLabelLayout) {\r\n _this._addLabel(dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n var itemModel = data.getItemModel(labelItem.dataIndex);\r\n label.on('drag', createDragHandler(hostEl, itemModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shift-x';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shift-y';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel);\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n var ecModel = ecIns.getModel();\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n return ctx.createPattern(image, pattern.repeat || 'repeat');\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = style.width;\r\n var height = style.height;\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n }\r\n ctx.setLineDash(lineDash || []);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (el.invisible\r\n || el.style.opacity === 0\r\n || (el.culling && isDisplayableCulled(el, scope.viewWidth, scope.viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n el.__dirty = 0;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length - 1; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.__dirty = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n ctx.clearRect(0, 0, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(0, 0, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n var domBack = this.domBack;\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, 0, 0, width, height);\r\n ctx.restore();\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, paintAll, redrawId);\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, paintAll) {\r\n var layerList = [];\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n for (var k = 0; k < layerList.length; k++) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this._zlevelList[0]\r\n ? this._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i = void 0;\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n brush(ctx, el, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n ctx.restore();\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version = '5.0.0-alpha.1';\r\n var dependencies = {\r\n zrender: '5.0.0-alpha.1'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var defaultRenderer = 'canvas';\r\n if (__DEV__) {\r\n defaultRenderer = (typeof window === 'undefined' ? global : window).__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && backwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '' + item.dom + '';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n var ecData = el && getECData(el);\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n }\r\n else if (el && ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap(normalizeToArray(excludeSeriesId));\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (payload.statusChanged) {\r\n markStatusToUpdate(this);\r\n }\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n function getDispatcher(target, det) {\r\n while (target && !det(target)) {\r\n if (target.__hostTarget) {\r\n target = target.__hostTarget;\r\n }\r\n else {\r\n target = target.parent;\r\n }\r\n }\r\n return target;\r\n }\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateZ(seriesModel, chartView);\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n aria(ecIns._zr.dom, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 1;\r\n }\r\n if (labelLine) {\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 - 1;\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerPreprocessor(backwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', loadingDefault);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n var i;\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (i = 0; i < oldArr.length; i++) {\r\n var key = oldDataKeyArr[i];\r\n var idx = newDataIndexMap[key];\r\n if (idx != null) {\r\n var len = idx.length;\r\n if (len) {\r\n len === 1 && (newDataIndexMap[key] = null);\r\n idx = idx.shift();\r\n }\r\n else {\r\n newDataIndexMap[key] = null;\r\n }\r\n this._update && this._update(idx, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n for (i = 0; i < newDataKeyArr.length; i++) {\r\n var key = newDataKeyArr[i];\r\n if (newDataIndexMap.hasOwnProperty(key)) {\r\n var idx = newDataIndexMap[key];\r\n if (idx == null) {\r\n continue;\r\n }\r\n if (!idx.length) {\r\n this._add && this._add(idx);\r\n }\r\n else {\r\n for (var j = 0, len = idx.length; j < len; j++) {\r\n this._add && this._add(idx[j]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n var existence = map[key];\r\n if (existence == null) {\r\n keyArr.push(key);\r\n map[key] = i;\r\n }\r\n else {\r\n if (!existence.length) {\r\n map[key] = existence = [existence];\r\n }\r\n existence.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var isObject$3 = isObject;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getRawValueFromStore;\r\n var getIndicesCtor;\r\n var prepareChunks;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var cloneDimStore;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._chunkSize = 1e5;\r\n this._chunkCount = 0;\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = data instanceof Source || isArrayLike(data);\r\n if (notProvider) {\r\n data = new DefaultDataProvider(data, this.dimensions.length);\r\n }\r\n if (__DEV__) {\r\n if (!notProvider\r\n && (typeof data.getItem !== 'function' || typeof data.count !== 'function')) {\r\n throw new Error('Inavlid data provider.');\r\n }\r\n }\r\n this._rawData = data;\r\n this._storage = {};\r\n this._indices = null;\r\n this._nameList = nameList || [];\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, data.count());\r\n if (data.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var chunkSize = this._chunkSize;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, this._dimensionInfos[dim], chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var emptyDataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, k);\r\n storage[dim][chunkIndex][chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var chunkSize = this._chunkSize;\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var nameRepeatCount = this._nameRepeatCount = {};\r\n var nameDimIdx;\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n var dimInfo = dimensionInfoMap[dim];\r\n if (dimInfo.otherDims.itemName === 0) {\r\n nameDimIdx = this._nameDimIdx = i;\r\n }\r\n if (dimInfo.otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, dimInfo, chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var dataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var dimStorage = storage[dim][chunkIndex];\r\n var val = this._dimValueGetter(dataItem, dim, idx, k);\r\n dimStorage[chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (!rawData.pure) {\r\n var name_1 = nameList[idx];\r\n if (dataItem && name_1 == null) {\r\n if (dataItem.name != null) {\r\n nameList[idx] = name_1 = dataItem.name;\r\n }\r\n else if (nameDimIdx != null) {\r\n var nameDim = dimensions[nameDimIdx];\r\n var nameDimChunk = storage[nameDim][chunkIndex];\r\n if (nameDimChunk) {\r\n name_1 = nameDimChunk[chunkOffset];\r\n var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n name_1 = ordinalMeta.categories[name_1];\r\n }\r\n }\r\n }\r\n }\r\n var id = dataItem == null ? null : dataItem.id;\r\n if (id == null && name_1 != null) {\r\n nameRepeatCount[name_1] = nameRepeatCount[name_1] || 0;\r\n id = name_1;\r\n if (nameRepeatCount[name_1] > 0) {\r\n id += '__ec__' + nameRepeatCount[name_1];\r\n }\r\n nameRepeatCount[name_1]++;\r\n }\r\n id != null && (idList[idx] = id);\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var storage = this._storage;\r\n if (!storage[dim]) {\r\n return NaN;\r\n }\r\n idx = this.getRawIndex(idx);\r\n var chunkIndex = Math.floor(idx / this._chunkSize);\r\n var chunkOffset = idx % this._chunkSize;\r\n var chunkStore = storage[dim][chunkIndex];\r\n var value = chunkStore[chunkOffset];\r\n return value;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n if (!dimStore) {\r\n return NaN;\r\n }\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = dimStore[chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype._getFast = function (dim, rawIdx) {\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = this._storage[dim][chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var value = this._getFast(dim, this.getRawIndex(i));\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var diff = value - this.get(dim, i);\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n return this._nameList[rawIndex]\r\n || getRawValueFromStore(this, this._nameDimIdx, rawIndex)\r\n || '';\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n for (var i = 0; i < this.count(); i++) {\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, this.get(dimNames[0], i), i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, this.get(dimNames[0], i), this.get(dimNames[1], i), i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = this.get(dimNames[k], i);\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dim0 = dimNames[0];\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = this._getFast(dim0, rawIdx);\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = this._getFast(dim0, rawIdx);\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n if (!this._count) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = this._storage[dimensions[0]];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = this._storage[dim0];\r\n var dimStorage2 = this._storage[dimensions[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var chunkStorage2 = dimStorage2[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n var val2 = chunkStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = this._getFast(dim0, rawIndex);\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = this._getFast(dimk, rawIndex);\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var storage = list._storage;\r\n var tmpRetValue = [];\r\n var chunkSize = this._chunkSize;\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[chunkIndex][chunkOffset] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = Math.floor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var chunkSize = this._chunkSize;\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n var originalChunkIndex = Math.floor(dataIdx / chunkSize);\r\n var originalChunkOffset = dataIdx % chunkSize;\r\n frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize);\r\n var sampleChunkOffset = sampleFrameIdx % chunkSize;\r\n dimStore[sampleChunkIndex][sampleChunkOffset] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (!val) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_2 in key) {\r\n if (key.hasOwnProperty(name_2)) {\r\n this.setLayout(name_2, key[name_2]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getRawValueFromStore = function (list, dimIndex, rawIndex) {\r\n var val;\r\n if (dimIndex != null) {\r\n var chunkSize = list._chunkSize;\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n var dim = list.dimensions[dimIndex];\r\n var chunk = list._storage[dim][chunkIndex];\r\n if (chunk) {\r\n val = chunk[chunkOffset];\r\n var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n }\r\n return val;\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareChunks = function (storage, dimInfo, chunkSize, chunkCount, end) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var lastChunkIndex = chunkCount - 1;\r\n var dim = dimInfo.name;\r\n var resizeChunkArray = storage[dim][lastChunkIndex];\r\n if (resizeChunkArray && resizeChunkArray.length < chunkSize) {\r\n var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize));\r\n for (var j = 0; j < resizeChunkArray.length; j++) {\r\n newStore[j] = resizeChunkArray[j];\r\n }\r\n storage[dim][lastChunkIndex] = newStore;\r\n }\r\n for (var k = chunkCount * chunkSize; k < end; k += chunkSize) {\r\n storage[dim].push(new DataCtor(Math.min(end - k, chunkSize)));\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null) {\r\n id = getRawValueFromStore(list, list._idDimIdx, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = [dimensions];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneDimStore(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n cloneDimStore = function (originalDimStore) {\r\n var newDimStore = new Array(originalDimStore.length);\r\n for (var j = 0; j < originalDimStore.length; j++) {\r\n newDimStore[j] = cloneChunk(originalDimStore[j]);\r\n }\r\n return newDimStore;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions (source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n result.firstCategoryDimIndex = index;\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n function getDefaultLabel(data, dataIndex, interpolatedValues) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[0])\r\n : interpolatedValues;\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var val = interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[i])\r\n : interpolatedValues;\r\n vals.push(val);\r\n }\r\n return vals.join(' ');\r\n }\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n updateProps(symbolPath, {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n }, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n symbolPath.ensureState('emphasis').style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n this.ensureState('emphasis');\r\n this.setSymbolScale(1);\r\n }\r\n else {\r\n this.states.emphasis = null;\r\n }\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n var emphasisState = this.states.emphasis;\r\n if (emphasisState) {\r\n var hoverScale = Math.max(scale * 1.1, 3 / this._sizeY + scale);\r\n emphasisState.scaleX = hoverScale;\r\n emphasisState.scaleY = hoverScale;\r\n }\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n this.silent = symbolPath.silent = true;\r\n !(opt && opt.keepLabel) && (symbolPath.removeTextContent());\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, this._seriesModel, getECData(this).dataIndex, cb);\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var seriesScope = makeSeriesScope(data);\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = data.getItemLayout(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = data.getItemLayout(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope);\r\n updateProps(symbolEl, {\r\n x: point[0],\r\n y: point[1]\r\n }, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = data.getItemLayout(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff (oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n var currentPt = oldData.getItemLayout(diffItem.idx);\r\n var nextPt = newData.getItemLayout(diffItem.idx1);\r\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\r\n currentPt = nextPt.slice();\r\n }\r\n currPoints.push(currentPt);\r\n nextPoints.push(nextPt);\r\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\r\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var idxAdd = diffItem.idx;\r\n currPoints.push(oldCoordSys.dataToPoint([\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idxAdd),\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idxAdd)\r\n ]));\r\n nextPoints.push(newData.getItemLayout(idxAdd).slice());\r\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idxAdd));\r\n nextStackedPoints.push(newStackedOnPoints[idxAdd]);\r\n rawIndices.push(newData.getRawIndex(idxAdd));\r\n break;\r\n case '-':\r\n var idxMinus = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(idxMinus);\r\n if (rawIndex !== idxMinus) {\r\n currPoints.push(oldData.getItemLayout(idxMinus));\r\n nextPoints.push(newCoordSys.dataToPoint([\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idxMinus),\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idxMinus)\r\n ]));\r\n currStackedPoints.push(oldStackedOnPoints[idxMinus]);\r\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idxMinus));\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var sortedCurrPoints = [];\r\n var sortedNextPoints = [];\r\n var sortedCurrStackedPoints = [];\r\n var sortedNextStackedPoints = [];\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n sortedCurrPoints[i] = currPoints[idx];\r\n sortedNextPoints[i] = nextPoints[idx];\r\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\r\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var vec2Min = min;\r\n var vec2Max = max;\r\n var scaleAndAdd$1 = scaleAndAdd;\r\n var v2Copy = copy;\r\n var v = [];\r\n var cp0 = [];\r\n var cp1 = [];\r\n function isPointNull(p) {\r\n return isNaN(p[0]) || isNaN(p[1]);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n return ((smoothMonotone === 'none' || !smoothMonotone) ? drawNonMono : drawMono)(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls);\r\n }\r\n function drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var prevP = points[prevIdx];\r\n var dim = smoothMonotone === 'y' ? 1 : 0;\r\n var ctrlLen = (p[dim] - prevP[dim]) * smooth;\r\n v2Copy(cp0, prevP);\r\n cp0[dim] = prevP[dim] + ctrlLen;\r\n v2Copy(cp1, p);\r\n cp1[dim] = p[dim] - ctrlLen;\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n v2Copy(cp0, p);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextP = points[nextIdx];\r\n if (connectNulls) {\r\n while (nextP && isPointNull(points[nextIdx])) {\r\n nextIdx += dir;\r\n nextP = points[nextIdx];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var prevP = points[prevIdx];\r\n nextP = points[nextIdx];\r\n if (!nextP || isPointNull(nextP)) {\r\n v2Copy(cp1, p);\r\n }\r\n else {\r\n if (isPointNull(nextP) && !connectNulls) {\r\n nextP = p;\r\n }\r\n sub(v, nextP, prevP);\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x' || smoothMonotone === 'y') {\r\n var dim = smoothMonotone === 'x' ? 0 : 1;\r\n lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\r\n lenNextSeg = Math.abs(p[dim] - nextP[dim]);\r\n }\r\n else {\r\n lenPrevSeg = dist(p, prevP);\r\n lenNextSeg = dist(p, nextP);\r\n }\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n scaleAndAdd$1(cp1, p, v, -smooth * (1 - ratioNextSeg));\r\n }\r\n vec2Min(cp0, cp0, smoothMax);\r\n vec2Max(cp0, cp0, smoothMin);\r\n vec2Min(cp1, cp1, smoothMax);\r\n vec2Max(cp1, cp1, smoothMin);\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n scaleAndAdd$1(cp0, p, v, smooth * ratioNextSeg);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function getBoundingBox(points, smoothConstraint) {\r\n var ptMin = [Infinity, Infinity];\r\n var ptMax = [-Infinity, -Infinity];\r\n if (smoothConstraint) {\r\n for (var i = 0; i < points.length; i++) {\r\n var pt = points[i];\r\n if (pt[0] < ptMin[0]) {\r\n ptMin[0] = pt[0];\r\n }\r\n if (pt[1] < ptMin[1]) {\r\n ptMin[1] = pt[1];\r\n }\r\n if (pt[0] > ptMax[0]) {\r\n ptMax[0] = pt[0];\r\n }\r\n if (pt[1] > ptMax[1]) {\r\n ptMax[1] = pt[1];\r\n }\r\n }\r\n }\r\n return {\r\n min: smoothConstraint ? ptMin : ptMax,\r\n max: smoothConstraint ? ptMax : ptMin\r\n };\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n this.connectNulls = false;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length;\r\n var result = getBoundingBox(points, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length;\r\n var smoothMonotone = shape.smoothMonotone;\r\n var bbox = getBoundingBox(points, shape.smoothConstraint);\r\n var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel) {\r\n var rect = cartesian.getArea();\r\n var isHorizontal = cartesian.getBaseAxis().isHorizontal();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: round$1(sectorArea.r0, 1),\r\n r: round$1(sectorArea.r, 1),\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n return null;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n var p1 = points1[i];\r\n var p2 = points2[i];\r\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var min1 = [];\r\n var max1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n fromPoints(points1, min1, max1);\r\n fromPoints(points2, min2, max2);\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var points = [];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n for (; i < points.length - 1; i++) {\r\n var nextPt = points[i + 1];\r\n var pt = points[i];\r\n stepPoints.push(pt);\r\n var stepPt = [];\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n stepPoints.push(stepPt2);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n }\r\n }\r\n points[i] && stepPoints.push(points[i]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function createLineClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.mapArray(data.getItemLayout);\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n data.eachItemGraphicEl(function (el) {\r\n el && el.stopAnimation(null, true);\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n var shouldBolderOnEmphasis = seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder';\r\n if (shouldBolderOnEmphasis) {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel'\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var pt = data.getItemLayout(dataIndex);\r\n if (!pt) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.setPosition(pt);\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._updateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n polyline.stopAnimation();\r\n updateProps(polyline, {\r\n shape: {\r\n points: next\r\n }\r\n }, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n el.setPosition(polyline.shape.__points[updatedDataInfo[i].ptIdx]);\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function layoutPoints (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeRender = pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = isLargeRender && new Float32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.get(dims[0], i);\r\n point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n var x = tmpIn[0] = data.get(dims[0], i);\r\n var y = tmpIn[1] = data.get(dims[1], i);\r\n point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (isLargeRender) {\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n else {\r\n data.setItemLayout(i, (point && point.slice()) || [NaN, NaN]);\r\n }\r\n }\r\n isLargeRender && data.setLayout('symbolPoints', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var size = extent[1] - extent[0];\r\n var rate = Math.round(data.count() / size);\r\n if (rate > 1) {\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator (axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n sort: false,\r\n realtimeSort: false,\r\n sortSeriesIndex: null,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta || isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({ categories: ordinalMeta });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC);\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\r\n var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var PI$5 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$5) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$5 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$5 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$5 * 1.5 && rotationDiff > PI$5 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$5 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$5 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$5(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$5(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$5(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 60,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(layoutPoints('line'));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var inner$6 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$6(axis)[prop] || (inner$6(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$6(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$6(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$6(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (!ignoreContainLabel && gridModel.get('containLabel')) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$3 = Math.max;\r\n var mathMin$3 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea;\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n coordSysClipArea = coord.getArea && coord.getArea();\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n var isReorder = payload && payload.type === 'changeAxisOrder';\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, isReorder);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) {\r\n var that = this;\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 var lastAnimator = null;\r\n if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var axisSort = coord.type === 'cartesian2d' && axis2DModel.get('sort')\r\n && axis2DModel.get('sortSeriesIndex') === seriesModel.seriesIndex;\r\n var realtimeSort = axisSort && axis2DModel.get('realtimeSort');\r\n if (realtimeSort && this._isFirstFrame && data.count()) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\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 data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false);\r\n animator && (lastAnimator = animator);\r\n }\r\n else if (coord.type === 'cartesian2d') {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\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 if (drawBackground) {\r\n var bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\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 }\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n var animator = updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true);\r\n animator && (lastAnimator = animator);\r\n }\r\n else {\r\n updateProps(el, { shape: layout }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n if (lastAnimator) {\r\n lastAnimator.during(function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n that._updateSort(data, orderMap, baseAxis, api);\r\n });\r\n }\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function () {\r\n this._clear(this._model);\r\n };\r\n BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var 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;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$3(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$3(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$3(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$3(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function () {\r\n return false;\r\n }\r\n };\r\n var 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 if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\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\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, data, newIndex, isHorizontal, isUpdate) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\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 }\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 (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n var lastAnimator = el.animators.length\r\n ? find(el.animators, function (animator) { return animator.targetName === 'shape' && !!animator.getTrack('width'); })\r\n : null;\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n var defaultTextGetter = function (values) {\r\n return getDefaultLabel(seriesModel.getData(), newIndex, values);\r\n };\r\n var labelModel = seriesModel.getModel('label');\r\n (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter);\r\n return lastAnimator;\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\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 };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n el.ignore = isZeroOnPolar(layout);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n setLabelStyle(el, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\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 }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\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 var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var 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 function 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 barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function 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 }\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 function 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 ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\n\n function createListSimply (seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function labelLayout (seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.x -= margin / 2;\r\n textRect.y -= margin / 2;\r\n textRect.width += margin;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend({}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = {\r\n r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0)\r\n };\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var labelText = sector.getTextContent();\r\n var itemModel = data.getItemModel(idx);\r\n var labelTextEmphasisState = labelText.ensureState('emphasis');\r\n var labelModel = itemModel.getModel('label');\r\n var labelHoverModel = itemModel.getModel(['emphasis', 'label']);\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n }, { normal: {\r\n opacity: style && style.opacity\r\n } });\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n labelText.ignore = !labelModel.get('show');\r\n labelTextEmphasisState.ignore = !labelHoverModel.get('show');\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: style && style.opacity\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var hasAnimation = ecModel.get('animation');\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n labelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$6 = Math.PI * 2;\r\n var RADIAN$1 = Math.PI / 180;\r\n function getViewRect(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function pieLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var viewRect = getViewRect(seriesModel, api);\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = parsePercent$2(viewRect.width, api.getWidth());\r\n var height = parsePercent$2(viewRect.height, api.getHeight());\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width) + viewRect.x;\r\n var cy = parsePercent$2(center[1], height) + viewRect.y;\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$1;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$1;\r\n var validDataCount = 0;\r\n data.each(valueDim, function (value) {\r\n !isNaN(value) && validDataCount++;\r\n });\r\n var sum = data.getSum(valueDim);\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var clockwise = seriesModel.get('clockwise');\r\n var roseType = seriesModel.get('roseType');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var extent = data.getDataExtent(valueDim);\r\n extent[0] = 0;\r\n var restAngle = PI2$6;\r\n var valueSumLargerThanMinAngle = 0;\r\n var currentAngle = startAngle;\r\n var dir = clockwise ? 1 : -1;\r\n data.setLayout({ viewRect: viewRect, r: r });\r\n data.each(valueDim, function (value, idx) {\r\n var angle;\r\n if (isNaN(value)) {\r\n data.setItemLayout(idx, {\r\n angle: NaN,\r\n startAngle: NaN,\r\n endAngle: NaN,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? NaN\r\n : r\r\n });\r\n return;\r\n }\r\n if (roseType !== 'area') {\r\n angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n }\r\n else {\r\n angle = PI2$6 / validDataCount;\r\n }\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n restAngle -= minAngle;\r\n }\r\n else {\r\n valueSumLargerThanMinAngle += value;\r\n }\r\n var endAngle = currentAngle + dir * angle;\r\n data.setItemLayout(idx, {\r\n angle: angle,\r\n startAngle: currentAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? linearMap(value, extent, [r0, r])\r\n : r\r\n });\r\n currentAngle = endAngle;\r\n });\r\n if (restAngle < PI2$6 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$6 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n exports.PRIORITY = PRIORITY;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.init = init$1;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.version = version;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file +{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__spreadArrays","s","i","il","arguments","length","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","apply","clone","source","result","typeStr","call","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","extend","assign","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","createObject","proto","properties","StyleCtor","hasOwn","own","noop","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","scale","normalize","distance","dist","distanceSquare","distSquare","lerp","t","applyTransform","m","min","max","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","transformCoordWithViewport","el","inX","inY","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","start","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","offset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","sort","remaining","ts","minRun","force","invalidZErrorLogged","logInvalidZError","warn","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","traverse","update","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","beforeUpdate","__dirty","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","updateTransform","childrenRef","children","child","markRedraw","disp","__clipPaths","isNaN","textGuide","getTextGuideLine","textEl","getTextContent","addRoot","delRoot","idx","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","cos","PI","sinusoidalOut","sin","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","m1","m2","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","iv","substr","op","ep","fname","params","split","alpha","pop","hsla2rgba","hsla","rgba","lift","color","level","colorArr","stringify","arrColor","lum","backgroundLum","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","floor","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","needsAnimate","getAdditiveTrack","_additiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_doneList","_onframeList","_clip","_target","_loop","_additiveAnimators","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","_getAdditiveTrack","lastFinalKf","during","callback","isPaused","_doneCallback","doneList","trackName","additiveAnimators","getTrack","forceAnimate","clip","stillHasAdditiveAnimator","animation","addClip","forwardToLast","removeClip","done","getClip","stopTracks","tracksKeys","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","addAnimator","animator","removeAnimator","Date","getTime","nextClip","finished","_startLoop","animate","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","scope","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","_globalHandlerScope","isPointerCapturing","globalHandlerScope","create$1","identity","copy$1","mul","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","ct","scale$1","vx","vy","invert","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","setLocalTransform","atan2","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","Point","other","equal","scalar","dot","negate","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","screen","deviceXDPI","logicalXDPI","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","updateInnerText","forceUpdate","_textContent","textConfig","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","previousTextContent","removeTextContent","cfg","setTextGuideLine","guideLine","removeTextGuideLine","refreshHover","refresh","dirty","inHover","textContent","updateDuringAnimation","wakeUp","stopAnimation","leftAnimators","animateTo","animationProps","animateFrom","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","count","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","existsAnimatorsOnSameTarget","revertedSource","reversedTarget","sourceClone","STYLE_MAGIC_KEY","random","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","rectContain","coord","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","_getAnimationStyleProps","mergedStyle","dispProto","invisible","culling","incremental","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","B","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","L","Q","Z","R","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","PathProxy","notSaveData","_xi","_yi","_x0","_y0","_saveData","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathData","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","Path","shape","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","buildPath","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","isZeroArea","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","SVGPath","isPathProxy","createPathOptions","pathProxy","innerOpts","createFromString","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpRect","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","ZRImage","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","CompoundPath","_updatePathDirty","paths","dirtyPath","IncrementalDisplayble","notClear","_displayables","_temporaryDisplayables","_cursor","getCursor","clearDisplaybles","clearTemporalDisplayables","addDisplayable","notPersistent","addDisplayables","displayables","getDisplayables","getTemporalDisplayables","eachPendingDisplayable","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","createOrUpdateImage","cbPayload","__zrImageSrc","pendingWrap","isImageReady","pending","Image","onload","onerror","imageOnLoad","__cachedImgObj","STYLE_REG","truncateText","containerWidth","ellipsis","prepareTruncateOptions","truncateSingleLine","preparedOpts","maxIterations","minChar","cnCharWidth","ascCharWidth","placeholder","contentWidth","ellipsisWidth","textLine","subLength","estimateLength","charCode","charCodeAt","parsePlainText","overflow","padding","truncate","calculatedLineHeight","lineHeight","truncateLineOverflow","lineOverflow","lines","wrapText","contentHeight","lineCount","outerHeight","outerWidth","truncateMinChar","maxWidth","RichTextToken","RichTextLine","tokens","RichTextContentBlock","parseRichText","contentBlock","topWidth","topHeight","wrapInfo","accumWidth","breakAll","exec","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","outer","line","token","tokenStyle","styleName","rich","textPadding","paddingH","tokenHeight","styleTokenWidth","tokenWidthNotSpecified","percentWidth","textBackgroundColor","bgImg","remainTruncWidth","block","isEmptyStr","newLine","strLines","linesWidths","tokenPadding","tokenPaddingH","outerWidth_1","parsePercent$1","isLineHolder","tokensLen","isLatin","ch","code","breakCharMap","isWordBreakChar","isBreakAll","lastAccumWidth","currentWord","currentWordWidth","chWidth","inWord","DEFAULT_RICH_TEXT_COLOR","DEFAULT_STROKE_LINE_WIDTH","DEFAULT_TEXT_ANIMATION_PROPS","fontSize","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","leftIndex","lineXLeft","lineXRight","rightIndex","_placeToken","parentBgColorDrawn","textWidth","textHeight","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","shadowStyle","makeFont","fontFamily","fontWeight","fontStyle","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","clockwise","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$2","IsogonShape","Isogon","dStep","deg","RingShape","r0","Ring","sin$1","cos$1","radian","RoseShape","Rose","SectorShape","Sector","PI$3","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","dim","proj","proj_1","useVML","painterCtors","delInstance","totalLum","ZRender","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","handerProxy","getViewportRoot","_flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","flush","triggerRendered","refreshHoverImmediately","addHover","removeHover","clearHover","clearAnimation","pathToImage","eventHandler","registerPainter","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","numericToNumber","valFloat","isNumeric","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","validateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","item","idNum","obj1","obj2","key1","key2","idOrName","isValidIdOrName","isNameSpecified","componentModel","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","queryDataIndex","payload","dataIndexInside","dataIndex","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","defaultMainType","queryOptionMap","parsedKey","queryType","includeMainTypes","queryOption","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getAttribute","TYPE_DELIMITER","IS_CONTAINER","IS_EXTENDED_CLASS","parseClassType","componentType","main","typeArr","checkClassType","isExtendedClass","clz","enableClassExtend","rootClz","mandatoryMethods","$constructor","method","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","defaultValue","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","ecIns","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","dataIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","styleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getterType","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","arg","JSON","toISOString","err","EMPTY_OBJ","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","normal","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","targetElEmphasisState","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","textStyle","setTextStyleCommon","labelPosition","labelRotate","labelDistance","labelOffset","defaultOutsidePosition","inheritColor","globalTextStyle","option","richItemNames","getRichItemNames","richResult","name_1","richTextStyle","setTokenTextStyle","margin","richItemNameMap","richKeys","richKey","parentModel","TEXT_PROPS_WITH_GLOBAL","TEXT_PROPS_SELF","TEXT_PROPS_BOX","isBlock","fillColor","strokeColor","baseline","disableBox","getFont","gTextStyleModel","PATH_COLOR","tmpRichText","TextStyleMixin","getTextColor","isEmphasis","getTextRect","LINE_STYLE_KEY_MAP","getLineStyle","LineStyleMixin","getLineDash","lineType","dotSize","dashSize","ITEM_STYLE_KEY_MAP","getItemStyle","ItemStyleMixin","getBorderLineDash","Model","rest","mergeOption","_doGet","parsePath","hasPath","pathFinal","resolveParentPath","isEmpty","restoreData","isAnimationEnabled","pathArr","base","getUID","enableSubTypeDefaulter","subTypeDefaulters","registerSubTypeDefaulter","defaulter","componentTypeMain","enableTopologicalTravel","entity","dependencyGetter","topologicalTravel","targetNameList","fullNameList","makeDepndencyGraph","graph","stack","noEntryList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","originalDeps","successor","removeEdgeAndAdd","removeEdge","succComponentType","entryCount","thisItem","createDependencyGraphItem","availableDeps","getAvailableDependencies","dependentName","predecessor","thatItem","dep","inheritDefaultOption","superOption","subOption","langEN","month","monthAbbr","dayOfWeek","dayOfWeekAbbr","legend","selector","toolbox","brush","title","polygon","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","q","dateGetterName","H","hoursGetterName","minutesGetterName","secondsGetterName","S","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","innerLabel","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","img","boundingRect","aspect","pathRect","animateOrSetProps","animationType","animatableModel","isFrom","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","fadeOutDisplayable","removeElementWithFadeOut","doRemove","isElementRemoved","animateOrSetLabel","labelModel","defaultTextGetter","valueAnimationEnabled","precisionOption","precision_1","interpolateValues_1","rawValues_1","getRawValue","isRawValueNumber_1","info","getDimensionInfo","host_1","nextValue","interpolated","startValues","labelText","updateLabel","initLabel","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","addCommas","parts","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","isTimeAxis","axisType","axisValue","axisIndex","$vars","alias","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getLayoutRect","positionInfo","containerRect","containerHeight","verticalMargin","horizontalMargin","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","hvIdx","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","ctor","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","globalDefault","gradientColor","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","useUTC","inner$1","getNearestColorPalette","colors","requestColorNum","paletteNum","ColorPaletteMixin","clearColorPalette","colorIdx","colorNameMap","getColorFromPalette","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","Source","sourceFormat","seriesLayoutBy","startIndex","dimensionsDefine","dimensionsDetectCount","encodeDefine","metaRawOption","seriesDataToSource","BE_ORDINAL","Must","Might","Not","innerGlobalModel","detectSourceFormat","resetSourceDefaulter","datasetMap","createSource","sourceData","thisMetaRawOption","dimInfo","determineSourceDimensions","sourceHeader","dimensions","makeEncodeDefine","inheritSourceMetaRawOption","thisNew","cloneSourceShallow","normalizeDimensionsOption","dataArrayRows","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","nameMap","displayName","exist","maxLoop","firstIndex","dimensions_1","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","dimName","dimType","dimDefItem","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeReplaceMergeInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","internalField","seriesIndices","mergeTheme","seriesId","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","api","coordinateSystems","creater","getCoordinateSystems","register","creator","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","timelineOpt","timeline","media","singleMedia","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toArr","toObj","compatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","toolboxOpt","feature","featureOpt","tooltip","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","backwardCompat","seriesType","clipOverflow","clockWise","label","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","order","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","ceil","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","valueParserMap","ExternalSource","getDimensionInfoAll","getRawHeaderItem","retrieveItemValue","rawItem","convertDataValue","rawVal","createExternalSource","sourceHeaderCount","extSource","dimsByName","dimDef","dimDefExt","rawValueGetter","externalTransformMap","registerExternalTransform","externalTransform","typeParsed","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","transOption","isFinal","applySingleDataTransform","upSourceList","transType","resultList","print","printStrArr","datasetIndex","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSource","upSourceMgr","_createSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","upSourceList_1","upMgr","errMsg","doThrow","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","inner$2","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","getRawData","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","isRichText","formatArrayValue","vertially","dimItem","tooltipDims","setEachItem","otherDims","markName","dimHead","dimHeadStr","valStr","formatSingleValue","mapDimensionsAll","tooltipDimLen","isValueArr","visualDrawType","formattedValue","colorEl","html","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","tmpArr","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","param","CHANGABLE_METHODS","wrapMethod","onDataSelfChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$3","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","inner$4","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","colorCallback","setVisual","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","ariaModel","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","getConfig","seriesLabels_1","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","RegExp","userConfig","PI$4","loadingDefault","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","overallProgress","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","splitLine","splitArea","minorSplitLine","crossStyle","subtextStyle","iconStyle","brushStyle","handleStyle","moveHandleStyle","fillerColor","dataBackground","selectedDataBackground","controlStyle","dayLabel","monthLabel","yearLabel","timeAxis","logAxis","valueAxis","categoryAxis","symbol","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","symbolSize","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","PI2$5","CMD$3","DEFAULT_SEARCH_SPACE","getCandidateAnchor","outPt","outDir","projectPointToArc","projectPointToLine","limitToEnds","dx1","dy1","lineLen","projectedLen","projectPointToRect","tmpPt","nearestPointOnRect","pt","nearestPointOnPath","minDist","pt0","pt1","pt2","dir2","updateLabelLinePoints","labelLineModel","labelLine","labelGuideConfig","textGuideLineConfig","searchSpace","candidates","anchorPoint","anchor","targetTransform","targetInversedTransform","candidate","limitTurnAngle","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","tan","limitSurfaceAngle","surfaceNormal","maxSurfaceAngle","maxSurfaceAngleCos","HALF_PI","angle2","newAngle","setLabelLineState","isNormal","styleObj","buildLabelLinePath","moveLen","midPoint0","midPoint2","midPoint1","setLabelLineStyle","labelIgnoreNormal","stateShow","isLabelIgnored","getLabelLineStatesModels","labelLineName","prepareLayoutList","defaultAttr","localRect","isAxisAligned","minMargin","globalRect","obb","priority","layoutOption","computedLayoutOption","axisAligned","shiftLayout","xyDim","sizeDim","minBound","maxBound","balanceShift","lastPos","adjusted","totalShifts","shiftList","first","last","minGap","maxGap","updateMinMaxGap","squeezeGaps","takeBoundsGap","squeezeWhenBailout","gapThisBound","gapOtherBound","moveDir","moveFromMaxGap","remained","maxSqeezePercent","gaps","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","labelAttr","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","__image","createPattern","repeat","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","setTransform","viewRect","isDisplayableCulled","isClipPathChanged","prevClipPaths","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","isLast","viewWidth","viewHeight","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","i_1","len_1","returnFalse","createDom","newDom","newDomStyle","Layer","motionBlur","lastFrameAlpha","virtual","__used","__drawIndex","__startIndex","__endIndex","domStyle","onselectstart","webkitUserSelect","userSelect","webkitTapHighlightColor","domBack","ctxBack","getElementCount","initContext","createBackBuffer","clearAll","clearColor","haveMotionBLur","clearRect","clearColorGradientOrPattern","__canvasGradient","__painter","fillRect","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","parseInt10","isLayerValid","__builtin__","createRoot","domRoot","CanvasPainter","_zlevelList","_layers","_layerConfig","_needsManuallyCompositing","singleCanvas","_opts","_singleCanvas","rootStyle","innerHTML","zlevelList","layers","_width","_getSize","_height","_domRoot","rootCanvas","mainLayer","getType","isSingleCanvas","getViewportRootOffset","viewportRoot","paintAll","_redrawId","_paintList","_paintHoverList","_hoverlayer","getLayer","getHoverLayer","redrawId","_updateLayerStatus","_doPaintList","needsRefreshHover","_compositeManually","self_1","eachBuiltinLayer","layerList","zi","useTimer","now","startTime","firstEl","dTime","draw","insertLayer","layersMap","prevLayer","prevDom","insertBefore","eachLayer","getLayers","updatePrevLayer","incrementalLayerCount","prevZlevel","_clearLayer","layerConfig","_zlevel","delLayer","removeChild","display","clearLayer","getRenderedCanvas","imageLayer","pixelRatio","width_1","height_1","ctx_1","renderToCanvas","whIdx","wh","cwh","plt","prb","defaultView","getComputedStyle","canvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","assert$1","each$3","isFunction$1","isObject$2","zrender","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_BRUSH","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","__ECHARTS__DEFAULT__RENDERER__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","getZr","notMerge","lazyUpdate","setTheme","getDevicePixelRatio","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","url","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","top_1","right_1","bottom_1","canvasList_1","dpr_1","instances","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","statusChanged","newObj","pendingActions","getDispatcher","dispatcher","dirtyList","updateZ","updateStates","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","oldStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","echartsProto","one","wrapped","args2","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","connect","disConnect","disconnect","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","_add","_update","_remove","execute","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","keyArr","keyGetterName","existence","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","otherDim","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","DataDimensionInfo","isObject$3","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getRawValueFromStore","getIndicesCtor","prepareChunks","getRawIndexWithoutIndices","getRawIndexWithIndices","normalizeDimensions","validateDimensions","cloneListForMapAndSample","cloneDimStore","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","chunkSize","dimLen","rawExtent","originalChunkCount","emptyDataItem","sourceIdx","chunkIndex","chunkOffset","dimRawExtent","dimensionInfoMap","idList","nameRepeatCount","nameDimIdx","_nameDimIdx","itemId","_idDimIdx","dimStorage","nameDim","nameDimChunk","getIndices","newIndices","thisCount","buffer","chunkStore","dimStore","_getFast","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","dimExtent","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","mapArray","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","dimension","rate","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","name_2","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","excludeDimensions","allDimensions","originalStorage","originalDimStore","newDimStore","cloneChunk","originalChunk","childECData","thisECData","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","LineSeriesModel","legendHoverLink","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","circle","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","size","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","getDefaultLabel","interpolatedValues","labelDims","vals","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","setSymbolScale","emphasisState","fadeOut","keepLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","newIdx","symbolEl","oldIdx","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","baseAxis","getOtherAxis","valueStart","getValueStart","baseAxisDim","valueAxisDim","valueDim","baseDim","baseDataOffset","stacked","stackResultDim","dataDimsForPoint","getExtent","getStackedOnPoint","dataCoordInfo","stackedData","dataToPoint","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","idxAdd","idxMinus","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","scaleAndAdd$1","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawNonMono","drawMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","ECPolylineShape","ECPolyline","ECPolygonShape","ECPolygon","stackedOnPoints","bbox","stackedOnBBox","stackedOnSmooth","createGridClipPath","cartesian","hasAnimation","getArea","isHorizontal","createPolarClipPath","sectorArea","createClipPath","isPointsSame","points1","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","toGlobalCoord","dataToCoord","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","gradient","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","getViewLabels","tickValue","axisExtent","availSize","createLineClipPath","expandSize","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","polyline","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolyline","_newPolygon","_stackedOnPoints","_points","_updateAnimation","lineJoin","shouldBolderOnEmphasis","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","layoutPoints","isLargeRender","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","axisTick","axisLabel","showMinLabel","showMaxLabel","boundaryGap","deduplication","alignWithLabel","splitNumber","minorTick","primary","logBase","axisDefault","category","OrdinalMeta","_needCollect","needCollect","_deduplication","createByAxisModel","dedplication","getOrdinal","_getOrCreateMap","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","getCategories","AxisModelCommonMixin","getNeedCrossZero","getCoordSysModel","CartesianAxisModel","extraOption","categorySortInfo","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","roundNumber","intervalScaleNiceTicks","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","dataNum","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","bandWidth","getBandWidth","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","axisKey","stackId","doCalBarWidthAndOffset","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","barMinHeight","isValueAxisH","valueAxisStart","getValueAxisStart","baseValue","baseCoord","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","bisect","TimeScale","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","freeze","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","PI$5","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","direction","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","matrix","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","ticksCoords","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","tickModel","getTicksCoords","minorTickModel","minorTicksCoords","getMinorTicksCoords","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labels","labelRotation","rawCategoryData","formattedLabel","rawLabel","itemLabelModel","rawCategoryItem","fixValue","axisInfo","getAxisInfo","axisPointerModel","useHandle","isHandleTrigger","coordSysAxesInfo","axesInfo","makeKey","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$5","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","condVal","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","getAxes","addAxis","cartesian2DDimensions","Cartesian2D","axisX","axisY","toLocalCoord","containData","clampData","xScale","yScale","xAxisExtent","yAxisExtent","pointToData","coordToData","xExtent","getGlobalExtent","yExtent","inner$6","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","makeCategoryTicks","makeCategoryLabelsActually","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","cache","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","fixExtentWithBands","getTickModel","tickVal","fixOnBandTicksCoords","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","littleThan","Axis2D","coordExtent","asc","Grid","_coordsMap","_coordsList","_axesMap","_axesList","axisPointerEnabled","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","getTooltipAxes","baseAxes","otherAxes","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","borderType","realtimeSort","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","isCoordinateSystemType","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$3","mathMin$3","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","removeOnRenderedListener","_updateDrawMode","coordinateSystemType","isReorder","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","isHorizontalOrRadial","animationModel","axis2DModel","_initSort","_onRendered","orderMap","_updateSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","__dataIndex","animateProperty","isRadial","ShapeClass","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","hasLabelRotate","minShowLabelRadian","setNotShow","labelLineLen","labelLineLen2","midAngle","nx","ny","isLabelInside","notShowLabel","PiePiece","firstCreate","_updateLabel","labelTextEmphasisState","labelHoverModel","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$6","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len;) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n i++;\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\r\n out.zrX = _calcOut[0];\r\n out.zrY = _calcOut[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n while (el) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n if (el.__dirty) {\r\n el.update();\r\n }\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.markRedraw();\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n requestAnimationFrame = (typeof window !== 'undefined'\r\n && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame) || function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n if (str.charAt(0) === '#') {\r\n if (str.length === 4) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (str.length === 7) {\r\n var iv = parseInt(str.substr(1), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === str.length) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.interpolable\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, this._additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + this._additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], this._additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._doneList = [];\r\n this._onframeList = [];\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimators = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.during = function (callback) {\r\n this._onframeList.push(callback);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._tracks = null;\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n };\r\n Animator.prototype._getAdditiveTrack = function (trackName) {\r\n var additiveTrack;\r\n var additiveAnimators = this._additiveAnimators;\r\n if (additiveAnimators) {\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n var track = additiveAnimators[i].getTrack(trackName);\r\n if (track) {\r\n additiveTrack = track;\r\n }\r\n }\r\n }\r\n return additiveTrack;\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n var additiveAnimators = self._additiveAnimators;\r\n if (additiveAnimators) {\r\n var stillHasAdditiveAnimator = false;\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n if (additiveAnimators[i]._clip) {\r\n stillHasAdditiveAnimator = true;\r\n break;\r\n }\r\n }\r\n if (!stillHasAdditiveAnimator) {\r\n self._additiveAnimators = null;\r\n }\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n for (var i = 0; i < self._onframeList.length; i++) {\r\n self._onframeList[i](self._target, percent);\r\n }\r\n },\r\n ondestroy: function () {\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].setFinished();\r\n }\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n var animation = this.animation;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n if (animation) {\r\n animation.removeClip(clip);\r\n }\r\n this._clip = null;\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted && this.animation) {\r\n this.animation.removeClip(this._clip);\r\n this._clip = null;\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function () {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n if (this.stage.update) {\r\n this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n this.start();\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this._localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this._globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this._globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio\r\n || (window.screen.deviceXDPI / window.screen.logicalXDPI)\r\n || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n this.updateInnerText();\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + 255 * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function () {\r\n this.useState(PRESERVED_NORMAL_STATE, false);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n zr && zr.wakeUp();\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var count = animators.length;\r\n function done() {\r\n count--;\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n }\r\n if (!count) {\r\n cfg.done && cfg.done();\r\n }\r\n if (animators.length > 0 && typeof cfg.during === 'function') {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i]\r\n .done(done)\r\n .start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0 || cfg.force) {\r\n var existsAnimators = animatable.animators;\r\n var existsAnimatorsOnSameTarget = [];\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n existsAnimatorsOnSameTarget.push(existsAnimators[i]);\r\n }\r\n }\r\n if (!additive && existsAnimatorsOnSameTarget.length) {\r\n for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\r\n var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this._getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n var delta = endAngle - startAngle;\r\n endAngle = startAngle + delta;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = 1 - data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, !!anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n if (i === 1) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var scaleX = (rx > ry) ? 1 : rx / ry;\r\n var scaleY = (rx > ry) ? ry / rx : 1;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse) {\r\n ctx.translate(cx, cy);\r\n ctx.rotate(psi);\r\n ctx.scale(scaleX, scaleY);\r\n ctx.arc(0, 0, r, startAngle, endAngle, anticlockwise);\r\n ctx.scale(1 / scaleX, 1 / scaleY);\r\n ctx.rotate(-psi);\r\n ctx.translate(-cx, -cy);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (i === 1) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta % PI2$4 < 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (anticlockwise) {\r\n var tmp_1 = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp_1);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(data, lineWidth, isStroke, x, y) {\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i > 1) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathData, x, y) {\r\n return containPath(pathData, 0, false, x, y);\r\n }\r\n function containStroke$4(pathData, lineWidth, x, y) {\r\n return containPath(pathData, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.6) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke()) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n w = Math.max(w, this.strokeContainThreshold || 4);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathData = this.path.data;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathData, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathData, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath (path, m) {\r\n var data = path.data;\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < data.length;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline (points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier (points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top'\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n function parseXML(svg) {\r\n if (isString(svg)) {\r\n var parser = new DOMParser();\r\n svg = parser.parseFromString(svg, 'text/xml');\r\n }\r\n var svgNode = svg;\r\n if (svgNode.nodeType === 9) {\r\n svgNode = svgNode.firstChild;\r\n }\r\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\r\n svgNode = svgNode.nextSibling;\r\n }\r\n return svgNode;\r\n }\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: cb, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype._getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.opacity = retrieve2(style.opacity, 1);\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var shadowStyle = (rectEl || imgEl).style;\r\n shadowStyle.shadowBlur = style.shadowBlur || 0;\r\n shadowStyle.shadowColor = style.shadowColor || 'transparent';\r\n shadowStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n shadowStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$2 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$2 / n;\r\n var deg = -PI$2 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var SectorShape = (function () {\r\n function SectorShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SectorShape;\r\n }());\r\n var Sector = (function (_super) {\r\n __extends(Sector, _super);\r\n function Sector(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Sector.prototype.getDefaultShape = function () {\r\n return new SectorShape();\r\n };\r\n Sector.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r0 + x, unitY * r0 + y);\r\n ctx.lineTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n }\r\n ctx.closePath();\r\n };\r\n Sector.prototype.isZeroArea = function () {\r\n return this.shape.startAngle === this.shape.endAngle\r\n || this.shape.r === this.shape.r0;\r\n };\r\n return Sector;\r\n }(Path));\r\n Sector.prototype.type = 'sector';\n\n var PI$3 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$3 / n) / cos$2(PI$3 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n function delInstance(id) {\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n var _this = this;\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: function () { return _this._flush(true); }\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this.refresh();\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this.refresh();\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update();\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n this._flush(false);\r\n };\r\n ZRender.prototype._flush = function (fromInside) {\r\n var triggerRendered;\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(fromInside);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered');\r\n }\r\n else {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > 10) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover) {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n return zr;\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function numericToNumber(val) {\r\n var valFloat = parseFloat(val);\r\n return (valFloat == val\r\n && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0)) ? valFloat : NaN;\r\n }\r\n function isNumeric(val) {\r\n return !isNaN(numericToNumber(val));\r\n }\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n cmptOption.id == null || validateIdOrName(cmptOption.id);\r\n cmptOption.name == null || validateIdOrName(cmptOption.name);\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n var nextIdx = 0;\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = obj1[attr];\r\n var key2 = obj2[attr];\r\n return key1 != null && key2 != null && key1 + '' === key2 + '';\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return val + '';\r\n }\r\n function validateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n assert(isValidIdOrName(idOrName), '`' + idOrName + '` is invalid id or name. Must be a string.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = Math.round(Math.random() * 5);\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (mainType !== defaultMainType && value == null)\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: mainType === defaultMainType,\r\n enableAll: true,\r\n enableNone: true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper (properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color) {\r\n if (typeof color !== 'string') {\r\n return color;\r\n }\r\n var liftedColor = liftedColorCache.get(color);\r\n if (!liftedColor) {\r\n liftedColor = lift(color, -0.1);\r\n liftedColorCache.put(color, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange) {\r\n if ((el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(ecIns) {\r\n var model = ecIns.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? ecIns.getViewOfSeriesModel(componentModel)\r\n : ecIns.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, ecIns, isBlur) {\r\n var ecModel = ecIns.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(ecIns);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = ecIns.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = ecIns.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, ecIns) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, ecIns, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, ecIns, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, ecIns) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n if (focus != null) {\r\n var ecData = getECData(el);\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var styleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getterType) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = model[getterType || styleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : val;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\n\n var EMPTY_OBJ = {};\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : null;\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n textContent = targetEl.getTextContent();\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n stateObj.ignore = !retrieve2(stateModel.getShallow('show'), showNormal);\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'opacity',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n if (!isAttached) {\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n }\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var lineWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (lineWidth != null) {\r\n textStyle.lineWidth = lineWidth;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n var style = getLineStyle(this, excludes);\r\n style.lineDash = this.getLineDash(style.lineWidth);\r\n return style;\r\n };\r\n LineStyleMixin.prototype.getLineDash = function (lineWidth) {\r\n if (lineWidth == null) {\r\n lineWidth = 1;\r\n }\r\n var lineType = this.get('type');\r\n var dotSize = Math.max(lineWidth, 2);\r\n var dashSize = lineWidth * 4;\r\n return (lineType === 'solid' || lineType == null)\r\n ? false\r\n : lineType === 'dashed'\r\n ? [dashSize, dashSize]\r\n : [dotSize, dotSize];\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n var style = getItemStyle(this, excludes, includes);\r\n var lineDash = this.getBorderLineDash();\r\n lineDash && (style.lineDash = lineDash);\r\n return style;\r\n };\r\n ItemStyleMixin.prototype.getBorderLineDash = function () {\r\n var lineType = this.get('borderType');\r\n return (lineType === 'solid' || lineType == null) ? null\r\n : (lineType === 'dashed' ? [5, 5] : [1, 1]);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var stack = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (stack.length) {\r\n var currComponentType = stack.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n throw new Error('Circle dependency may exists');\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n stack.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}:{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, lang, isUTC) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, lang, isUTC);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n var innerLabel = makeInner();\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n duration = 200;\r\n animationEasing = 'cubicOut';\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n }\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(), el.attr(props), cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, function (percent) {\r\n during && during(percent);\r\n });\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function animateOrSetLabel(animationType, el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n var valueAnimationEnabled = labelModel && labelModel.get('valueAnimation');\r\n if (valueAnimationEnabled) {\r\n var precisionOption = labelModel.get('precision');\r\n var precision_1 = !precisionOption || precisionOption === 'auto'\r\n ? 0\r\n : precisionOption;\r\n var interpolateValues_1;\r\n var rawValues_1 = seriesModel.getRawValue(dataIndex);\r\n var isRawValueNumber_1 = false;\r\n if (typeof rawValues_1 === 'number') {\r\n isRawValueNumber_1 = true;\r\n interpolateValues_1 = rawValues_1;\r\n }\r\n else {\r\n interpolateValues_1 = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type !== 'ordinal') {\r\n interpolateValues_1.push(rawValues_1[i]);\r\n }\r\n }\r\n }\r\n var text = el.getTextContent();\r\n var host_1 = text && innerLabel(text);\r\n host_1 && (host_1.startValue = host_1.nextValue);\r\n var duration = animatableModel.get('animationDuration');\r\n if (!duration) {\r\n host_1.nextValue = interpolateValues_1;\r\n }\r\n var during = function (percent) {\r\n var text = el.getTextContent();\r\n if (!text || !host_1) {\r\n return;\r\n }\r\n var interpolated;\r\n if (isRawValueNumber_1) {\r\n var value = interpolateNumber(host_1.startValue || 0, interpolateValues_1, percent);\r\n interpolated = round$1(value, precision_1);\r\n }\r\n else {\r\n interpolated = [];\r\n for (var i = 0; i < rawValues_1.length; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = rawValues_1[i];\r\n }\r\n else {\r\n var startValues = host_1.startValue;\r\n var value = startValues == null\r\n ? rawValues_1[i]\r\n : interpolateNumber(startValues && startValues[i] ? startValues[i] : 0, interpolateValues_1[i], percent);\r\n interpolated[i] = round$1(value), precision_1;\r\n }\r\n }\r\n }\r\n host_1.nextValue = interpolated;\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n labelFetcher: seriesModel,\r\n defaultText: defaultTextGetter\r\n ? defaultTextGetter(interpolated)\r\n : interpolated + ''\r\n }, { normal: labelModel }, interpolated);\r\n text.style.text = labelText.normal;\r\n text.dirty();\r\n };\r\n var props = {};\r\n animateOrSetProps(animationType, el, props, animatableModel, dataIndex, null, during);\r\n }\r\n }\r\n function updateLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('update', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function initLabel(el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter) {\r\n animateOrSetLabel('init', el, data, dataIndex, labelModel, seriesModel, animatableModel, defaultTextGetter);\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\n\n function addCommas(x) {\r\n if (isNaN(x)) {\r\n return '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '\\'': '''\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var isTimeAxis = paramsList[0].axisType && paramsList[0].axisType.indexOf('time') >= 0;\r\n if (isTimeAxis) {\r\n var axisValue = paramsList[0].data[paramsList[0].axisIndex];\r\n var date = parseDate(axisValue);\r\n return format(date, tpl);\r\n }\r\n else {\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n }\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n var markerId = opt.markerId || 'X';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? ''\r\n : '';\r\n }\r\n else {\r\n return {\r\n renderMode: renderMode,\r\n content: '{marker' + markerId + '|} ',\r\n style: {\r\n color: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#fac858',\r\n '#ee6666',\r\n '#73c0de',\r\n '#3ba272',\r\n '#fc8452',\r\n '#9a60b4',\r\n '#ea7ccc'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var inner$1 = makeInner();\r\n function getNearestColorPalette(colors, requestColorNum) {\r\n var paletteNum = colors.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (colors[i].length > requestColorNum) {\r\n return colors[i];\r\n }\r\n }\r\n return colors[paletteNum - 1];\r\n }\r\n var ColorPaletteMixin = (function () {\r\n function ColorPaletteMixin() {\r\n }\r\n ColorPaletteMixin.prototype.clearColorPalette = function () {\r\n inner$1(this).colorIdx = 0;\r\n inner$1(this).colorNameMap = {};\r\n };\r\n ColorPaletteMixin.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n scope = scope || this;\r\n var scopeFields = inner$1(scope);\r\n var colorIdx = scopeFields.colorIdx || 0;\r\n var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {};\r\n if (colorNameMap.hasOwnProperty(name)) {\r\n return colorNameMap[name];\r\n }\r\n var defaultColorPalette = normalizeToArray(this.get('color', true));\r\n var layeredColorPalette = this.get('colorLayer', true);\r\n var colorPalette = ((requestColorNum == null || !layeredColorPalette)\r\n ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum));\r\n colorPalette = colorPalette || defaultColorPalette;\r\n if (!colorPalette || !colorPalette.length) {\r\n return;\r\n }\r\n var color = colorPalette[colorIdx];\r\n if (name) {\r\n colorNameMap[name] = color;\r\n }\r\n scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\r\n return color;\r\n };\r\n return ColorPaletteMixin;\r\n }());\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var Source = (function () {\r\n function Source(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectCount = fields.dimensionsDetectCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n Source.seriesDataToSource = function (data) {\r\n return new Source({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n };\r\n return Source;\r\n }());\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var dimInfo = determineSourceDimensions(sourceData, sourceFormat, thisMetaRawOption.seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new Source({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: thisMetaRawOption.seriesLayoutBy,\r\n dimensionsDefine: dimInfo.dimensionsDefine,\r\n startIndex: dimInfo.startIndex,\r\n dimensionsDetectCount: dimInfo.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function inheritSourceMetaRawOption(opt) {\r\n return defaults(opt.thisNew, opt.parent);\r\n }\r\n function cloneSourceShallow(source) {\r\n return new Source({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectCount: source.dimensionsDetectCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectCount: dimensionsDetectCount\r\n };\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (item, index) {\r\n item = extend({}, isObject(item) ? item : { name: item });\r\n if (item.name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeReplaceMergeInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeReplaceMergeInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (!newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.name === name; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n componentTypes.push(componentType);\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seriesIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap(idOrName);\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n validateIdOrName(idOrNameItem);\r\n keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n validateIdOrName(idOrName);\r\n return filter(cmpts, function (cmpt) { return cmpt && cmpt[attr] === idOrName + ''; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeReplaceMergeInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, ColorPaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getModel',\r\n 'getOption',\r\n 'getViewOfComponentModel',\r\n 'getViewOfSeriesModel',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var timelineOptions = [];\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var timelineOpt = rawOption.timeline;\r\n if (rawOption.baseOption) {\r\n baseOption = rawOption.baseOption;\r\n }\r\n if (timelineOpt || rawOption.options) {\r\n baseOption = baseOption || {};\r\n timelineOptions = (rawOption.options || []).slice();\r\n }\r\n if (rawOption.media) {\r\n baseOption = baseOption || {};\r\n var media = rawOption.media;\r\n each(media, function (singleMedia) {\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n if (!baseOption) {\r\n baseOption = rawOption;\r\n }\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOpt;\r\n }\r\n each([baseOption].concat(timelineOptions)\r\n .concat(map(mediaList, function (media) {\r\n return media.option;\r\n })), function (option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n });\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptions,\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function compatStyle (option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function backwardCompat (option, isTheme) {\r\n compatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack (ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !(sourceParam instanceof Source)\r\n ? Source.seriesDataToSource(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var offset = this._dimSize * idx;\r\n for (var i = 0; i < this._dimSize; i++) {\r\n out[i] = this._data[offset + i];\r\n }\r\n return out;\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var col = rawData[dimsDef[i].name];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode, order) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\r\n var valueParserMap = createHashMap({\r\n 'number': function (val) {\r\n return parseFloat(val);\r\n },\r\n 'time': function (val) {\r\n return +parseDate(val);\r\n },\r\n 'trim': function (val) {\r\n return typeof val === 'string' ? trim(val) : val;\r\n }\r\n });\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfoAll = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.getRawHeaderItem = function (dataIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveItemValue = function (rawItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertDataValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(data, sourceFormat, dimsDef, sourceHeaderCount) {\r\n var extSource = new ExternalSource();\r\n extSource.data = data;\r\n extSource.sourceFormat = sourceFormat;\r\n extSource.sourceHeaderCount = sourceHeaderCount;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n assert(!hasOwn(dimsByName, name), 'dimension name \"' + name + '\" duplicated.');\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.getRawDataItem = bind(rawItemGetter, null, data, sourceHeaderCount, dimensions);\r\n extSource.getRawHeaderItem = function (dataIndex) {\r\n if (dataIndex < sourceHeaderCount) {\r\n return rawItemGetter(data, 0, dimensions, dataIndex);\r\n }\r\n };\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveItemValue = function (rawItem, dimIndex) {\r\n if (rawItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(rawItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.getDimensionInfoAll = bind(getDimensionInfoAll, null, dimensions);\r\n return extSource;\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function getDimensionInfoAll(dimensions) {\r\n return dimensions;\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n assert(type, 'Must have a `type` when `registerTransform`.');\r\n var typeParsed = type.split(':');\r\n assert(typeParsed.length === 2, 'Name must include namespace like \"ns:regression\".');\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n }\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n for (var i = 0, len = pipedTransOption.length; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n var isFinal = i === len - 1;\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, isFinal);\r\n if (!isFinal) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(rawTransOption, upSourceList, infoForPrint, isFinal) {\r\n assert(upSourceList.length, 'Must have at least one upstream dataset.');\r\n var transOption = rawTransOption;\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n assert(externalTransform, 'Can not find transform on type \"' + transType + '\".');\r\n var sourceList = map(upSourceList, function (source) {\r\n return createExternalSource(source.data, source.sourceFormat, source.dimensionsDefine, source.startIndex);\r\n });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n source: sourceList[0],\r\n sourceList: sourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (isFinal && transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n return [\r\n '--- datasetIndex: ' + infoForPrint.datasetIndex + '---',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions),\r\n '- transform result sourceHeader: ' + extSource.sourceHeader,\r\n '------'\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n assert(isObject(result), 'A transform should not return some empty results.');\r\n assert(isObject(result.data) || isArrayLike(result.data), 'Result data should be object or array in data transform.');\r\n var resultMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSourceList[0].metaRawOption,\r\n thisNew: {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: result.sourceHeader,\r\n dimensions: result.dimensions\r\n }\r\n });\r\n return createSource(result.data, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption({\r\n parent: upSource ? upSource.metaRawOption : null,\r\n thisNew: this._createSourceMetaRawOption()\r\n });\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._createSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n var sourceList;\r\n var upstreamSignList;\r\n if (transformOption) {\r\n var upSourceList_1 = [];\r\n upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n upSourceList_1.push(upMgr.getSource());\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n sourceList = applyDataTransform(transformOption, upSourceList_1, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n if (upMgrList.length !== 1) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n var upMgr = upMgrList[0];\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult);\r\n upstreamSignList = [upMgr._getVersionSign()];\r\n sourceList = [cloneSourceShallow(upSource)];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._createSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var inner$2 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$2(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$2(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$2(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$2(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$2(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$2(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$2(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType, renderMode) {\r\n var series = this;\r\n renderMode = renderMode || 'html';\r\n var newLine = renderMode === 'html' ? '' : '\\n';\r\n var isRichText = renderMode === 'richText';\r\n var markers = {};\r\n var markerId = 0;\r\n function formatArrayValue(value) {\r\n var vertially = reduce(value, function (vertially, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return vertially |= (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, 0);\r\n var result = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n var dimType = dimInfo.type;\r\n var markName = 'sub' + series.seriesIndex + 'at' + markerId;\r\n var dimHead = getTooltipMarker({\r\n color: colorStr,\r\n type: 'subItem',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n var dimHeadStr = typeof dimHead === 'string' ? dimHead : dimHead.content;\r\n var valStr = (vertially\r\n ? ''\r\n + dimHeadStr + encodeHTML(dimInfo.displayName || '-')\r\n + ''\r\n : '')\r\n + ''\r\n + encodeHTML(dimType === 'ordinal'\r\n ? val + ''\r\n : dimType === 'time'\r\n ? (multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val))\r\n : addCommas(val))\r\n + '';\r\n valStr && result.push(\"
\" + valStr + \"
\");\r\n if (isRichText) {\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n }\r\n }\r\n var newLine = vertially ? (isRichText ? '\\n' : '') : '';\r\n var content = newLine + result.join(newLine || '');\r\n return {\r\n renderMode: renderMode,\r\n content: content,\r\n style: markers\r\n };\r\n }\r\n function formatSingleValue(val) {\r\n return {\r\n renderMode: renderMode,\r\n content: encodeHTML(addCommas(val)),\r\n style: markers\r\n };\r\n }\r\n var data = this.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = this.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style[this.visualDrawType];\r\n var colorStr;\r\n if (isString(color)) {\r\n colorStr = color;\r\n }\r\n else if (color && color.colorStops) {\r\n colorStr = (color.colorStops[0] || {}).color;\r\n }\r\n colorStr = colorStr || 'transparent';\r\n var formattedValue = (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? formatArrayValue(value)\r\n : tooltipDimLen\r\n ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0]))\r\n : formatSingleValue(isValueArr ? value[0] : value);\r\n var content = isRichText\r\n ? formattedValue.content\r\n : (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen))\r\n ? '
'\r\n + formattedValue.content + '
'\r\n : ''\r\n + formattedValue.content + '';\r\n var markName = series.seriesIndex + 'at' + markerId;\r\n var colorEl = getTooltipMarker({\r\n color: colorStr,\r\n type: 'item',\r\n renderMode: renderMode,\r\n markerId: markName\r\n });\r\n markers[markName] = colorStr;\r\n ++markerId;\r\n var name = data.getName(dataIndex);\r\n var seriesName = this.name;\r\n if (!isNameSpecified(this)) {\r\n seriesName = '';\r\n }\r\n seriesName = seriesName\r\n ? encodeHTML(seriesName) + (!multipleSeries ? newLine : ' ')\r\n : '';\r\n colorStr = isString(colorEl) ? colorEl : colorEl.content;\r\n var html = '';\r\n if (!isRichText) {\r\n seriesName = seriesName\r\n ? !multipleSeries\r\n ? \"
\" + seriesName + \"
\"\r\n : \"\" + seriesName + \"\"\r\n : '';\r\n html = !multipleSeries\r\n ? seriesName + (\"
\")\r\n + colorStr\r\n + (name\r\n ? \"\" + encodeHTML(name) + \"\" + content\r\n : content) + '
'\r\n : \"
\" + colorStr + seriesName + content + \"
\";\r\n }\r\n else {\r\n html = !multipleSeries\r\n ? seriesName + (seriesName ? '\\n' : '') + ''\r\n + colorStr\r\n + (name\r\n ? encodeHTML(name) + \": \" + content\r\n : content) + ''\r\n : \"\" + colorStr + seriesName + \": \" + content;\r\n }\r\n return { html: html, markers: markers };\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = ColorPaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, ColorPaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(data.CHANGABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataSelfChange, seriesModel));\r\n });\r\n }\r\n function onDataSelfChange(seriesModel) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd(this.count());\r\n }\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner () {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = fields.large;\r\n var originalProgressive = fields.progressiveRender;\r\n var large = fields.large = pipelineContext && pipelineContext.large;\r\n var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;\r\n return (!!((originalLarge ^ large) || (originalProgressive ^ progressive)) && 'reset');\r\n };\r\n }\n\n var inner$3 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$3(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$3(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\n\n var inner$4 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$4(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$4(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || (rawIdx + ''), colorScope, dataAll.count());\r\n }\r\n });\r\n });\r\n }\r\n };\n\n function aria (dom, ecModel) {\r\n var ariaModel = ecModel.getModel('aria');\r\n if (!ariaModel.get('show')) {\r\n return;\r\n }\r\n else if (ariaModel.get('description')) {\r\n dom.setAttribute('aria-label', ariaModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = 0;\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n ++seriesCnt;\r\n }, this);\r\n var maxDataCnt = ariaModel.get('data.maxCount') || 10;\r\n var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n ariaLabel = replace(getConfig('general.withTitle'), {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = getConfig('general.withoutTitle');\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? 'series.multiple.prefix'\r\n : 'series.single.prefix';\r\n ariaLabel += replace(getConfig(prefix), { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var seriesTpl = 'series.'\r\n + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\r\n seriesLabel = getConfig(seriesName\r\n ? seriesTpl + 'withName'\r\n : seriesTpl + 'withoutName');\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n window.data = data;\r\n if (data.count() > maxDataCnt) {\r\n seriesLabel += replace(getConfig('data.partialData'), {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += getConfig('data.allData');\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n dataLabels.push(replace(name_1\r\n ? getConfig('data.withName')\r\n : getConfig('data.withoutName'), {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n seriesLabel += dataLabels\r\n .join(getConfig('data.separator.middle'))\r\n + getConfig('data.separator.end');\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n ariaLabel += seriesLabels_1\r\n .join(getConfig('series.multiple.separator.middle'))\r\n + getConfig('series.multiple.separator.end');\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getConfig(path) {\r\n var userConfig = ariaModel.get(path);\r\n if (userConfig == null) {\r\n var pathArr = path.split('.');\r\n var result = ecModel.getLocale('aria');\r\n for (var i = 0; i < pathArr.length; ++i) {\r\n result = result[pathArr[i]];\r\n }\r\n return result;\r\n }\r\n else {\r\n return userConfig;\r\n }\r\n }\r\n function getTitle() {\r\n var title = ecModel.getModel('title').option;\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocale(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n var PI$4 = Math.PI;\r\n function loadingDefault (api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#5470c6',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$4 / 2,\r\n endAngle: -PI$4 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$4 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$4 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.ecInstance.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap\r\n || (stageHandlerRecord.seriesTaskMap = createHashMap());\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = seriesTaskMap.get(pipelineId)\r\n || seriesTaskMap.set(pipelineId, createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n task.dispose();\r\n seriesTaskMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap\r\n || createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = agentStubMap.get(pipelineId);\r\n if (!stub) {\r\n stub = agentStubMap.set(pipelineId, createTask({ reset: stubReset, onDirty: stubOnDirty }));\r\n overallTask.dirty();\r\n }\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n var pipelineMap = scheduler._pipelineMap;\r\n agentStubMap.each(function (stub, pipelineId) {\r\n if (!pipelineMap.get(pipelineId)) {\r\n stub.dispose();\r\n overallTask.dirty();\r\n agentStubMap.removeKey(pipelineId);\r\n }\r\n });\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#B9B8CE';\r\n var backgroundColor = '#100C2A';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n color: '#484753'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\r\n }\r\n },\r\n minorSplitLine: {\r\n lineStyle: {\r\n color: '#20203B'\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#4992ff',\r\n '#7cffb2',\r\n '#fddd60',\r\n '#ff6e76',\r\n '#58d9f9',\r\n '#05c091',\r\n '#ff8a45',\r\n '#8d48e3',\r\n '#dd79ff'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: backgroundColor,\r\n axisPointer: {\r\n lineStyle: {\r\n color: '#817f91'\r\n },\r\n crossStyle: {\r\n color: '#817f91'\r\n },\r\n label: {\r\n color: '#fff'\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: '#EEF1FA'\r\n },\r\n subtextStyle: {\r\n color: '#B9B8CE'\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n normal: {\r\n borderColor: contrastColor\r\n }\r\n }\r\n },\r\n dataZoom: {\r\n borderColor: '#71708A',\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n brushStyle: {\r\n color: 'rgba(135,163,206,0.3)'\r\n },\r\n handleStyle: {\r\n color: '#353450',\r\n borderColor: '#C5CBE3'\r\n },\r\n moveHandleStyle: {\r\n color: '#B0B6C3',\r\n opacity: 0.3\r\n },\r\n fillerColor: 'rgba(135,163,206,0.2)',\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#91B7F2',\r\n color: '#4D587D'\r\n },\r\n moveHandleStyle: {\r\n color: '#636D9A',\r\n opacity: 0.7\r\n }\r\n },\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#71708A',\r\n width: 1\r\n },\r\n areaStyle: {\r\n color: '#71708A'\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#87A3CE'\r\n },\r\n areaStyle: {\r\n color: '#87A3CE'\r\n }\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n controlStyle: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n },\r\n calendar: {\r\n itemStyle: {\r\n color: backgroundColor\r\n },\r\n dayLabel: {\r\n color: contrastColor\r\n },\r\n monthLabel: {\r\n color: contrastColor\r\n },\r\n yearLabel: {\r\n color: contrastColor\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n normal: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\n\n var PI2$5 = Math.PI * 2;\r\n var CMD$3 = PathProxy.CMD;\r\n var DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\r\n function getCandidateAnchor(pos, distance, rect, outPt, outDir) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n switch (pos) {\r\n case 'top':\r\n outPt.set(rect.x + width / 2, rect.y - distance);\r\n outDir.set(0, -1);\r\n break;\r\n case 'bottom':\r\n outPt.set(rect.x + width / 2, rect.y + height + distance);\r\n outDir.set(0, 1);\r\n break;\r\n case 'left':\r\n outPt.set(rect.x - distance, rect.y + height / 2);\r\n outDir.set(-1, 0);\r\n break;\r\n case 'right':\r\n outPt.set(rect.x + width + distance, rect.y + height / 2);\r\n outDir.set(1, 0);\r\n break;\r\n }\r\n }\r\n function projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n x /= d;\r\n y /= d;\r\n var ox = x * r + cx;\r\n var oy = y * r + cy;\r\n if (Math.abs(startAngle - endAngle) % PI2$5 < 1e-4) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$5;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$5;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$5 >= startAngle && angle + PI2$5 <= endAngle)) {\r\n out[0] = ox;\r\n out[1] = oy;\r\n return d - r;\r\n }\r\n var x1 = r * Math.cos(startAngle) + cx;\r\n var y1 = r * Math.sin(startAngle) + cy;\r\n var x2 = r * Math.cos(endAngle) + cx;\r\n var y2 = r * Math.sin(endAngle) + cy;\r\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\r\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\r\n if (d1 < d2) {\r\n out[0] = x1;\r\n out[1] = y1;\r\n return Math.sqrt(d1);\r\n }\r\n else {\r\n out[0] = x2;\r\n out[1] = y2;\r\n return Math.sqrt(d2);\r\n }\r\n }\r\n function projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\r\n var dx = x - x1;\r\n var dy = y - y1;\r\n var dx1 = x2 - x1;\r\n var dy1 = y2 - y1;\r\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n dx1 /= lineLen;\r\n dy1 /= lineLen;\r\n var projectedLen = dx * dx1 + dy * dy1;\r\n var t = projectedLen / lineLen;\r\n if (limitToEnds) {\r\n t = Math.min(Math.max(t, 0), 1);\r\n }\r\n t *= lineLen;\r\n var ox = out[0] = x1 + t * dx1;\r\n var oy = out[1] = y1 + t * dy1;\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n function projectPointToRect(x1, y1, width, height, x, y, out) {\r\n if (width < 0) {\r\n x1 = x1 + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y1 = y1 + height;\r\n height = -height;\r\n }\r\n var x2 = x1 + width;\r\n var y2 = y1 + height;\r\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\r\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\r\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\r\n }\r\n var tmpPt = [];\r\n function nearestPointOnRect(pt, rect, out) {\r\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\r\n out.set(tmpPt[0], tmpPt[1]);\r\n return dist;\r\n }\r\n function nearestPointOnPath(pt, path, out) {\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n var minDist = Infinity;\r\n var data = path.data;\r\n var x = pt.x;\r\n var y = pt.y;\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n if (i === 1) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var d = minDist;\r\n switch (cmd) {\r\n case CMD$3.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$3.L:\r\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.C:\r\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.Q:\r\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$3.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (i <= 1) {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\r\n break;\r\n case CMD$3.Z:\r\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n if (d < minDist) {\r\n minDist = d;\r\n out.set(tmpPt[0], tmpPt[1]);\r\n }\r\n }\r\n return minDist;\r\n }\r\n var pt0 = new Point();\r\n var pt1 = new Point();\r\n var pt2 = new Point();\r\n var dir = new Point();\r\n var dir2 = new Point();\r\n function updateLabelLinePoints(target, labelLineModel) {\r\n if (!target) {\r\n return;\r\n }\r\n var labelLine = target.getTextGuideLine();\r\n var label = target.getTextContent();\r\n if (!(label && labelLine)) {\r\n return;\r\n }\r\n var labelGuideConfig = target.textGuideLineConfig || {};\r\n var points = [[0, 0], [0, 0], [0, 0]];\r\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\r\n var labelRect = label.getBoundingRect().clone();\r\n labelRect.applyTransform(label.getComputedTransform());\r\n var minDist = Infinity;\r\n var anchorPoint = labelGuideConfig && labelGuideConfig.anchor;\r\n var targetTransform = target.getComputedTransform();\r\n var targetInversedTransform = targetTransform && invert([], targetTransform);\r\n var len = labelLineModel.get('length2') || 0;\r\n if (anchorPoint) {\r\n pt2.copy(anchorPoint);\r\n }\r\n for (var i = 0; i < searchSpace.length; i++) {\r\n var candidate = searchSpace[i];\r\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\r\n Point.scaleAndAdd(pt1, pt0, dir, len);\r\n pt1.transform(targetInversedTransform);\r\n var boundingRect = target.getBoundingRect();\r\n var dist = anchorPoint ? anchorPoint.distance(pt1)\r\n : (target instanceof Path\r\n ? nearestPointOnPath(pt1, target.path, pt2)\r\n : nearestPointOnRect(pt1, boundingRect, pt2));\r\n if (dist < minDist) {\r\n minDist = dist;\r\n pt1.transform(targetTransform);\r\n pt2.transform(targetTransform);\r\n pt2.toArray(points[0]);\r\n pt1.toArray(points[1]);\r\n pt0.toArray(points[2]);\r\n }\r\n }\r\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\r\n labelLine.setShape({ points: points });\r\n }\r\n var tmpArr = [];\r\n var tmpProjPoint = new Point();\r\n function limitTurnAngle(linePoints, minTurnAngle) {\r\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\r\n return;\r\n }\r\n minTurnAngle = minTurnAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt0, pt1);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(dir2);\r\n var minTurnAngleCos = Math.cos(minTurnAngle);\r\n if (minTurnAngleCos < angleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\r\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\r\n return;\r\n }\r\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\r\n pt0.fromArray(linePoints[0]);\r\n pt1.fromArray(linePoints[1]);\r\n pt2.fromArray(linePoints[2]);\r\n Point.sub(dir, pt1, pt0);\r\n Point.sub(dir2, pt2, pt1);\r\n var len1 = dir.len();\r\n var len2 = dir2.len();\r\n if (len1 < 1e-3 || len2 < 1e-3) {\r\n return;\r\n }\r\n dir.scale(1 / len1);\r\n dir2.scale(1 / len2);\r\n var angleCos = dir.dot(surfaceNormal);\r\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\r\n if (angleCos < maxSurfaceAngleCos) {\r\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\r\n tmpProjPoint.fromArray(tmpArr);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n label.hide();\r\n labelLine && labelLine.hide();\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var labelAttr = labelItem.defaultAttr;\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelAttr.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n rect: labelRect,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null && !textEl.disableLabelLayout) {\r\n _this._addLabel(dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n var itemModel = data.getItemModel(labelItem.dataIndex);\r\n label.on('drag', createDragHandler(hostEl, itemModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftX';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftY';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel);\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n var ecModel = ecIns.getModel();\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n return ctx.createPattern(image, pattern.repeat || 'repeat');\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = style.width;\r\n var height = style.height;\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash;\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n }\r\n ctx.setLineDash(lineDash || []);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (el.invisible\r\n || el.style.opacity === 0\r\n || (el.culling && isDisplayableCulled(el, scope.viewWidth, scope.viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n el.__dirty = 0;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length - 1; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.__dirty = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n ctx.clearRect(0, 0, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(0, 0, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n var domBack = this.domBack;\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, 0, 0, width, height);\r\n ctx.restore();\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, paintAll, redrawId);\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, paintAll) {\r\n var layerList = [];\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n for (var k = 0; k < layerList.length; k++) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this._zlevelList[0]\r\n ? this._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i = void 0;\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n brush(ctx, el, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n ctx.restore();\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version = '5.0.0-alpha.2';\r\n var dependencies = {\r\n zrender: '5.0.0-alpha.2'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 3500;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var defaultRenderer = 'canvas';\r\n if (__DEV__) {\r\n defaultRenderer = (typeof window === 'undefined' ? global : window).__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && backwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '' + item.dom + '';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n var ecData = el && getECData(el);\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n }\r\n else if (el && ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap(normalizeToArray(excludeSeriesId));\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (payload.statusChanged) {\r\n markStatusToUpdate(this);\r\n }\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n function getDispatcher(target, det) {\r\n while (target && !det(target)) {\r\n if (target.__hostTarget) {\r\n target = target.__hostTarget;\r\n }\r\n else {\r\n target = target.parent;\r\n }\r\n }\r\n return target;\r\n }\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = getDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateZ(seriesModel, chartView);\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n aria(ecIns._zr.dom, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 1;\r\n }\r\n if (labelLine) {\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 - 1;\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerPreprocessor(backwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', loadingDefault);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n var i;\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (i = 0; i < oldArr.length; i++) {\r\n var key = oldDataKeyArr[i];\r\n var idx = newDataIndexMap[key];\r\n if (idx != null) {\r\n var len = idx.length;\r\n if (len) {\r\n len === 1 && (newDataIndexMap[key] = null);\r\n idx = idx.shift();\r\n }\r\n else {\r\n newDataIndexMap[key] = null;\r\n }\r\n this._update && this._update(idx, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n for (i = 0; i < newDataKeyArr.length; i++) {\r\n var key = newDataKeyArr[i];\r\n if (newDataIndexMap.hasOwnProperty(key)) {\r\n var idx = newDataIndexMap[key];\r\n if (idx == null) {\r\n continue;\r\n }\r\n if (!idx.length) {\r\n this._add && this._add(idx);\r\n }\r\n else {\r\n for (var j = 0, len = idx.length; j < len; j++) {\r\n this._add && this._add(idx[j]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n var existence = map[key];\r\n if (existence == null) {\r\n keyArr.push(key);\r\n map[key] = i;\r\n }\r\n else {\r\n if (!existence.length) {\r\n map[key] = existence = [existence];\r\n }\r\n existence.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var isObject$3 = isObject;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getRawValueFromStore;\r\n var getIndicesCtor;\r\n var prepareChunks;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var cloneDimStore;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._chunkSize = 1e5;\r\n this._chunkCount = 0;\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = data instanceof Source || isArrayLike(data);\r\n if (notProvider) {\r\n data = new DefaultDataProvider(data, this.dimensions.length);\r\n }\r\n if (__DEV__) {\r\n if (!notProvider\r\n && (typeof data.getItem !== 'function' || typeof data.count !== 'function')) {\r\n throw new Error('Inavlid data provider.');\r\n }\r\n }\r\n this._rawData = data;\r\n this._storage = {};\r\n this._indices = null;\r\n this._nameList = nameList || [];\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, data.count());\r\n if (data.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var chunkSize = this._chunkSize;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, this._dimensionInfos[dim], chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var emptyDataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, k);\r\n storage[dim][chunkIndex][chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var chunkSize = this._chunkSize;\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var nameRepeatCount = this._nameRepeatCount = {};\r\n var nameDimIdx;\r\n var originalChunkCount = this._chunkCount;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n var dimInfo = dimensionInfoMap[dim];\r\n if (dimInfo.otherDims.itemName === 0) {\r\n nameDimIdx = this._nameDimIdx = i;\r\n }\r\n if (dimInfo.otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n }\r\n if (!storage[dim]) {\r\n storage[dim] = [];\r\n }\r\n prepareChunks(storage, dimInfo, chunkSize, originalChunkCount, end);\r\n this._chunkCount = storage[dim].length;\r\n }\r\n var dataItem = new Array(dimLen);\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n var chunkIndex = Math.floor(idx / chunkSize);\r\n var chunkOffset = idx % chunkSize;\r\n for (var k = 0; k < dimLen; k++) {\r\n var dim = dimensions[k];\r\n var dimStorage = storage[dim][chunkIndex];\r\n var val = this._dimValueGetter(dataItem, dim, idx, k);\r\n dimStorage[chunkOffset] = val;\r\n var dimRawExtent = rawExtent[dim];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (!rawData.pure) {\r\n var name_1 = nameList[idx];\r\n if (dataItem && name_1 == null) {\r\n if (dataItem.name != null) {\r\n nameList[idx] = name_1 = dataItem.name;\r\n }\r\n else if (nameDimIdx != null) {\r\n var nameDim = dimensions[nameDimIdx];\r\n var nameDimChunk = storage[nameDim][chunkIndex];\r\n if (nameDimChunk) {\r\n name_1 = nameDimChunk[chunkOffset];\r\n var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n name_1 = ordinalMeta.categories[name_1];\r\n }\r\n }\r\n }\r\n }\r\n var id = dataItem == null ? null : dataItem.id;\r\n if (id == null && name_1 != null) {\r\n nameRepeatCount[name_1] = nameRepeatCount[name_1] || 0;\r\n id = name_1;\r\n if (nameRepeatCount[name_1] > 0) {\r\n id += '__ec__' + nameRepeatCount[name_1];\r\n }\r\n nameRepeatCount[name_1]++;\r\n }\r\n id != null && (idList[idx] = id);\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var storage = this._storage;\r\n if (!storage[dim]) {\r\n return NaN;\r\n }\r\n idx = this.getRawIndex(idx);\r\n var chunkIndex = Math.floor(idx / this._chunkSize);\r\n var chunkOffset = idx % this._chunkSize;\r\n var chunkStore = storage[dim][chunkIndex];\r\n var value = chunkStore[chunkOffset];\r\n return value;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n if (!dimStore) {\r\n return NaN;\r\n }\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = dimStore[chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype._getFast = function (dim, rawIdx) {\r\n var chunkIndex = Math.floor(rawIdx / this._chunkSize);\r\n var chunkOffset = rawIdx % this._chunkSize;\r\n var chunkStore = this._storage[dim][chunkIndex];\r\n return chunkStore[chunkOffset];\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var value = this._getFast(dim, this.getRawIndex(i));\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var diff = value - this.get(dim, i);\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n return this._nameList[rawIndex]\r\n || getRawValueFromStore(this, this._nameDimIdx, rawIndex)\r\n || '';\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n for (var i = 0; i < this.count(); i++) {\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, this.get(dimNames[0], i), i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, this.get(dimNames[0], i), this.get(dimNames[1], i), i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = this.get(dimNames[k], i);\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dim0 = dimNames[0];\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = this._getFast(dim0, rawIdx);\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = this._getFast(dim0, rawIdx);\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n if (!this._count) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = this._storage[dimensions[0]];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = this._storage[dim0];\r\n var dimStorage2 = this._storage[dimensions[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var k = 0; k < this._chunkCount; k++) {\r\n var chunkStorage = dimStorage[k];\r\n var chunkStorage2 = dimStorage2[k];\r\n var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\r\n for (var i = 0; i < len; i++) {\r\n var val = chunkStorage[i];\r\n var val2 = chunkStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = this._getFast(dim0, rawIndex);\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = this._getFast(dimk, rawIndex);\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var storage = list._storage;\r\n var tmpRetValue = [];\r\n var chunkSize = this._chunkSize;\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[chunkIndex][chunkOffset] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = Math.floor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var chunkSize = this._chunkSize;\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n var originalChunkIndex = Math.floor(dataIdx / chunkSize);\r\n var originalChunkOffset = dataIdx % chunkSize;\r\n frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize);\r\n var sampleChunkOffset = sampleFrameIdx % chunkSize;\r\n dimStore[sampleChunkIndex][sampleChunkOffset] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (!val) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_2 in key) {\r\n if (key.hasOwnProperty(name_2)) {\r\n this.setLayout(name_2, key[name_2]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getRawValueFromStore = function (list, dimIndex, rawIndex) {\r\n var val;\r\n if (dimIndex != null) {\r\n var chunkSize = list._chunkSize;\r\n var chunkIndex = Math.floor(rawIndex / chunkSize);\r\n var chunkOffset = rawIndex % chunkSize;\r\n var dim = list.dimensions[dimIndex];\r\n var chunk = list._storage[dim][chunkIndex];\r\n if (chunk) {\r\n val = chunk[chunkOffset];\r\n var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n }\r\n return val;\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareChunks = function (storage, dimInfo, chunkSize, chunkCount, end) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var lastChunkIndex = chunkCount - 1;\r\n var dim = dimInfo.name;\r\n var resizeChunkArray = storage[dim][lastChunkIndex];\r\n if (resizeChunkArray && resizeChunkArray.length < chunkSize) {\r\n var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize));\r\n for (var j = 0; j < resizeChunkArray.length; j++) {\r\n newStore[j] = resizeChunkArray[j];\r\n }\r\n storage[dim][lastChunkIndex] = newStore;\r\n }\r\n for (var k = chunkCount * chunkSize; k < end; k += chunkSize) {\r\n storage[dim].push(new DataCtor(Math.min(end - k, chunkSize)));\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null) {\r\n id = getRawValueFromStore(list, list._idDimIdx, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = [dimensions];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneDimStore(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n cloneDimStore = function (originalDimStore) {\r\n var newDimStore = new Array(originalDimStore.length);\r\n for (var j = 0; j < originalDimStore.length; j++) {\r\n newDimStore[j] = cloneChunk(originalDimStore[j]);\r\n }\r\n return newDimStore;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions (source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n result.firstCategoryDimIndex = index;\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!(source instanceof Source)) {\r\n source = Source.seriesDataToSource(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n function getDefaultLabel(data, dataIndex, interpolatedValues) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[0])\r\n : interpolatedValues;\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var val = interpolatedValues == null\r\n ? retrieveRawValue(data, dataIndex, labelDims[i])\r\n : interpolatedValues;\r\n vals.push(val);\r\n }\r\n return vals.join(' ');\r\n }\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n updateProps(symbolPath, {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n }, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n symbolPath.ensureState('emphasis').style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n this.ensureState('emphasis');\r\n this.setSymbolScale(1);\r\n }\r\n else {\r\n this.states.emphasis = null;\r\n }\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n var emphasisState = this.states.emphasis;\r\n if (emphasisState) {\r\n var hoverScale = Math.max(scale * 1.1, 3 / this._sizeY + scale);\r\n emphasisState.scaleX = hoverScale;\r\n emphasisState.scaleY = hoverScale;\r\n }\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n this.silent = symbolPath.silent = true;\r\n !(opt && opt.keepLabel) && (symbolPath.removeTextContent());\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, this._seriesModel, getECData(this).dataIndex, cb);\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var seriesScope = makeSeriesScope(data);\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = data.getItemLayout(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = data.getItemLayout(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope);\r\n updateProps(symbolEl, {\r\n x: point[0],\r\n y: point[1]\r\n }, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = data.getItemLayout(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff (oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n var currentPt = oldData.getItemLayout(diffItem.idx);\r\n var nextPt = newData.getItemLayout(diffItem.idx1);\r\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\r\n currentPt = nextPt.slice();\r\n }\r\n currPoints.push(currentPt);\r\n nextPoints.push(nextPt);\r\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\r\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var idxAdd = diffItem.idx;\r\n currPoints.push(oldCoordSys.dataToPoint([\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idxAdd),\r\n newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idxAdd)\r\n ]));\r\n nextPoints.push(newData.getItemLayout(idxAdd).slice());\r\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idxAdd));\r\n nextStackedPoints.push(newStackedOnPoints[idxAdd]);\r\n rawIndices.push(newData.getRawIndex(idxAdd));\r\n break;\r\n case '-':\r\n var idxMinus = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(idxMinus);\r\n if (rawIndex !== idxMinus) {\r\n currPoints.push(oldData.getItemLayout(idxMinus));\r\n nextPoints.push(newCoordSys.dataToPoint([\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idxMinus),\r\n oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idxMinus)\r\n ]));\r\n currStackedPoints.push(oldStackedOnPoints[idxMinus]);\r\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idxMinus));\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var sortedCurrPoints = [];\r\n var sortedNextPoints = [];\r\n var sortedCurrStackedPoints = [];\r\n var sortedNextStackedPoints = [];\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n sortedCurrPoints[i] = currPoints[idx];\r\n sortedNextPoints[i] = nextPoints[idx];\r\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\r\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var vec2Min = min;\r\n var vec2Max = max;\r\n var scaleAndAdd$1 = scaleAndAdd;\r\n var v2Copy = copy;\r\n var v = [];\r\n var cp0 = [];\r\n var cp1 = [];\r\n function isPointNull(p) {\r\n return isNaN(p[0]) || isNaN(p[1]);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n return ((smoothMonotone === 'none' || !smoothMonotone) ? drawNonMono : drawMono)(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls);\r\n }\r\n function drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var prevP = points[prevIdx];\r\n var dim = smoothMonotone === 'y' ? 1 : 0;\r\n var ctrlLen = (p[dim] - prevP[dim]) * smooth;\r\n v2Copy(cp0, prevP);\r\n cp0[dim] = prevP[dim] + ctrlLen;\r\n v2Copy(cp1, p);\r\n cp1[dim] = p[dim] - ctrlLen;\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\r\n var prevIdx = 0;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var p = points[idx];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(p)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\r\n v2Copy(cp0, p);\r\n }\r\n else {\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextP = points[nextIdx];\r\n if (connectNulls) {\r\n while (nextP && isPointNull(points[nextIdx])) {\r\n nextIdx += dir;\r\n nextP = points[nextIdx];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var prevP = points[prevIdx];\r\n nextP = points[nextIdx];\r\n if (!nextP || isPointNull(nextP)) {\r\n v2Copy(cp1, p);\r\n }\r\n else {\r\n if (isPointNull(nextP) && !connectNulls) {\r\n nextP = p;\r\n }\r\n sub(v, nextP, prevP);\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x' || smoothMonotone === 'y') {\r\n var dim = smoothMonotone === 'x' ? 0 : 1;\r\n lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\r\n lenNextSeg = Math.abs(p[dim] - nextP[dim]);\r\n }\r\n else {\r\n lenPrevSeg = dist(p, prevP);\r\n lenNextSeg = dist(p, nextP);\r\n }\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n scaleAndAdd$1(cp1, p, v, -smooth * (1 - ratioNextSeg));\r\n }\r\n vec2Min(cp0, cp0, smoothMax);\r\n vec2Max(cp0, cp0, smoothMin);\r\n vec2Min(cp1, cp1, smoothMax);\r\n vec2Max(cp1, cp1, smoothMin);\r\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\r\n scaleAndAdd$1(cp0, p, v, smooth * ratioNextSeg);\r\n }\r\n else {\r\n ctx.lineTo(p[0], p[1]);\r\n }\r\n }\r\n prevIdx = idx;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n function getBoundingBox(points, smoothConstraint) {\r\n var ptMin = [Infinity, Infinity];\r\n var ptMax = [-Infinity, -Infinity];\r\n if (smoothConstraint) {\r\n for (var i = 0; i < points.length; i++) {\r\n var pt = points[i];\r\n if (pt[0] < ptMin[0]) {\r\n ptMin[0] = pt[0];\r\n }\r\n if (pt[1] < ptMin[1]) {\r\n ptMin[1] = pt[1];\r\n }\r\n if (pt[0] > ptMax[0]) {\r\n ptMax[0] = pt[0];\r\n }\r\n if (pt[1] > ptMax[1]) {\r\n ptMax[1] = pt[1];\r\n }\r\n }\r\n }\r\n return {\r\n min: smoothConstraint ? ptMin : ptMax,\r\n max: smoothConstraint ? ptMax : ptMin\r\n };\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n this.connectNulls = false;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length;\r\n var result = getBoundingBox(points, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length;\r\n var smoothMonotone = shape.smoothMonotone;\r\n var bbox = getBoundingBox(points, shape.smoothConstraint);\r\n var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel) {\r\n var rect = cartesian.getArea();\r\n var isHorizontal = cartesian.getBaseAxis().isHorizontal();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: round$1(sectorArea.r0, 1),\r\n r: round$1(sectorArea.r, 1),\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n return null;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n var p1 = points1[i];\r\n var p2 = points2[i];\r\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var min1 = [];\r\n var max1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n fromPoints(points1, min1, max1);\r\n fromPoints(points2, min2, max2);\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var points = [];\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n for (; i < points.length - 1; i++) {\r\n var nextPt = points[i + 1];\r\n var pt = points[i];\r\n stepPoints.push(pt);\r\n var stepPt = [];\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n stepPoints.push(stepPt2);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt);\r\n }\r\n }\r\n points[i] && stepPoints.push(points[i]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function createLineClipPath(coordSys, hasAnimation, seriesModel) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.mapArray(data.getItemLayout);\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol\r\n });\r\n data.eachItemGraphicEl(function (el) {\r\n el && el.stopAnimation(null, true);\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n var shouldBolderOnEmphasis = seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder';\r\n if (shouldBolderOnEmphasis) {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel'\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: seriesModel.get('smoothMonotone'),\r\n connectNulls: seriesModel.get('connectNulls')\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var pt = data.getItemLayout(dataIndex);\r\n if (!pt) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.setPosition(pt);\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._updateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n polyline.stopAnimation();\r\n updateProps(polyline, {\r\n shape: {\r\n points: next\r\n }\r\n }, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n el.setPosition(polyline.shape.__points[updatedDataInfo[i].ptIdx]);\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function layoutPoints (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeRender = pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = isLargeRender && new Float32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.get(dims[0], i);\r\n point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n var x = tmpIn[0] = data.get(dims[0], i);\r\n var y = tmpIn[1] = data.get(dims[1], i);\r\n point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (isLargeRender) {\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n else {\r\n data.setItemLayout(i, (point && point.slice()) || [NaN, NaN]);\r\n }\r\n }\r\n isLargeRender && data.setLayout('symbolPoints', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var size = extent[1] - extent[0];\r\n var rate = Math.round(data.count() / size);\r\n if (rate > 1) {\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator (axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta || isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({ categories: ordinalMeta });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC);\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\r\n var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var PI$5 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$5) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$5 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$5 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$5 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$5 * 1.5 && rotationDiff > PI$5 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$5 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$5 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$5(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$5(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$5(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 60,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(layoutPoints('line'));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out = out || [];\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var inner$6 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$6(axis)[prop] || (inner$6(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$6(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$6(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$6(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (!ignoreContainLabel && gridModel.get('containLabel')) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n realtimeSort: false\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$3 = Math.max;\r\n var mathMin$3 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea;\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n coordSysClipArea = coord.getArea && coord.getArea();\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this.removeOnRenderedListener(api);\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n var isReorder = payload && payload.type === 'changeAxisOrder';\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, isReorder);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, isReorder) {\r\n var _this = this;\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 if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var realtimeSort = seriesModel.get('realtimeSort');\r\n if (realtimeSort && data.count()) {\r\n if (this._isFirstFrame) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n else {\r\n this._onRendered = function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n _this._updateSort(data, orderMap, baseAxis, api);\r\n };\r\n api.getZr().on('rendered', this._onRendered);\r\n }\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\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 data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, dataIndex, isHorizontalOrRadial, false);\r\n }\r\n else if (coord.type === 'cartesian2d') {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\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 if (drawBackground) {\r\n var bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\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 }\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (realtimeSort) {\r\n el.disableLabelAnimation = true;\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, data, newIndex, isHorizontalOrRadial, true);\r\n }\r\n else {\r\n updateProps(el, { shape: layout }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n this.removeOnRenderedListener(api);\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function (ecModel, api) {\r\n this._clear(this._model);\r\n this.removeOnRenderedListener(api);\r\n };\r\n BarView.prototype.dispose = function (ecModel, api) {\r\n this.removeOnRenderedListener(api);\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 BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var 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;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$3(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$3(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$3(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$3(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function () {\r\n return false;\r\n }\r\n };\r\n var 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 if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\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\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, data, newIndex, isHorizontal, isUpdate) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\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 }\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 (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n var defaultTextGetter = function (values) {\r\n return getDefaultLabel(seriesModel.getData(), newIndex, values);\r\n };\r\n var labelModel = seriesModel.getModel('label');\r\n (isUpdate ? updateLabel : initLabel)(el, data, newIndex, labelModel, seriesModel, animationModel, defaultTextGetter);\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\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 };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n el.ignore = isZeroOnPolar(layout);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n setLabelStyle(el, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\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 }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\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 var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var 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 function 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 barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function 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 }\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 function 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 ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\n\n function createListSimply (seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function labelLayout (seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.x -= margin / 2;\r\n textRect.y -= margin / 2;\r\n textRect.width += margin;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend({}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = {\r\n r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0)\r\n };\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var labelText = sector.getTextContent();\r\n var itemModel = data.getItemModel(idx);\r\n var labelTextEmphasisState = labelText.ensureState('emphasis');\r\n var labelModel = itemModel.getModel('label');\r\n var labelHoverModel = itemModel.getModel(['emphasis', 'label']);\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n }, { normal: {\r\n opacity: style && style.opacity\r\n } });\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n labelText.ignore = !labelModel.get('show');\r\n labelTextEmphasisState.ignore = !labelHoverModel.get('show');\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: style && style.opacity\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n labelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$6 = Math.PI * 2;\r\n var RADIAN$1 = Math.PI / 180;\r\n function getViewRect(seriesModel, api) {\r\n return getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function pieLayout (seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var viewRect = getViewRect(seriesModel, api);\r\n var center = seriesModel.get('center');\r\n var radius = seriesModel.get('radius');\r\n if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n if (!isArray(center)) {\r\n center = [center, center];\r\n }\r\n var width = parsePercent$2(viewRect.width, api.getWidth());\r\n var height = parsePercent$2(viewRect.height, api.getHeight());\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width) + viewRect.x;\r\n var cy = parsePercent$2(center[1], height) + viewRect.y;\r\n var r0 = parsePercent$2(radius[0], size / 2);\r\n var r = parsePercent$2(radius[1], size / 2);\r\n var startAngle = -seriesModel.get('startAngle') * RADIAN$1;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$1;\r\n var validDataCount = 0;\r\n data.each(valueDim, function (value) {\r\n !isNaN(value) && validDataCount++;\r\n });\r\n var sum = data.getSum(valueDim);\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var clockwise = seriesModel.get('clockwise');\r\n var roseType = seriesModel.get('roseType');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var extent = data.getDataExtent(valueDim);\r\n extent[0] = 0;\r\n var restAngle = PI2$6;\r\n var valueSumLargerThanMinAngle = 0;\r\n var currentAngle = startAngle;\r\n var dir = clockwise ? 1 : -1;\r\n data.setLayout({ viewRect: viewRect, r: r });\r\n data.each(valueDim, function (value, idx) {\r\n var angle;\r\n if (isNaN(value)) {\r\n data.setItemLayout(idx, {\r\n angle: NaN,\r\n startAngle: NaN,\r\n endAngle: NaN,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? NaN\r\n : r\r\n });\r\n return;\r\n }\r\n if (roseType !== 'area') {\r\n angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n }\r\n else {\r\n angle = PI2$6 / validDataCount;\r\n }\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n restAngle -= minAngle;\r\n }\r\n else {\r\n valueSumLargerThanMinAngle += value;\r\n }\r\n var endAngle = currentAngle + dir * angle;\r\n data.setItemLayout(idx, {\r\n angle: angle,\r\n startAngle: currentAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: roseType\r\n ? linearMap(value, extent, [r0, r])\r\n : r\r\n });\r\n currentAngle = endAngle;\r\n });\r\n if (restAngle < PI2$6 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$6 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter (seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n exports.PRIORITY = PRIORITY;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.init = init$1;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.version = version;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file diff --git a/dist/echarts.simple.min.js b/dist/echarts.simple.min.js index 30637caab9576e78421523aa080031abdee2bce0..a392f7dce0ffe3d22bccb71bf01ac2d8d6959a98 100644 --- a/dist/echarts.simple.min.js +++ b/dist/echarts.simple.min.js @@ -19,4 +19,4 @@ */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).echarts={})}(this,function(t){"use strict";var i=function(t,e){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function u(t,e){function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var e=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.weChat=!1},m=new function(){this.browser=new e,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(m.wxa=!0,m.canvasSupported=!0,m.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(m.worker=!0,m.canvasSupported=!0):"undefined"==typeof navigator?(m.node=!0,m.canvasSupported=!0,m.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1]);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&11<=+n.version),e.domSupported="undefined"!=typeof document}(navigator.userAgent,m);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},h=Object.prototype.toString,n=Array.prototype,a=n.forEach,c=n.filter,r=n.slice,p=n.map,o=function(){}.constructor,d=o?o.prototype:null,f={};var g=2311;function y(){return g++}function v(){for(var t=[],e=0;e>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",r[u]+":0",i[1-l]+":auto",r[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(a)return a(t,n,i),1}}function Ct(t){return"CANVAS"===t.nodeName.toUpperCase()}var kt="undefined"!=typeof window&&!!window.addEventListener,It=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Dt=[];function At(t,e,n,i){return n=n||{},i||!m.canvasSupported?Lt(t,e,n):m.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):Lt(t,e,n),n}function Lt(t,e,n){if(m.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ct(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Tt(Dt,t,i,r))return n.zrX=Dt[0],void(n.zrY=Dt[1])}n.zrX=n.zrY=0}function Pt(t){return t||window.event}function Ot(t,e,n){if(null!=(e=Pt(e)).zrX)return e;var i,r,o=e.type;o&&0<=o.indexOf("touch")?(i="touchend"!==o?e.targetTouches[0]:e.changedTouches[0])&&At(t,i,e,n):(At(t,e,e,n),r=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;return null!=n&&null!=i?3*(0!==i?Math.abs(i):Math.abs(n))*(0i.getWidth()||n<0||n>i.getHeight()}W(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(a){Xt.prototype[a]=function(t){var e,n,i=t.zrX,r=t.zrY,o=jt(this,i,r);if("mouseup"===a&&o||(n=(e=this.findHover(i,r)).target),"mousedown"===a)this._downEl=n,this._downPoint=[t.zrX,t.zrY],this._upEl=n;else if("mouseup"===a)this._upEl=n;else if("click"===a){if(this._downEl!==this._upEl||!this._downPoint||4>>1])<0?l=o:s=1+o;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function ne(f,g){var a,s,y=$t,l=0,v=(f.length,[]);function e(t){var e=a[t],n=s[t],i=a[t+1],r=s[t+1];s[t]=n+r,t===l-3&&(a[t+1]=a[t+2],s[t+1]=s[t+2]),l--;var o=ee(f[i],f,e,n,0,g);e+=o,0!=(n-=o)&&0!==(r=te(f[e+n-1],f,i,r,r-1,g))&&(n<=r?function(t,e,n,i){var r=0;for(r=0;rs[t+1])break;e(t)}},forceMergeRuns:function(){for(;1>=1;return t+e}(r);do{(o=Qt(t,n,i,e))=this._maxSize&&0>4|(3840&i)>>8,240&i|(240&i)>>4,15&i|(15&i)<<4,1),Ie(t,e),e):void Me(e,0,0,0,1):7===r.length?0<=(i=parseInt(r.substr(1),16))&&i<=16777215?(Me(e,(16711680&i)>>16,(65280&i)>>8,255&i,1),Ie(t,e),e):void Me(e,0,0,0,1):void 0;var o=r.indexOf("("),a=r.indexOf(")");if(-1!==o&&a+1===r.length){var s=r.substr(0,o),l=r.substr(o+1,a-(o+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Me(e,0,0,0,1);u=be(l.pop());case"rgb":return 3!==l.length?void Me(e,0,0,0,1):(Me(e,we(l[0]),we(l[1]),we(l[2]),u),Ie(t,e),e);case"hsla":return 4!==l.length?void Me(e,0,0,0,1):(l[3]=be(l[3]),Ae(l,e),Ie(t,e),e);case"hsl":return 3!==l.length?void Me(e,0,0,0,1):(Ae(l,e),Ie(t,e),e);default:return}}Me(e,0,0,0,1)}}function Ae(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=be(t[1]),r=be(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Me(e=e||[],_e(255*Se(a,o,n+1/3)),_e(255*Se(a,o,n)),_e(255*Se(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Le(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function Pe(t,e){var n=De(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var Oe=Array.prototype.slice;function Ne(t,e,n){return(e-t)*n+t}function Ee(t,e,n,i){for(var r=e.length,o=0;o=this.maxTime?this.maxTime=t:this._needsSort=!0;var n,i=this.keyframes,r=i.length;if(this.interpolable)if(L(e)){var o,a=L((n=e)&&n[0])?2:1;if(0e);u++);u=Math.min(u-1,o-2)}var h,c,p,d,f,g,y,v,m,_,x=r[u+1],w=r[u];w&&x&&(this._lastFrame=u,this._lastFramePercent=e,0!=(h=x.percent-w.percent)&&(c=(e-w.percent)/h,p=n?this._additiveValue:l?We:t[a],(0=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},Yn.prototype.clone=function(){return new Yn(this.x,this.y,this.width,this.height)},Yn.prototype.copy=function(t){Yn.copy(this,t)},Yn.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},Yn.create=function(t){return new Yn(t.x,t.y,t.width,t.height)},Yn.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},Yn.applyTransform=function(t,e,n){if(n){if(n[1]<1e-5&&-1e-5this._ux||xr(e-this._yi)>this._uy||this._len<5;return this.addData(lr.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},Mr.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(lr.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},Mr.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(lr.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},Mr.prototype.arc=function(t,e,n,i,r,o){var a=r-i;return r=i+a,this.addData(lr.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=vr(r)*n+t,this._yi=mr(r)*n+e,this},Mr.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},Mr.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(lr.R,t,e,n,i),this},Mr.prototype.closePath=function(){this.addData(lr.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},Mr.prototype.fill=function(t){t&&t.fill(),this.toStatic()},Mr.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},Mr.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;hn||xr(g)>i||c===e-1)&&(d=Math.sqrt(I*I+g*g),r=f,o=m);break;case lr.C:var y=t[c++],v=t[c++],f=t[c++],m=t[c++],_=t[c++],x=t[c++],d=function(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=Fi(t,n,r,a,f),y=Fi(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}(r,o,y,v,f,m,_,x,10),r=_,o=x;break;case lr.Q:d=function(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Ui(t,n,r,p),f=Ui(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}(r,o,y=t[c++],v=t[c++],f=t[c++],m=t[c++],10),r=f,o=m;break;case lr.A:var w=t[c++],b=t[c++],S=t[c++],M=t[c++],T=t[c++],C=t[c++],k=C+T;c+=1,t[c++],1===c&&(a=vr(T)*S+w,s=mr(T)*M+b),d=yr(S,M)*gr(wr,Math.abs(C)),r=vr(k)*S+w,o=mr(k)*M+b;break;case lr.R:a=r=t[c++],s=o=t[c++],d=2*t[c++]+2*t[c++];break;case lr.Z:var I=a-r,g=s-o;d=Math.sqrt(I*I+g*g),r=a,o=s}0<=d&&(u+=l[h++]=d)}return this._pathLen=u},Mr.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;vc||xr(s-o)>p||v===d-1){if(f){if(u=Or[i=0]+t&&a<=Or[1]+t?c:0}(r=o?(u=i,i=kr(r),kr(u)):(i=kr(i),kr(r)))Math.PI/2&&f<1.5*Math.PI&&(c=-c),p+=c))}return p}(f,g,v,m,m+_,x,S,r);l=Math.cos(m+_)*y+f,u=Math.sin(m+_)*v+g;break;case Ar.R:h=l=t[p++],c=u=t[p++];if(w=h+t[p++],b=c+t[p++],n){if(Tr(h,c,w,c,e,i,r)||Tr(w,c,w,b,e,i,r)||Tr(w,b,h,b,e,i,r)||Tr(h,b,h,c,e,i,r))return!0}else s+=Dr(w,c,w,b,i,r),s+=Dr(h,b,h,c,i,r);break;case Ar.Z:if(n){if(Tr(l,u,h,c,e,i,r))return!0}else s+=Dr(l,u,h,c,i,r);l=h,u=c}}return n||(o=u,a=c,Math.abs(o-a)=e.maxIterations){t+=e.ellipsis;break}var a=0===o?function(t,e,n,i){for(var r=0,o=0,a=t.length;oo){0i.width&&(o=e.split("\n"),g=!0),i.accumWidth=u):(h=_a(e,f,i.width,i.breakAll,i.accumWidth),i.accumWidth=h.accumWidth+l,a=h.linesWidths,o=h.lines)):o=e.split("\n");for(var y=0;yi.len()&&(u=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Bs(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?t.replace(/^\s+|\s+$/g,"").match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Fs(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Vs(t){var e=t.toString(),n=e.indexOf("e");if(0"'])/g,Yh={"&":"&","<":"<",">":">",'"':""","'":"'"};function Xh(t){return null==t?"":(t+"").replace(qh,function(t,e){return Yh[e]})}function Zh(t,e){return"{"+t+(null==e?"":e)+"}"}var jh=["a","b","c","d","e","f","g"];function Kh(t,e){var n=R(t)?{color:t,extraCssText:e}:t||{},i=n.color;e=n.extraCssText;var r=n.renderMode||"html",o=n.markerId||"X";return i?"html"===r?"subItem"===n.type?'':'':{renderMode:r,content:"{marker"+o+"|} ",style:{color:i}}:""}var $h=W,Qh=["left","right","top","bottom","width","height"],Jh=[["width","left","right"],["height","top","bottom"]];function tc(u,h,c,p,d){var f=0,g=0;null==p&&(p=1/0),null==d&&(d=1/0);var y=0;h.eachChild(function(t,e){var n,i,r,o,a=t.getBoundingRect(),s=h.childAt(e+1),l=s&&s.getBoundingRect();y="horizontal"===u?(n=a.width+(l?-l.x+a.x:0),p<(i=f+n)||t.newline?(f=0,i=n,g+=y+c,a.height):Math.max(y,a.height)):(r=a.height+(l?-l.y+a.y:0),d<(o=g+r)||t.newline?(f+=y+c,g=0,o=r,a.width):Math.max(y,a.width)),t.newline||(t.x=f,t.y=g,t.markRedraw(),"horizontal"===u?f=i+c:g=o+c)})}k(tc,"vertical"),k(tc,"horizontal");function ec(t,e,n){n=Uh(n||0);var i=e.width,r=e.height,o=Bs(t.left,i),a=Bs(t.top,r),s=Bs(t.right,i),l=Bs(t.bottom,r),u=Bs(t.width,i),h=Bs(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(i/re)return t[i];return t[n-1]}(s,n):a;if((l=l||a)&&l.length){var u=l[r];return t&&(o[t]=u),i.colorIdx=(r+1)%l.length,u}},mc);function mc(){}var _c=tt(["tooltip","label","itemName","itemId","seriesName"]),xc="original",wc="arrayRows",bc="objectRows",Sc="keyedColumns",Mc="typedArray",Tc="unknown",Cc="column",kc="row",Ic=(Dc.seriesDataToSource=function(t){return new Dc({data:t,sourceFormat:C(t)?Mc:xc})},Dc);function Dc(t){this.data=t.data||(t.sourceFormat===Sc?{}:[]),this.sourceFormat=t.sourceFormat||Tc,this.seriesLayoutBy=t.seriesLayoutBy||Cc,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectCount=t.dimensionsDetectCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption}var Ac={Must:1,Might:2,Not:3},Lc=sl();function Pc(t,e,n,i){var r=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:Ec(r),startIndex:a,dimensionsDetectCount:o};{var s,l;e===wc?(s=t,"auto"===i||null==i?Rc(function(t){null!=t&&"-"!==t&&(R(t)?null==a&&(a=1):a=0)},n,s,10):a="number"==typeof i?i:i?1:0,r||1!==a||(r=[],Rc(function(t,e){r[e]=null!=t?t+"":""},n,s,1/0)),o=r?r.length:n===kc?s.length:s[0]?s[0].length:null):e===bc?r=r||function(t){var e,n=0;for(;n'+o+Xh(s.displayName||"-")+"":"")+''+Xh("ordinal"===n?t+"":"time"===n?h?"":function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Us(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",ph(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",ph(s,2)).replace("d",s).replace("hh",ph(l,2)).replace("h",l).replace("mm",ph(u,2)).replace("m",u).replace("ss",ph(h,2)).replace("s",h).replace("SSS",ph(c,3))}("yyyy/MM/dd hh:mm:ss",t):Wh(t))+"")&&u.push('
'+a+"
"),d&&(f[i]=y,++g))}o.length?W(o,function(t){e(Up(v,r,t),t)}):W(t,e);var n=l&&d?"\n":"",i=n+u.join(n||"");return{renderMode:c,content:i,style:f}}(a):n(i?Up(v,r,o[0]):s?a[0]:a),m=d?u.content:1"+u.content+"":''+u.content+"",_=p.seriesIndex+"at"+g,x=Kh({color:y,type:"item",renderMode:c,markerId:_});f[_]=y,++g;var w=v.getName(r),b=this.name;return il(this)||(b=""),b=b?Xh(b)+(h?" ":e):"",y=R(x)?x:x.content,{html:d?h?""+y+b+": "+m:b+(b?"\n":"")+y+(w?Xh(w)+": "+m:m):(b=b?h?''+b+"":'
'+b+"
":"",h?'
'+y+b+m+"
":b+'
'+y+(w?''+Xh(w)+""+m:m)+"
"),markers:f}},bd.prototype.isAnimationEnabled=function(){if(m.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},bd.prototype.restoreData=function(){this.dataTask.dirty()},bd.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return vc.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},bd.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},bd.prototype.getProgressive=function(){return this.get("progressive")},bd.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},bd.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},bd.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;re.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function kd(e,n){W(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,k(Id,n))})}function Id(t){var e=Dd(t);e&&e.setOutputEnd(this.count())}function Dd(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i,r=n.currentTask;return!r||(i=r.agentStubMap)&&(r=i.get(t.uid)),r}}w(wd,Yp),w(wd,vc),ml(wd,cc);var Ad=(Ld.prototype.init=function(t,e){},Ld.prototype.render=function(t,e,n,i){},Ld.prototype.dispose=function(t,e){},Ld.prototype.updateView=function(t,e,n,i){},Ld.prototype.updateLayout=function(t,e,n,i){},Ld.prototype.updateVisual=function(t,e,n,i){},Ld.prototype.blurSeries=function(t,e){},Ld);function Ld(){this.group=new uo,this.uid=Zu("viewComponent")}function Pd(){var s=sl();return function(t){var e=s(t),n=t.pipelineContext,i=e.large,r=e.progressiveRender,o=e.large=n&&n.large,a=e.progressiveRender=n&&n.progressiveRender;return!!(i^o||r^a)&&"reset"}}vl(Ad),bl(Ad,{registerWhenExtend:!0});var Od=sl(),Nd=Pd(),Ed=(Rd.prototype.init=function(t,e){},Rd.prototype.render=function(t,e,n,i){},Rd.prototype.highlight=function(t,e,n,i){Bd(t.getData(),i,"emphasis")},Rd.prototype.downplay=function(t,e,n,i){Bd(t.getData(),i,"normal")},Rd.prototype.remove=function(t,e){this.group.removeAll()},Rd.prototype.dispose=function(t,e){},Rd.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},Rd.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},Rd.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},Rd.markUpdateMethod=function(t,e){Od(t).updateMethod=e},Rd.protoInitialize=void(Rd.prototype.type="chart"),Rd);function Rd(){this.group=new uo,this.uid=Zu("viewChart"),this.renderTask=Zp({plan:Fd,reset:Vd}),this.renderTask.context={view:this}}function zd(t,e,n){t&&("emphasis"===e?ou:au)(t,n)}function Bd(e,t,n){var i,r,o=al(e,t),a=t&&null!=t.highlightKey?(i=t.highlightKey,null==(r=Dl[i])&&Il<=32&&(r=Dl[i]=Il++),r):null;null!=o?W(js(o),function(t){zd(e.getItemGraphicEl(t),n,a)}):e.eachItemGraphicEl(function(t){zd(t,n,a)})}function Fd(t){return Nd(t.model)}function Vd(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Od(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),Hd[l]}vl(Ed),bl(Ed,{registerWhenExtend:!0});var Hd={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}};function Gd(t,r,o){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}r=r||0;function e(){for(var t=[],e=0;ed?n+=y(v("data.partialData"),{displayCnt:d}):n+=v("data.allData");for(var a,s,l=[],u=0;un.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},ef.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},ef.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},ef.prototype.restorePipelines=function(t){var i=this,r=i._pipelineMap=tt();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;r.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},ef.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.ecInstance.getModel(),r=this.api;W(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});t.reset&&this._createSeriesStageTask(t,e,i,r),t.overallReset&&this._createOverallStageTask(t,e,i,r)},this)},ef.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},ef.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},ef.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},ef.prototype._performStageTasks=function(t,l,u,h){h=h||{};var c=!1,p=this;function d(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}W(t,function(i,t){var e,n,r,o,a,s;h.visualType&&h.visualType!==i.visualType||(n=(e=p._stageTaskMap.get(i.uid)).seriesTaskMap,(r=e.overallTask)?((a=r.agentStubMap).each(function(t){d(h,t)&&(t.dirty(),o=!0)}),o&&r.dirty(),p.updatePayload(r,u),s=p.getPerformArgs(r,h.block),a.each(function(t){t.perform(s)}),r.perform(s)&&(c=!0)):n&&n.each(function(t,e){d(h,t)&&t.dirty();var n=p.getPerformArgs(t,h.block);n.skip=!i.performRawSeries&&l.isSeriesFiltered(t.context.model),p.updatePayload(t,u),t.perform(n)&&(c=!0)}))}),this.unfinished=c||this.unfinished},ef.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},ef.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})},ef.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},ef.prototype._createSeriesStageTask=function(i,t,r,o){var a=this,s=t.seriesTaskMap||(t.seriesTaskMap=tt()),e=i.seriesType,n=i.getTargetSeries;function l(t){var e=t.uid,n=s.get(e)||s.set(e,Zp({plan:sf,reset:lf,count:cf}));n.context={model:t,ecModel:r,api:o,useClearVisual:i.isVisual&&!i.isLayout,plan:i.plan,reset:i.reset,scheduler:a},a._pipe(t,n)}i.createOnAllSeries?r.eachRawSeries(l):e?r.eachRawSeriesByType(e,l):n&&n(r,o).each(l);var u=a._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})},ef.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||Zp({reset:nf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap=o.agentStubMap||tt(),s=t.seriesType,l=t.getTargetSeries,u=!0;function h(t){var e=t.uid,n=a.get(e);n||(n=a.set(e,Zp({reset:rf,onDirty:af})),o.dirty()),n.context={model:t,overallProgress:u},n.agent=o,n.__block=u,r._pipe(t,n)}s?n.eachRawSeriesByType(s,h):l?l(n,i).each(h):(u=!1,W(n.getSeries(),h));var c=r._pipelineMap;a.each(function(t,e){c.get(e)||(t.dispose(),o.dirty(),a.removeKey(e))})},ef.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);i.head||(i.head=e),i.tail&&i.tail.pipe(e),(i.tail=e).__idxInPipeline=i.count++,e.__pipeline=i},ef.wrapStageHandler=function(t,e){return E(t)&&(t={overallReset:t,seriesType:function(t){pf=null;try{t(df,ff)}catch(t){}return pf}(t)}),t.uid=Zu("stageHandler"),e&&(t.visualType=e),t},ef);function ef(t,e,n,i){this._stageTaskMap=tt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function nf(t){t.overallReset(t.ecModel,t.api,t.payload)}function rf(t){return t.overallProgress&&of}function of(){this.agent.dirty(),this.getDownstream().dirty()}function af(){this.agent&&this.agent.dirty()}function sf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function lf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=js(t.reset(t.model,t.ecModel,t.api,t.payload));return 1r[0]){for(l=0;lt);l++);s=i[r[l]]}r.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.__painter=this}else v("Layer of zlevel "+t+" is not valid")},Ug.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,r.connectedBackgroundColor&&f.painter.setBackgroundColor(r.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()}return r.connectedBackgroundColor&&f.add(new Co({shape:{x:0,y:0,width:t,height:e},style:{fill:r.connectedBackgroundColor}})),Yg(d,function(t){var e=new go({style:{x:t.left*n-u,y:t.top*n-h,image:t.dom}});f.add(e)}),f.refreshImmediately(),i.toDataURL("image/"+(r&&r.type||"png"))}return this.getDataURL(r)}},Ay.prototype.convertToPixel=function(t,e){return cy(this,"convertToPixel",t,e)},Ay.prototype.convertFromPixel=function(t,e){return cy(this,"convertFromPixel",t,e)},Ay.prototype.containPixel=function(t,r){var o;if(!this._disposed)return W(ul(this._model,t),function(t,i){0<=i.indexOf("Models")&&W(t,function(t){var e,n=t.coordinateSystem;n&&n.containPoint?o=o||!!n.containPoint(r):"seriesModels"===i&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(o=o||e.containPoint(r,t))},this)},this),!!o;zy(this.id)},Ay.prototype.getVisual=function(t,e){var n=ul(this._model,t,{defaultMainType:"series"}),i=n.seriesModel,r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,o,e):function(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e)}}(r,e)},Ay.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},Ay.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},Ay.prototype._initEvents=function(){var t,e,p=this;Yg(Ry,function(c){function t(t){var e,n,i,r,o,a,s=p.getModel(),l=t.target,u="globalout"===c,h=l&&kl(l);u?n={}:h&&null!=h.dataIndex?n=(e=h.dataModel||s.getSeriesByIndex(h.seriesIndex))&&e.getDataParams(h.dataIndex,h.dataType)||{}:l&&h.eventData&&(n=A({},h.eventData)),n&&(i=n.componentType,r=n.componentIndex,"markLine"!==i&&"markPoint"!==i&&"markArea"!==i||(i="series",r=n.seriesIndex),a=(o=i&&null!=r&&s.getComponent(i,r))&&p["series"===o.mainType?"_chartsMap":"_componentsMap"][o.__viewId],n.event=t,n.type=c,p._$eventProcessor.eventInfo={targetEl:l,packedEvent:n,model:o,view:a},p.trigger(c,n))}t.zrEventfulCallAtLast=!0,p._zr.on(c,t,p)}),Yg(Fy,function(t,e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),Yg(["selectchanged"],function(e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),t=this._messageCenter,e=this,t.on("selectchanged",function(t){t.isFromClick?(dg("map","selectchanged",e,t),dg("pie","selectchanged",e,t)):"select"===t.fromAction?(dg("map","selected",e,t),dg("pie","selected",e,t)):"unselect"===t.fromAction&&(dg("map","unselected",e,t),dg("pie","unselected",e,t))})},Ay.prototype.isDisposed=function(){return this._disposed},Ay.prototype.clear=function(){this._disposed?zy(this.id):this.setOption({series:[]},!0)},Ay.prototype.dispose=function(){var e,n;this._disposed?zy(this.id):(this._disposed=!0,pl(this.getDom(),Ky,""),e=this._api,n=this._model,Yg(this._componentsViews,function(t){t.dispose(n,e)}),Yg(this._chartsViews,function(t){t.dispose(n,e)}),this._zr.dispose(),delete Yy[this.id])},Ay.prototype.resize=function(t){var e,n,i;this._disposed?zy(this.id):(this._zr.resize(t),e=this._model,this._loadingFX&&this._loadingFX.resize(),e&&(n=e.resetOption("media"),i=t&&t.silent,this[Kg]=!0,n&&sy(this),hy.update.call(this,{type:"resize",animation:{duration:0}}),this[Kg]=!1,fy.call(this,i),gy.call(this,i)))},Ay.prototype.showLoading=function(t,e){var n,i;this._disposed?zy(this.id):(Zg(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),qy[t]&&(n=qy[t](this._api,e),i=this._zr,this._loadingFX=n,i.add(n)))},Ay.prototype.hideLoading=function(){this._disposed?zy(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},Ay.prototype.makeActionFromEvent=function(t){var e=A({},t);return e.type=Fy[t.type],e},Ay.prototype.dispatchAction=function(t,e){var n,i;this._disposed?zy(this.id):(Zg(e)||(e={silent:!!e}),By[t.type]&&this._model&&(this[Kg]?this._pendingActions.push(t):(n=e.silent,dy.call(this,t,n),(i=e.flush)?this._zr.flush():!1!==i&&m.browser.weChat&&this._throttledZrFlush(),fy.call(this,n),gy.call(this,n))))},Ay.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},Ay.prototype.appendData=function(t){var e;this._disposed?zy(this.id):(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},Ay.internalField=(sy=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),ly(t,!0),ly(t,!1),e.plan()},ly=function(t,o){for(var a=t._model,s=t._scheduler,l=o?t._componentsViews:t._chartsViews,u=o?t._componentsMap:t._chartsMap,h=t._zr,c=t._api,e=0;el.get("hoverLayerThreshold")&&!m.node&&l.eachSeries(function(t){var e;t.preventUsingHoverLayer||(e=n._chartsMap[t.__viewId]).__alive&&e.group.traverse(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),Qd(i._zr.dom,t)},by=function(e,n){Yg(Gy,function(t){t(e,n)})},Ty=function(t){t[Qg]=!0,t.getZr().wakeUp()},Cy=function(t){t[Qg]&&(t.getZr().storage.traverse(function(t){Fh(t)||Ly(t)}),t[Qg]=!1)},Sy=function(n){return u(t,e=Qc),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){ou(t,e),Ty(n)},t.prototype.leaveEmphasis=function(t,e){au(t,e),Ty(n)},t.prototype.enterBlur=function(t){tu(t,jl),Ty(n)},t.prototype.leaveBlur=function(t){su(t),Ty(n)},t.prototype.enterSelect=function(t){lu(t),Ty(n)},t.prototype.leaveSelect=function(t){uu(t),Ty(n)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(My=function(i){function r(t,e){for(var n=0;n_[1]&&(_[1]=m)}e&&(this._nameList[p]=e[d])}this._rawCount=this._count=l,this._extent={},gv(this)},Bv.prototype._initDataFromProvider=function(t,e){if(!(e<=t)){for(var n,i=this._chunkSize,r=this._rawData,o=this._storage,a=this.dimensions,s=a.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,p=this._nameRepeatCount={},d=this._chunkCount,f=0;fD[1]&&(D[1]=I)}r.pure||(m=u[v],y&&null==m&&(null!=y.name?u[v]=m=y.name:null==n||(x=o[_=a[n]][S])&&(m=x[M],(w=l[_].ordinalMeta)&&w.categories.length&&(m=w.categories[m]))),null==(b=null==y?null:y.id)&&null!=m&&(p[m]=p[m]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},Bv.prototype.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var r=1/0,o=-1,a=0,s=0,l=this.count();st[T][1])&&(M=!1)}M&&(o[a++]=this.getRawIndex(y))}return aS[1]&&(S[1]=b)}}}return a},Bv.prototype.downSample=function(t,e,n,i){for(var r=Sv(this,[t]),o=r._storage,a=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=this._chunkSize,c=r._rawExtent[t],p=new(vv(this))(u),d=0,f=0;fc[1]&&(c[1]=_),p[d++]=x}return r._count=d,r._indices=p,r.getRawIndex=xv,r},Bv.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new qu(n,e,e&&e.ecModel)},Bv.prototype.diff=function(e){var n=this;return new hv(e?e.getIndices():[],this.getIndices(),function(t){return wv(e,t)},function(t){return wv(n,t)})},Bv.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},Bv.prototype.setVisual=function(t,e){this._visual=this._visual||{},Dv(t)?A(this._visual,t):this._visual[t]=e},Bv.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},Bv.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t],r=(i=i||(n[t]={}))[e];return r||(N(r=this.getVisual(e))?r=r.slice():Dv(r)&&(r=A({},r)),i[e]=r),r},Bv.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Dv(e)?A(i,e):i[e]=n},Bv.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},Bv.prototype.setLayout=function(t,e){if(Dv(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},Bv.prototype.getLayout=function(t){return this._layout[t]},Bv.prototype.getItemLayout=function(t){return this._itemLayouts[t]},Bv.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?A(this._itemLayouts[t]||{},e):e},Bv.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},Bv.prototype.setItemGraphicEl=function(t,e){var n,i=this.hostModel;e&&((n=kl(e)).dataIndex=t,n.dataType=this.dataType,n.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(Cv,e)),this._graphicEls[t]=e},Bv.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},Bv.prototype.eachItemGraphicEl=function(n,i){W(this._graphicEls,function(t,e){t&&n&&n.call(i,t,e)})},Bv.prototype.cloneShallow=function(t){if((t=t||new Bv(U(this.dimensions,this.getDimensionInfo,this),this.hostModel))._storage=this._storage,kv(t,this),this._indices){var e=this._indices.constructor;if(e===Array){var n=this._indices.length;t._indices=new e(n);for(var i=0;ii[0]&&(i[0]=o[0]),o[1]>i[1]&&(i[1]=o[1])}return{min:e?n:i,max:e?i:n}}var Dm,Am=function(){this.smooth=0,this.smoothConstraint=!0,this.connectNulls=!1},Lm=(u(Pm,Dm=Gr),Pm.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},Pm.prototype.getDefaultShape=function(){return new Am},Pm.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length,o=Im(n,e.smoothConstraint);if(e.connectNulls){for(;0i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return W(o.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function Ym(t,e,n){if("cartesian2d"!==t.type)return Vm(t,e,n);var i,r,o=t.getBaseAxis().isHorizontal(),a=Fm(t,e,n);return n.get("clip",!0)||(i=a.shape,r=Math.max(i.width,i.height),o?(i.y-=r,i.height+=2*r):(i.x-=r,i.width+=2*r)),a}var Xm,Zm=(u(jm,Xm=Ed),jm.prototype.init=function(){var t=new uo,e=new fm;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},jm.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.mapArray(a.getItemLayout),h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=function(t,e,n){if(!n.valueDim)return[];for(var i=[],r=0,o=e.count();rh[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";W(h,function(t){t.offset=(t.coord-d)/g}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Zo(0,0,0,0,h,!0);return y[o]=d,y[o+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],C=t.get(["emphasis","focus"]),k=t.get(["emphasis","blurScope"]);d.useStyle(P(s.getLineStyle(),{fill:"none",stroke:T,lineJoin:"bevel"})),yu(d,t,"lineStyle"),"bolder"===t.get(["emphasis","lineStyle","width"])&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1),kl(d).seriesIndex=t.seriesIndex,du(d,C,k);var I,D,A=Wm(t.get("smooth"));function L(t){i._changePolyState(t)}d.setShape({smooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f&&(I=a.getCalculationInfo("stackedOnSeries"),D=0,f.useStyle(P(l.getAreaStyle(),{fill:T,opacity:.7,lineJoin:"bevel"})),I&&(D=Wm(I.get("smooth"))),f.setShape({smooth:A,stackedOnSmooth:D,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),yu(f,t,"areaStyle"),kl(f).seriesIndex=t.seriesIndex,du(f,C,k)),a.eachItemGraphicEl(function(t){t&&(t.onHoverStateChange=L)}),this._data=a,this._coordSys=r,this._stackedOnPoints=_,this._points=u,this._step=M,this._valueOrigin=m},jm.prototype.dispose=function(){},jm.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=al(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&0<=o){var a=r.getItemGraphicEl(o);if(!a){var s=r.getItemLayout(o);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(a=new lm(r,o)).setPosition(s),a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,r.setItemGraphicEl(o,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else Ed.prototype.highlight.call(this,t,e,n,i)},jm.prototype.downplay=function(t,e,n,i){var r,o=t.getData(),a=al(o,i);this._changePolyState("normal"),null!=a&&0<=a?(r=o.getItemGraphicEl(a))&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay()):Ed.prototype.downplay.call(this,t,e,n,i)},jm.prototype._changePolyState=function(t){var e=this._polygon;eu(this._polyline,t),e&&eu(e,t)},jm.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Lm({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e},jm.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new zm({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n},jm.prototype._updateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=mm(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=Um(u.current,n,r),c=Um(u.stackedOnCurrent,n,r),p=Um(u.next,n,r),d=Um(u.stackedOnNext,n,r)),3e3e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;ne[1]&&(e[1]=t[1])},g_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},g_.prototype.getExtent=function(){return this._extent.slice()},g_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},g_.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},g_.prototype.isBlank=function(){return this._isBlank},g_.prototype.setBlank=function(t){this._isBlank=t},g_);function g_(t){this._setting=t||{},this._extent=[1/0,-1/0]}bl(f_,{registerWhenExtend:!0});var y_=Fs;function v_(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=Ys(o/e,!0);null!=n&&as[1]&&(s[0]=s[1]),r}function m_(t){return Vs(t)+2}function __(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function x_(t,e){return t>=e[0]&&t<=e[1]}function w_(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function b_(t,e){return t*(e[1]-e[0])+e[0]}var S_,M_=(u(T_,S_=f_),T_.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},T_.prototype.contain=function(t){return x_(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},T_.prototype.normalize=function(t){return w_(t=this.getCategoryIndex(this.parse(t)),this._extent)},T_.prototype.scale=function(t){return t=this.getCategoryIndex(t),Math.round(b_(t,this._extent))},T_.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:this.getCategoryIndex(n)}),n++;return t},T_.prototype.getMinorTicks=function(t){},T_.prototype.setCategorySortInfo=function(t){this._categorySortInfo=t},T_.prototype.getCategorySortInfo=function(){return this._categorySortInfo},T_.prototype.getCategoryIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].beforeSortIndex:t},T_.prototype.getRawIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].ordinalNumber:t},T_.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawIndex(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},T_.prototype.count=function(){return this._extent[1]-this._extent[0]+1},T_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},T_.prototype.isInExtentRange=function(t){return t=this.getCategoryIndex(t),this._extent[0]<=t&&this._extent[1]>=t},T_.prototype.getOrdinalMeta=function(){return this._ordinalMeta},T_.prototype.niceTicks=function(){},T_.prototype.niceExtent=function(){},T_.type="ordinal",T_);function T_(t){var e=S_.call(this,t)||this;e.type="ordinal";var n=e.getSetting("ordinalMeta");return n&&!N(n)||(n=new n_({categories:n})),e._ordinalMeta=n,e._categorySortInfo=[],e._extent=e.getSetting("extent")||[0,n.categories.length-1],e}f_.registerClass(M_);var C_,k_=Fs,I_=(u(D_,C_=f_),D_.prototype.parse=function(t){return t},D_.prototype.contain=function(t){return x_(t,this._extent)},D_.prototype.normalize=function(t){return w_(t,this._extent)},D_.prototype.scale=function(t){return b_(t,this._extent)},D_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},D_.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},D_.prototype.getInterval=function(){return this._interval},D_.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=m_(t)},D_.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]s&&(t?o.push({value:k_(s+e,r)}):o.push({value:n[1]})),o},D_.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h=y[0]&&d<=y[1]&&a++)}var v=(y[1]-y[0])/f;if(1.5*v=y[0]&&t.value<=y[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n);var o=U_.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]n[1]&&(n[1]=e[1])})}var _x=Math.PI,xx=(bx.prototype.hasBuilder=function(t){return!!Sx[t]},bx.prototype.add=function(t){Sx[t](this.opt,this.axisModel,this.group,this._transformGroup)},bx.prototype.getGroup=function(){return this.group},bx.innerTextLayout=function(t,e,n){var i,r=Hs(e-t),o=Gs(r)?(i=0l[1]?-1:1,h=["start"===r?l[0]-u*s:"end"===r?l[1]+u*s:(l[0]+l[1])/2,Cx(r)?t.labelOffset+o*s:0],null!=(p=e.get("nameRotate"))&&(p=p*_x/180),Cx(r)?c=xx.innerTextLayout(t.rotation,null!=p?p:t.rotation,o):(c=function(t,e,n,i){var r,o,a=Hs(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;r=Gs(a-_x/2)?(o=l?"bottom":"top","center"):Gs(a-1.5*_x)?(o=l?"top":"bottom","center"):(o="middle",a<1.5*_x&&_x/2h[1]&&h.reverse(),(null==l||l>h[1])&&(l=h[1]),lt[1]&&(t[1]=e)}Ad.registerClass(Wx),Ad.registerClass(Yx),nv(jg.PROCESSOR.FILTER+10,{getTargetSeries:function(t){var e=tt();return t.eachSeries(function(t){Ox(t)&&e.set(t.uid,t)}),e},overallReset:function(t,e){var u,h,C,n=[],i=tt();u=i,h=n,t.eachSeries(function(t){var e,n,i,r,o,a,s,l;Ox(t)&&(n=(e=Nx(t)).xAxisModel,i=e.yAxisModel,r=n.axis,o=i.axis,a=r.scale.rawExtentInfo,s=o.scale.rawExtentInfo,l=t.getData(),a&&a.frozen||s&&s.frozen||(h.push({seriesModel:t,xAxisModel:n,yAxisModel:i}),mx(Zx(u,n).condExtent,l,r.dim),mx(Zx(u,i).condExtent,l,o.dim)))}),C=i,W(n,function(t){var e=t.xAxisModel,n=t.yAxisModel,i=e.axis,r=n.axis,o=Zx(C,e),a=Zx(C,n);o.rawExtentInfo=ux(i.scale,e,o.condExtent),a.rawExtentInfo=ux(r.scale,n,a.condExtent),o.rawExtentResult=o.rawExtentInfo.calculate(),a.rawExtentResult=a.rawExtentInfo.calculate();var s,l,u=t.seriesModel.getData(),h={},c={};function p(e,t){var n=t.condExtent,i=t.rawExtentResult;"category"===e.type&&(n[0]e.min&&n.modifyDataMinMax("min",i[0]),!e.maxFixed&&i[1]a[1],p(e[0].coord,a[0])&&(i?e[0].coord=a[0]:e.shift()),i&&p(a[0],e[0].coord)&&e.unshift({coord:a[0]}),p(a[1],r.coord)&&(i?r.coord=a[1]:e.pop()),i&&p(r.coord,a[1])&&e.push({coord:a[1]}))}(this,n,e.get("alignWithLabel"),t.clamp),n},xw.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return 0e[1]&&e.reverse(),e},Mw.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},Mw.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setCategorySortInfo(t)},Mw);function Mw(t,e,n,i,r){var o=bw.call(this,t,e,n)||this;return o.index=0,o.type=i||"value",o.position=r||"bottom",o}var Tw=(Cw.prototype.getRect=function(){return this._rect},Cw.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),W(n.x,function(t){px(t.scale,t.model)}),W(n.y,function(t){px(t.scale,t.model)});var i={};W(n.x,function(t){Iw(n,"y",t,i)}),W(n.y,function(t){Iw(n,"x",t,i)}),this.resize(this.model,e)},Cw.prototype.resize=function(t,e,n){var l=ec(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=l;var i=this._axesList;function r(){W(i,function(t){var e,n,i,r,o=t.isHorizontal(),a=o?[0,l.width]:[0,l.height],s=t.inverse?1:0;t.setExtent(a[s],a[1-s]),e=t,n=o?l.x:l.y,i=e.getExtent(),r=i[0]+i[1],e.toGlobalCoord="x"===e.dim?function(t){return t+n}:function(t){return r-t+n},e.toLocalCoord="x"===e.dim?function(t){return t-n}:function(t){return r-t+n}})}r(),!n&&t.get("containLabel")&&(W(i,function(t){var e,n,i;t.model.get(["axisLabel","inside"])||(e=fx(t))&&(n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]),l[n]-=e[n]+i,"top"===t.position?l.y+=e.height+i:"left"===t.position&&(l.x+=e.width+i))}),r())},Cw.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},Cw.prototype.getAxes=function(){return this._axesList.slice()},Cw.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}z(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;ih&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}(i,t,e.hostModel.get("percentPrecision")),n.$vars.push("percent"),n},db.prototype._defaultLabelLine=function(t){Ks(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},db.type="series.pie",db.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},db);function db(){var t=null!==cb&&cb.apply(this,arguments)||this;return t.useColorPaletteOnData=!0,t}wd.registerClass(pb);var fb=Math.PI/180;function gb(t,h,c,p,d,e,n,i,r,o){if(!(t.length<2)){for(var a,s=t.length,l=0;lc?l:s,(i=Math.abs(e.label.y-c))>n.maxY&&(a=(r=e.label.x-h-e.len2*d)<(o=p+e.len)?Math.sqrt(i*i/(1-r*r/o/o)):o,n.rB=a,n.maxY=i),n.list.push(e))}f(s),f(l)}(t)}function f(t){for(var e=t.rB,n=e*e,i=0;i=n.r0}},Sb.type="pie",Sb);function Sb(){var t=null!==wb&&wb.apply(this,arguments)||this;return t.ignoreLabelLineUpdate=!0,t}Ed.registerClass(bb);var Mb,Tb,Cb=2*Math.PI,kb=Math.PI/180;Tb=iv,W([[(Mb="pie")+"ToggleSelect","toggleSelect"],[Mb+"Select","select"],[Mb+"UnSelect","unselect"]],function(o){Tb(o[0],function(t,e,n){var i,r;t=A({},t),n.dispatchAction(A(t,{type:o[1],seriesIndex:(i=t,r=[],e.eachComponent({mainType:"series",subType:Mb,query:i},function(t){r.push(t.seriesIndex)}),r)}))})}),rv(k(function(t,e,I){e.eachSeriesByType(t,function(t){var e,r=t.getData(),n=r.mapDimension("value"),i=(e=I,ec(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})),o=t.get("center"),a=t.get("radius");N(a)||(a=[0,a]),N(o)||(o=[o,o]);var s=Bs(i.width,I.getWidth()),l=Bs(i.height,I.getHeight()),u=Math.min(s,l),h=Bs(o[0],s)+i.x,c=Bs(o[1],l)+i.y,p=Bs(a[0],u/2),d=Bs(a[1],u/2),f=-t.get("startAngle")*kb,g=t.get("minAngle")*kb,y=0;r.each(n,function(t){isNaN(t)||y++});var v=r.getSum(n),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),w=t.get("stillShowZeroSum"),b=r.getDataExtent(n);b[0]=0;var S,M=Cb,T=0,C=f,k=_?1:-1;r.setLayout({viewRect:i,r:d}),r.each(n,function(t,e){var n,i;isNaN(t)?r.setItemLayout(e,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d}):((n="area"!==x?0===v&&w?m:t*m:Cb/y)>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",r[u]+":0",i[1-l]+":auto",r[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(a)return a(t,n,i),1}}function Ct(t){return"CANVAS"===t.nodeName.toUpperCase()}var kt="undefined"!=typeof window&&!!window.addEventListener,Dt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,It=[];function At(t,e,n,i){return n=n||{},i||!m.canvasSupported?Lt(t,e,n):m.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):Lt(t,e,n),n}function Lt(t,e,n){if(m.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ct(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Tt(It,t,i,r))return n.zrX=It[0],void(n.zrY=It[1])}n.zrX=n.zrY=0}function Pt(t){return t||window.event}function Ot(t,e,n){if(null!=(e=Pt(e)).zrX)return e;var i,r,o=e.type;o&&0<=o.indexOf("touch")?(i="touchend"!==o?e.targetTouches[0]:e.changedTouches[0])&&At(t,i,e,n):(At(t,e,e,n),r=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;return null!=n&&null!=i?3*(0!==i?Math.abs(i):Math.abs(n))*(0i.getWidth()||n<0||n>i.getHeight()}W(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(a){Xt.prototype[a]=function(t){var e,n,i=t.zrX,r=t.zrY,o=jt(this,i,r);if("mouseup"===a&&o||(n=(e=this.findHover(i,r)).target),"mousedown"===a)this._downEl=n,this._downPoint=[t.zrX,t.zrY],this._upEl=n;else if("mouseup"===a)this._upEl=n;else if("click"===a){if(this._downEl!==this._upEl||!this._downPoint||4>>1])<0?l=o:s=1+o;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;0>>1);0>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function ne(f,g){var a,s,y=$t,l=0,v=(f.length,[]);function e(t){var e=a[t],n=s[t],i=a[t+1],r=s[t+1];s[t]=n+r,t===l-3&&(a[t+1]=a[t+2],s[t+1]=s[t+2]),l--;var o=ee(f[i],f,e,n,0,g);e+=o,0!=(n-=o)&&0!==(r=te(f[e+n-1],f,i,r,r-1,g))&&(n<=r?function(t,e,n,i){var r=0;for(r=0;rs[t+1])break;e(t)}},forceMergeRuns:function(){for(;1>=1;return t+e}(r);do{(o=Qt(t,n,i,e))=this._maxSize&&0>4|(3840&i)>>8,240&i|(240&i)>>4,15&i|(15&i)<<4,1),De(t,e),e):void Me(e,0,0,0,1):7===r.length?0<=(i=parseInt(r.substr(1),16))&&i<=16777215?(Me(e,(16711680&i)>>16,(65280&i)>>8,255&i,1),De(t,e),e):void Me(e,0,0,0,1):void 0;var o=r.indexOf("("),a=r.indexOf(")");if(-1!==o&&a+1===r.length){var s=r.substr(0,o),l=r.substr(o+1,a-(o+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return void Me(e,0,0,0,1);u=be(l.pop());case"rgb":return 3!==l.length?void Me(e,0,0,0,1):(Me(e,we(l[0]),we(l[1]),we(l[2]),u),De(t,e),e);case"hsla":return 4!==l.length?void Me(e,0,0,0,1):(l[3]=be(l[3]),Ae(l,e),De(t,e),e);case"hsl":return 3!==l.length?void Me(e,0,0,0,1):(Ae(l,e),De(t,e),e);default:return}}Me(e,0,0,0,1)}}function Ae(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=be(t[1]),r=be(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Me(e=e||[],_e(255*Se(a,o,n+1/3)),_e(255*Se(a,o,n)),_e(255*Se(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Le(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function Pe(t,e){var n=Ie(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var Oe=Array.prototype.slice;function Ee(t,e,n){return(e-t)*n+t}function Ne(t,e,n,i){for(var r=e.length,o=0;o=this.maxTime?this.maxTime=t:this._needsSort=!0;var n,i=this.keyframes,r=i.length;if(this.interpolable)if(O(e)){var o,a=O((n=e)&&n[0])?2:1;if(0e);u++);u=Math.min(u-1,o-2)}var h,c,p,d,f,g,y,v,m,_,x=r[u+1],w=r[u];w&&x&&(this._lastFrame=u,this._lastFramePercent=e,0!=(h=x.percent-w.percent)&&(c=(e-w.percent)/h,p=n?this._additiveValue:l?We:t[a],(0=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},qn.prototype.clone=function(){return new qn(this.x,this.y,this.width,this.height)},qn.prototype.copy=function(t){qn.copy(this,t)},qn.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},qn.create=function(t){return new qn(t.x,t.y,t.width,t.height)},qn.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},qn.applyTransform=function(t,e,n){if(n){if(n[1]<1e-5&&-1e-5this._ux||xr(e-this._yi)>this._uy||this._len<5;return this.addData(lr.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},Mr.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(lr.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},Mr.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(lr.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},Mr.prototype.arc=function(t,e,n,i,r,o){var a=r-i;return r=i+a,this.addData(lr.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=vr(r)*n+t,this._yi=mr(r)*n+e,this},Mr.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},Mr.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(lr.R,t,e,n,i),this},Mr.prototype.closePath=function(){this.addData(lr.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},Mr.prototype.fill=function(t){t&&t.fill(),this.toStatic()},Mr.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},Mr.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t;for(var e=this._dashIdx=0,n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;hn||xr(g)>i||c===e-1)&&(d=Math.sqrt(D*D+g*g),r=f,o=m);break;case lr.C:var y=t[c++],v=t[c++],f=t[c++],m=t[c++],_=t[c++],x=t[c++],d=function(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=Fi(t,n,r,a,f),y=Fi(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}(r,o,y,v,f,m,_,x,10),r=_,o=x;break;case lr.Q:d=function(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Ui(t,n,r,p),f=Ui(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}(r,o,y=t[c++],v=t[c++],f=t[c++],m=t[c++],10),r=f,o=m;break;case lr.A:var w=t[c++],b=t[c++],S=t[c++],M=t[c++],T=t[c++],C=t[c++],k=C+T;c+=1,t[c++],1===c&&(a=vr(T)*S+w,s=mr(T)*M+b),d=yr(S,M)*gr(wr,Math.abs(C)),r=vr(k)*S+w,o=mr(k)*M+b;break;case lr.R:a=r=t[c++],s=o=t[c++],d=2*t[c++]+2*t[c++];break;case lr.Z:var D=a-r,g=s-o;d=Math.sqrt(D*D+g*g),r=a,o=s}0<=d&&(u+=l[h++]=d)}return this._pathLen=u},Mr.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;vc||xr(s-o)>p||v===d-1){if(f){if(u=Or[i=0]+t&&a<=Or[1]+t?c:0}(r=o?(u=i,i=kr(r),kr(u)):(i=kr(i),kr(r)))Math.PI/2&&f<1.5*Math.PI&&(c=-c),p+=c))}return p}(f,g,v,m,m+_,x,S,r);l=Math.cos(m+_)*y+f,u=Math.sin(m+_)*v+g;break;case Ar.R:h=l=t[p++],c=u=t[p++];if(w=h+t[p++],b=c+t[p++],n){if(Tr(h,c,w,c,e,i,r)||Tr(w,c,w,b,e,i,r)||Tr(w,b,h,b,e,i,r)||Tr(h,b,h,c,e,i,r))return!0}else s+=Ir(w,c,w,b,i,r),s+=Ir(h,b,h,c,i,r);break;case Ar.Z:if(n){if(Tr(l,u,h,c,e,i,r))return!0}else s+=Ir(l,u,h,c,i,r);l=h,u=c}}return n||(o=u,a=c,Math.abs(o-a)=e.maxIterations){t+=e.ellipsis;break}var a=0===o?function(t,e,n,i){for(var r=0,o=0,a=t.length;oo){0i.width&&(o=e.split("\n"),g=!0),i.accumWidth=u):(h=_a(e,f,i.width,i.breakAll,i.accumWidth),i.accumWidth=h.accumWidth+l,a=h.linesWidths,o=h.lines)):o=e.split("\n");for(var y=0;yi.len()&&(u=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Bs(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?t.replace(/^\s+|\s+$/g,"").match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Fs(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Vs(t){var e=t.toString(),n=e.indexOf("e");if(0"'])/g,qh={"&":"&","<":"<",">":">",'"':""","'":"'"};function Xh(t){return null==t?"":(t+"").replace(Yh,function(t,e){return qh[e]})}function Zh(t,e){return"{"+t+(null==e?"":e)+"}"}var jh=["a","b","c","d","e","f","g"];function Kh(t,e){var n=R(t)?{color:t,extraCssText:e}:t||{},i=n.color;e=n.extraCssText;var r=n.renderMode||"html",o=n.markerId||"X";return i?"html"===r?"subItem"===n.type?'':'':{renderMode:r,content:"{marker"+o+"|} ",style:{color:i}}:""}var $h=W,Qh=["left","right","top","bottom","width","height"],Jh=[["width","left","right"],["height","top","bottom"]];function tc(u,h,c,p,d){var f=0,g=0;null==p&&(p=1/0),null==d&&(d=1/0);var y=0;h.eachChild(function(t,e){var n,i,r,o,a=t.getBoundingRect(),s=h.childAt(e+1),l=s&&s.getBoundingRect();y="horizontal"===u?(n=a.width+(l?-l.x+a.x:0),p<(i=f+n)||t.newline?(f=0,i=n,g+=y+c,a.height):Math.max(y,a.height)):(r=a.height+(l?-l.y+a.y:0),d<(o=g+r)||t.newline?(f+=y+c,g=0,o=r,a.width):Math.max(y,a.width)),t.newline||(t.x=f,t.y=g,t.markRedraw(),"horizontal"===u?f=i+c:g=o+c)})}k(tc,"vertical"),k(tc,"horizontal");function ec(t,e,n){n=Uh(n||0);var i=e.width,r=e.height,o=Bs(t.left,i),a=Bs(t.top,r),s=Bs(t.right,i),l=Bs(t.bottom,r),u=Bs(t.width,i),h=Bs(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(i/re)return t[i];return t[n-1]}(s,n):a;if((l=l||a)&&l.length){var u=l[r];return t&&(o[t]=u),i.colorIdx=(r+1)%l.length,u}},mc);function mc(){}var _c=tt(["tooltip","label","itemName","itemId","seriesName"]),xc="original",wc="arrayRows",bc="objectRows",Sc="keyedColumns",Mc="typedArray",Tc="unknown",Cc="column",kc="row",Dc=(Ic.seriesDataToSource=function(t){return new Ic({data:t,sourceFormat:C(t)?Mc:xc})},Ic);function Ic(t){this.data=t.data||(t.sourceFormat===Sc?{}:[]),this.sourceFormat=t.sourceFormat||Tc,this.seriesLayoutBy=t.seriesLayoutBy||Cc,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectCount=t.dimensionsDetectCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption}var Ac={Must:1,Might:2,Not:3},Lc=sl();function Pc(t,e,n,i){var r=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:Nc(r),startIndex:a,dimensionsDetectCount:o};{var s,l;e===wc?(s=t,"auto"===i||null==i?Rc(function(t){null!=t&&"-"!==t&&(R(t)?null==a&&(a=1):a=0)},n,s,10):a="number"==typeof i?i:i?1:0,r||1!==a||(r=[],Rc(function(t,e){r[e]=null!=t?t+"":""},n,s,1/0)),o=r?r.length:n===kc?s.length:s[0]?s[0].length:null):e===bc?r=r||function(t){var e,n=0;for(;n'+o+Xh(s.displayName||"-")+"":"")+''+Xh("ordinal"===n?t+"":"time"===n?h?"":function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Us(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",ph(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",ph(s,2)).replace("d",s).replace("hh",ph(l,2)).replace("h",l).replace("mm",ph(u,2)).replace("m",u).replace("ss",ph(h,2)).replace("s",h).replace("SSS",ph(c,3))}("yyyy/MM/dd hh:mm:ss",t):Wh(t))+"")&&u.push('
'+a+"
"),d&&(f[i]=y,++g))}o.length?W(o,function(t){e(Up(v,r,t),t)}):W(t,e);var n=l&&d?"\n":"",i=n+u.join(n||"");return{renderMode:c,content:i,style:f}}(a):n(i?Up(v,r,o[0]):s?a[0]:a),m=d?u.content:1"+u.content+"":''+u.content+"",_=p.seriesIndex+"at"+g,x=Kh({color:y,type:"item",renderMode:c,markerId:_});f[_]=y,++g;var w=v.getName(r),b=this.name;return il(this)||(b=""),b=b?Xh(b)+(h?" ":e):"",y=R(x)?x:x.content,{html:d?h?""+y+b+": "+m:b+(b?"\n":"")+y+(w?Xh(w)+": "+m:m):(b=b?h?''+b+"":'
'+b+"
":"",h?'
'+y+b+m+"
":b+'
'+y+(w?''+Xh(w)+""+m:m)+"
"),markers:f}},bd.prototype.isAnimationEnabled=function(){if(m.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},bd.prototype.restoreData=function(){this.dataTask.dirty()},bd.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return vc.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},bd.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},bd.prototype.getProgressive=function(){return this.get("progressive")},bd.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},bd.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},bd.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;re.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function kd(e,n){W(e.CHANGABLE_METHODS,function(t){e.wrapMethod(t,k(Dd,n))})}function Dd(t){var e=Id(t);e&&e.setOutputEnd(this.count())}function Id(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i,r=n.currentTask;return!r||(i=r.agentStubMap)&&(r=i.get(t.uid)),r}}w(wd,qp),w(wd,vc),ml(wd,cc);var Ad=(Ld.prototype.init=function(t,e){},Ld.prototype.render=function(t,e,n,i){},Ld.prototype.dispose=function(t,e){},Ld.prototype.updateView=function(t,e,n,i){},Ld.prototype.updateLayout=function(t,e,n,i){},Ld.prototype.updateVisual=function(t,e,n,i){},Ld.prototype.blurSeries=function(t,e){},Ld);function Ld(){this.group=new uo,this.uid=Zu("viewComponent")}function Pd(){var s=sl();return function(t){var e=s(t),n=t.pipelineContext,i=e.large,r=e.progressiveRender,o=e.large=n&&n.large,a=e.progressiveRender=n&&n.progressiveRender;return!!(i^o||r^a)&&"reset"}}vl(Ad),bl(Ad,{registerWhenExtend:!0});var Od=sl(),Ed=Pd(),Nd=(Rd.prototype.init=function(t,e){},Rd.prototype.render=function(t,e,n,i){},Rd.prototype.highlight=function(t,e,n,i){Bd(t.getData(),i,"emphasis")},Rd.prototype.downplay=function(t,e,n,i){Bd(t.getData(),i,"normal")},Rd.prototype.remove=function(t,e){this.group.removeAll()},Rd.prototype.dispose=function(t,e){},Rd.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},Rd.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},Rd.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},Rd.markUpdateMethod=function(t,e){Od(t).updateMethod=e},Rd.protoInitialize=void(Rd.prototype.type="chart"),Rd);function Rd(){this.group=new uo,this.uid=Zu("viewChart"),this.renderTask=Zp({plan:Fd,reset:Vd}),this.renderTask.context={view:this}}function zd(t,e,n){t&&("emphasis"===e?ou:au)(t,n)}function Bd(e,t,n){var i,r,o=al(e,t),a=t&&null!=t.highlightKey?(i=t.highlightKey,null==(r=Il[i])&&Dl<=32&&(r=Il[i]=Dl++),r):null;null!=o?W(js(o),function(t){zd(e.getItemGraphicEl(t),n,a)}):e.eachItemGraphicEl(function(t){zd(t,n,a)})}function Fd(t){return Ed(t.model)}function Vd(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Od(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),Hd[l]}vl(Nd),bl(Nd,{registerWhenExtend:!0});var Hd={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}};function Gd(t,r,o){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}r=r||0;function e(){for(var t=[],e=0;ed?n+=y(v("data.partialData"),{displayCnt:d}):n+=v("data.allData");for(var a,s,l=[],u=0;un.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},ef.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},ef.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},ef.prototype.restorePipelines=function(t){var i=this,r=i._pipelineMap=tt();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;r.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},ef.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.ecInstance.getModel(),r=this.api;W(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});t.reset&&this._createSeriesStageTask(t,e,i,r),t.overallReset&&this._createOverallStageTask(t,e,i,r)},this)},ef.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},ef.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},ef.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},ef.prototype._performStageTasks=function(t,l,u,h){h=h||{};var c=!1,p=this;function d(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}W(t,function(i,t){var e,n,r,o,a,s;h.visualType&&h.visualType!==i.visualType||(n=(e=p._stageTaskMap.get(i.uid)).seriesTaskMap,(r=e.overallTask)?((a=r.agentStubMap).each(function(t){d(h,t)&&(t.dirty(),o=!0)}),o&&r.dirty(),p.updatePayload(r,u),s=p.getPerformArgs(r,h.block),a.each(function(t){t.perform(s)}),r.perform(s)&&(c=!0)):n&&n.each(function(t,e){d(h,t)&&t.dirty();var n=p.getPerformArgs(t,h.block);n.skip=!i.performRawSeries&&l.isSeriesFiltered(t.context.model),p.updatePayload(t,u),t.perform(n)&&(c=!0)}))}),this.unfinished=c||this.unfinished},ef.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},ef.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})},ef.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},ef.prototype._createSeriesStageTask=function(i,t,r,o){var a=this,s=t.seriesTaskMap||(t.seriesTaskMap=tt()),e=i.seriesType,n=i.getTargetSeries;function l(t){var e=t.uid,n=s.get(e)||s.set(e,Zp({plan:sf,reset:lf,count:cf}));n.context={model:t,ecModel:r,api:o,useClearVisual:i.isVisual&&!i.isLayout,plan:i.plan,reset:i.reset,scheduler:a},a._pipe(t,n)}i.createOnAllSeries?r.eachRawSeries(l):e?r.eachRawSeriesByType(e,l):n&&n(r,o).each(l);var u=a._pipelineMap;s.each(function(t,e){u.get(e)||(t.dispose(),s.removeKey(e))})},ef.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||Zp({reset:nf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap=o.agentStubMap||tt(),s=t.seriesType,l=t.getTargetSeries,u=!0;function h(t){var e=t.uid,n=a.get(e);n||(n=a.set(e,Zp({reset:rf,onDirty:af})),o.dirty()),n.context={model:t,overallProgress:u},n.agent=o,n.__block=u,r._pipe(t,n)}s?n.eachRawSeriesByType(s,h):l?l(n,i).each(h):(u=!1,W(n.getSeries(),h));var c=r._pipelineMap;a.each(function(t,e){c.get(e)||(t.dispose(),o.dirty(),a.removeKey(e))})},ef.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);i.head||(i.head=e),i.tail&&i.tail.pipe(e),(i.tail=e).__idxInPipeline=i.count++,e.__pipeline=i},ef.wrapStageHandler=function(t,e){return D(t)&&(t={overallReset:t,seriesType:function(t){pf=null;try{t(df,ff)}catch(t){}return pf}(t)}),t.uid=Zu("stageHandler"),e&&(t.visualType=e),t},ef);function ef(t,e,n,i){this._stageTaskMap=tt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function nf(t){t.overallReset(t.ecModel,t.api,t.payload)}function rf(t){return t.overallProgress&&of}function of(){this.agent.dirty(),this.getDownstream().dirty()}function af(){this.agent&&this.agent.dirty()}function sf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function lf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=js(t.reset(t.model,t.ecModel,t.api,t.payload));return 1r[0]){for(l=0;lt);l++);s=i[r[l]]}r.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.__painter=this}else v("Layer of zlevel "+t+" is not valid")},Yg.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,r.connectedBackgroundColor&&f.painter.setBackgroundColor(r.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()}return r.connectedBackgroundColor&&f.add(new Co({shape:{x:0,y:0,width:t,height:e},style:{fill:r.connectedBackgroundColor}})),Xg(d,function(t){var e=new go({style:{x:t.left*n-u,y:t.top*n-h,image:t.dom}});f.add(e)}),f.refreshImmediately(),i.toDataURL("image/"+(r&&r.type||"png"))}return this.getDataURL(r)}},Ly.prototype.convertToPixel=function(t,e){return py(this,"convertToPixel",t,e)},Ly.prototype.convertFromPixel=function(t,e){return py(this,"convertFromPixel",t,e)},Ly.prototype.containPixel=function(t,r){var o;if(!this._disposed)return W(ul(this._model,t),function(t,i){0<=i.indexOf("Models")&&W(t,function(t){var e,n=t.coordinateSystem;n&&n.containPoint?o=o||!!n.containPoint(r):"seriesModels"===i&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(o=o||e.containPoint(r,t))},this)},this),!!o;By(this.id)},Ly.prototype.getVisual=function(t,e){var n=ul(this._model,t,{defaultMainType:"series"}),i=n.seriesModel,r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,o,e):function(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e)}}(r,e)},Ly.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},Ly.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},Ly.prototype._initEvents=function(){var t,e,p=this;Xg(zy,function(c){function t(t){var e,n,i,r,o,a,s=p.getModel(),l=t.target,u="globalout"===c,h=l&&kl(l);u?n={}:h&&null!=h.dataIndex?n=(e=h.dataModel||s.getSeriesByIndex(h.seriesIndex))&&e.getDataParams(h.dataIndex,h.dataType)||{}:l&&h.eventData&&(n=A({},h.eventData)),n&&(i=n.componentType,r=n.componentIndex,"markLine"!==i&&"markPoint"!==i&&"markArea"!==i||(i="series",r=n.seriesIndex),a=(o=i&&null!=r&&s.getComponent(i,r))&&p["series"===o.mainType?"_chartsMap":"_componentsMap"][o.__viewId],n.event=t,n.type=c,p._$eventProcessor.eventInfo={targetEl:l,packedEvent:n,model:o,view:a},p.trigger(c,n))}t.zrEventfulCallAtLast=!0,p._zr.on(c,t,p)}),Xg(Vy,function(t,e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),Xg(["selectchanged"],function(e){p._messageCenter.on(e,function(t){this.trigger(e,t)},p)}),t=this._messageCenter,e=this,t.on("selectchanged",function(t){t.isFromClick?(fg("map","selectchanged",e,t),fg("pie","selectchanged",e,t)):"select"===t.fromAction?(fg("map","selected",e,t),fg("pie","selected",e,t)):"unselect"===t.fromAction&&(fg("map","unselected",e,t),fg("pie","unselected",e,t))})},Ly.prototype.isDisposed=function(){return this._disposed},Ly.prototype.clear=function(){this._disposed?By(this.id):this.setOption({series:[]},!0)},Ly.prototype.dispose=function(){var e,n;this._disposed?By(this.id):(this._disposed=!0,pl(this.getDom(),$y,""),e=this._api,n=this._model,Xg(this._componentsViews,function(t){t.dispose(n,e)}),Xg(this._chartsViews,function(t){t.dispose(n,e)}),this._zr.dispose(),delete Xy[this.id])},Ly.prototype.resize=function(t){var e,n,i;this._disposed?By(this.id):(this._zr.resize(t),e=this._model,this._loadingFX&&this._loadingFX.resize(),e&&(n=e.resetOption("media"),i=t&&t.silent,this[$g]=!0,n&&ly(this),cy.update.call(this,{type:"resize",animation:{duration:0}}),this[$g]=!1,gy.call(this,i),yy.call(this,i)))},Ly.prototype.showLoading=function(t,e){var n,i;this._disposed?By(this.id):(jg(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),qy[t]&&(n=qy[t](this._api,e),i=this._zr,this._loadingFX=n,i.add(n)))},Ly.prototype.hideLoading=function(){this._disposed?By(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},Ly.prototype.makeActionFromEvent=function(t){var e=A({},t);return e.type=Vy[t.type],e},Ly.prototype.dispatchAction=function(t,e){var n,i;this._disposed?By(this.id):(jg(e)||(e={silent:!!e}),Fy[t.type]&&this._model&&(this[$g]?this._pendingActions.push(t):(n=e.silent,fy.call(this,t,n),(i=e.flush)?this._zr.flush():!1!==i&&m.browser.weChat&&this._throttledZrFlush(),gy.call(this,n),yy.call(this,n))))},Ly.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},Ly.prototype.appendData=function(t){var e;this._disposed?By(this.id):(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},Ly.internalField=(ly=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),uy(t,!0),uy(t,!1),e.plan()},uy=function(t,o){for(var a=t._model,s=t._scheduler,l=o?t._componentsViews:t._chartsViews,u=o?t._componentsMap:t._chartsMap,h=t._zr,c=t._api,e=0;el.get("hoverLayerThreshold")&&!m.node&&l.eachSeries(function(t){var e;t.preventUsingHoverLayer||(e=n._chartsMap[t.__viewId]).__alive&&e.group.traverse(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),Qd(i._zr.dom,t)},Sy=function(e,n){Xg(Wy,function(t){t(e,n)})},Cy=function(t){t[Jg]=!0,t.getZr().wakeUp()},ky=function(t){t[Jg]&&(t.getZr().storage.traverse(function(t){Fh(t)||Py(t)}),t[Jg]=!1)},My=function(n){return u(t,e=Qc),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){ou(t,e),Cy(n)},t.prototype.leaveEmphasis=function(t,e){au(t,e),Cy(n)},t.prototype.enterBlur=function(t){tu(t,jl),Cy(n)},t.prototype.leaveBlur=function(t){su(t),Cy(n)},t.prototype.enterSelect=function(t){lu(t),Cy(n)},t.prototype.leaveSelect=function(t){uu(t),Cy(n)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(Ty=function(i){function r(t,e){for(var n=0;n_[1]&&(_[1]=m)}e&&(this._nameList[p]=e[d])}this._rawCount=this._count=l,this._extent={},yv(this)},Fv.prototype._initDataFromProvider=function(t,e){if(!(e<=t)){for(var n,i=this._chunkSize,r=this._rawData,o=this._storage,a=this.dimensions,s=a.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,p=this._nameRepeatCount={},d=this._chunkCount,f=0;fI[1]&&(I[1]=D)}r.pure||(m=u[v],y&&null==m&&(null!=y.name?u[v]=m=y.name:null==n||(x=o[_=a[n]][S])&&(m=x[M],(w=l[_].ordinalMeta)&&w.categories.length&&(m=w.categories[m]))),null==(b=null==y?null:y.id)&&null!=m&&(p[m]=p[m]||0,0=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},Fv.prototype.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var r=1/0,o=-1,a=0,s=0,l=this.count();st[T][1])&&(M=!1)}M&&(o[a++]=this.getRawIndex(y))}return aS[1]&&(S[1]=b)}}}return a},Fv.prototype.downSample=function(t,e,n,i){for(var r=Mv(this,[t]),o=r._storage,a=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=this._chunkSize,c=r._rawExtent[t],p=new(mv(this))(u),d=0,f=0;fc[1]&&(c[1]=_),p[d++]=x}return r._count=d,r._indices=p,r.getRawIndex=wv,r},Fv.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Yu(n,e,e&&e.ecModel)},Fv.prototype.diff=function(e){var n=this;return new cv(e?e.getIndices():[],this.getIndices(),function(t){return bv(e,t)},function(t){return bv(n,t)})},Fv.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},Fv.prototype.setVisual=function(t,e){this._visual=this._visual||{},Av(t)?A(this._visual,t):this._visual[t]=e},Fv.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},Fv.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t],r=(i=i||(n[t]={}))[e];return r||(N(r=this.getVisual(e))?r=r.slice():Av(r)&&(r=A({},r)),i[e]=r),r},Fv.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Av(e)?A(i,e):i[e]=n},Fv.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},Fv.prototype.setLayout=function(t,e){if(Av(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},Fv.prototype.getLayout=function(t){return this._layout[t]},Fv.prototype.getItemLayout=function(t){return this._itemLayouts[t]},Fv.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?A(this._itemLayouts[t]||{},e):e},Fv.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},Fv.prototype.setItemGraphicEl=function(t,e){var n,i=this.hostModel;e&&((n=kl(e)).dataIndex=t,n.dataType=this.dataType,n.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(kv,e)),this._graphicEls[t]=e},Fv.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},Fv.prototype.eachItemGraphicEl=function(n,i){W(this._graphicEls,function(t,e){t&&n&&n.call(i,t,e)})},Fv.prototype.cloneShallow=function(t){if((t=t||new Fv(U(this.dimensions,this.getDimensionInfo,this),this.hostModel))._storage=this._storage,Dv(t,this),this._indices){var e=this._indices.constructor;if(e===Array){var n=this._indices.length;t._indices=new e(n);for(var i=0;ii[0]&&(i[0]=o[0]),o[1]>i[1]&&(i[1]=o[1])}return{min:e?n:i,max:e?i:n}}var Am,Lm=function(){this.smooth=0,this.smoothConstraint=!0,this.connectNulls=!1},Pm=(u(Om,Am=Gr),Om.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},Om.prototype.getDefaultShape=function(){return new Lm},Om.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length,o=Im(n,e.smoothConstraint);if(e.connectNulls){for(;0i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return W(o.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function Xm(t,e,n){if("cartesian2d"!==t.type)return Hm(t,e,n);var i,r,o=t.getBaseAxis().isHorizontal(),a=Vm(t,e,n);return n.get("clip",!0)||(i=a.shape,r=Math.max(i.width,i.height),o?(i.y-=r,i.height+=2*r):(i.x-=r,i.width+=2*r)),a}var Zm,jm=(u(Km,Zm=Nd),Km.prototype.init=function(){var t=new uo,e=new gm;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},Km.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.mapArray(a.getItemLayout),h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=function(t,e,n){if(!n.valueDim)return[];for(var i=[],r=0,o=e.count();rh[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";W(h,function(t){t.offset=(t.coord-d)/g}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Zo(0,0,0,0,h,!0);return y[o]=d,y[o+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],C=t.get(["emphasis","focus"]),k=t.get(["emphasis","blurScope"]);d.useStyle(P(s.getLineStyle(),{fill:"none",stroke:T,lineJoin:"bevel"})),yu(d,t,"lineStyle"),"bolder"===t.get(["emphasis","lineStyle","width"])&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1),kl(d).seriesIndex=t.seriesIndex,du(d,C,k);var D,I,A=Um(t.get("smooth"));function L(t){i._changePolyState(t)}d.setShape({smooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),f&&(D=a.getCalculationInfo("stackedOnSeries"),I=0,f.useStyle(P(l.getAreaStyle(),{fill:T,opacity:.7,lineJoin:"bevel"})),D&&(I=Um(D.get("smooth"))),f.setShape({smooth:A,stackedOnSmooth:I,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),yu(f,t,"areaStyle"),kl(f).seriesIndex=t.seriesIndex,du(f,C,k)),a.eachItemGraphicEl(function(t){t&&(t.onHoverStateChange=L)}),this._data=a,this._coordSys=r,this._stackedOnPoints=_,this._points=u,this._step=M,this._valueOrigin=m},Km.prototype.dispose=function(){},Km.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=al(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&0<=o){var a=r.getItemGraphicEl(o);if(!a){var s=r.getItemLayout(o);if(!s)return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(s[0],s[1]))return;(a=new um(r,o)).setPosition(s),a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,r.setItemGraphicEl(o,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else Nd.prototype.highlight.call(this,t,e,n,i)},Km.prototype.downplay=function(t,e,n,i){var r,o=t.getData(),a=al(o,i);this._changePolyState("normal"),null!=a&&0<=a?(r=o.getItemGraphicEl(a))&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay()):Nd.prototype.downplay.call(this,t,e,n,i)},Km.prototype._changePolyState=function(t){var e=this._polygon;eu(this._polyline,t),e&&eu(e,t)},Km.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Pm({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e},Km.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new Bm({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n},Km.prototype._updateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=_m(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=Ym(u.current,n,r),c=Ym(u.stackedOnCurrent,n,r),p=Ym(u.next,n,r),d=Ym(u.stackedOnNext,n,r)),3e3e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;ne[1]&&(e[1]=t[1])},y_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},y_.prototype.getExtent=function(){return this._extent.slice()},y_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},y_.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},y_.prototype.isBlank=function(){return this._isBlank},y_.prototype.setBlank=function(t){this._isBlank=t},y_);function y_(t){this._setting=t||{},this._extent=[1/0,-1/0]}bl(g_,{registerWhenExtend:!0});var v_=Fs;function m_(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=qs(o/e,!0);null!=n&&as[1]&&(s[0]=s[1]),r}function __(t){return Vs(t)+2}function x_(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function w_(t,e){return t>=e[0]&&t<=e[1]}function b_(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function S_(t,e){return t*(e[1]-e[0])+e[0]}var M_,T_=(u(C_,M_=g_),C_.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},C_.prototype.contain=function(t){return w_(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},C_.prototype.normalize=function(t){return b_(t=this.getCategoryIndex(this.parse(t)),this._extent)},C_.prototype.scale=function(t){return t=this.getCategoryIndex(t),Math.round(S_(t,this._extent))},C_.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:this.getCategoryIndex(n)}),n++;return t},C_.prototype.getMinorTicks=function(t){},C_.prototype.setCategorySortInfo=function(t){this._categorySortInfo=t},C_.prototype.getCategorySortInfo=function(){return this._categorySortInfo},C_.prototype.getCategoryIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].beforeSortIndex:t},C_.prototype.getRawIndex=function(t){return this._categorySortInfo.length?this._categorySortInfo[t].ordinalNumber:t},C_.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawIndex(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},C_.prototype.count=function(){return this._extent[1]-this._extent[0]+1},C_.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},C_.prototype.isInExtentRange=function(t){return t=this.getCategoryIndex(t),this._extent[0]<=t&&this._extent[1]>=t},C_.prototype.getOrdinalMeta=function(){return this._ordinalMeta},C_.prototype.niceTicks=function(){},C_.prototype.niceExtent=function(){},C_.type="ordinal",C_);function C_(t){var e=M_.call(this,t)||this;e.type="ordinal";var n=e.getSetting("ordinalMeta");return n&&!N(n)||(n=new i_({categories:n})),e._ordinalMeta=n,e._categorySortInfo=[],e._extent=e.getSetting("extent")||[0,n.categories.length-1],e}g_.registerClass(T_);var k_,D_=Fs,I_=(u(A_,k_=g_),A_.prototype.parse=function(t){return t},A_.prototype.contain=function(t){return w_(t,this._extent)},A_.prototype.normalize=function(t){return b_(t,this._extent)},A_.prototype.scale=function(t){return S_(t,this._extent)},A_.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},A_.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},A_.prototype.getInterval=function(){return this._interval},A_.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=__(t)},A_.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]s&&(t?o.push({value:D_(s+e,r)}):o.push({value:n[1]})),o},A_.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h=y[0]&&d<=y[1]&&a++)}var v=(y[1]-y[0])/f;if(1.5*v=y[0]&&t.value<=y[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n);var o=Y_.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]n[1]&&(n[1]=e[1])})}var xx=Math.PI,bx=(Sx.prototype.hasBuilder=function(t){return!!Mx[t]},Sx.prototype.add=function(t){Mx[t](this.opt,this.axisModel,this.group,this._transformGroup)},Sx.prototype.getGroup=function(){return this.group},Sx.innerTextLayout=function(t,e,n){var i,r=Hs(e-t),o=Gs(r)?(i=0l[1]?-1:1,h=["start"===r?l[0]-u*s:"end"===r?l[1]+u*s:(l[0]+l[1])/2,kx(r)?t.labelOffset+o*s:0],null!=(p=e.get("nameRotate"))&&(p=p*xx/180),kx(r)?c=bx.innerTextLayout(t.rotation,null!=p?p:t.rotation,o):(c=function(t,e,n,i){var r,o,a=Hs(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;r=Gs(a-xx/2)?(o=l?"bottom":"top","center"):Gs(a-1.5*xx)?(o=l?"top":"bottom","center"):(o="middle",a<1.5*xx&&xx/2h[1]&&h.reverse(),(null==l||l>h[1])&&(l=h[1]),lt[1]&&(t[1]=e)}Ad.registerClass(Ux),Ad.registerClass(Xx),iv(Kg.PROCESSOR.FILTER+10,{getTargetSeries:function(t){var e=tt();return t.eachSeries(function(t){Ex(t)&&e.set(t.uid,t)}),e},overallReset:function(t,e){var u,h,C,n=[],i=tt();u=i,h=n,t.eachSeries(function(t){var e,n,i,r,o,a,s,l;Ex(t)&&(n=(e=Nx(t)).xAxisModel,i=e.yAxisModel,r=n.axis,o=i.axis,a=r.scale.rawExtentInfo,s=o.scale.rawExtentInfo,l=t.getData(),a&&a.frozen||s&&s.frozen||(h.push({seriesModel:t,xAxisModel:n,yAxisModel:i}),_x(jx(u,n).condExtent,l,r.dim),_x(jx(u,i).condExtent,l,o.dim)))}),C=i,W(n,function(t){var e=t.xAxisModel,n=t.yAxisModel,i=e.axis,r=n.axis,o=jx(C,e),a=jx(C,n);o.rawExtentInfo=hx(i.scale,e,o.condExtent),a.rawExtentInfo=hx(r.scale,n,a.condExtent),o.rawExtentResult=o.rawExtentInfo.calculate(),a.rawExtentResult=a.rawExtentInfo.calculate();var s,l,u=t.seriesModel.getData(),h={},c={};function p(e,t){var n=t.condExtent,i=t.rawExtentResult;"category"===e.type&&(n[0]e.min&&n.modifyDataMinMax("min",i[0]),!e.maxFixed&&i[1]a[1],p(e[0].coord,a[0])&&(i?e[0].coord=a[0]:e.shift()),i&&p(a[0],e[0].coord)&&e.unshift({coord:a[0]}),p(a[1],r.coord)&&(i?r.coord=a[1]:e.pop()),i&&p(r.coord,a[1])&&e.push({coord:a[1]}))}(this,n,e.get("alignWithLabel"),t.clamp),n},ww.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return 0e[1]&&e.reverse(),e},Tw.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},Tw.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setCategorySortInfo(t)},Tw);function Tw(t,e,n,i,r){var o=Sw.call(this,t,e,n)||this;return o.index=0,o.type=i||"value",o.position=r||"bottom",o}var Cw=(kw.prototype.getRect=function(){return this._rect},kw.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),W(n.x,function(t){dx(t.scale,t.model)}),W(n.y,function(t){dx(t.scale,t.model)});var i={};W(n.x,function(t){Iw(n,"y",t,i)}),W(n.y,function(t){Iw(n,"x",t,i)}),this.resize(this.model,e)},kw.prototype.resize=function(t,e,n){var l=ec(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=l;var i=this._axesList;function r(){W(i,function(t){var e,n,i,r,o=t.isHorizontal(),a=o?[0,l.width]:[0,l.height],s=t.inverse?1:0;t.setExtent(a[s],a[1-s]),e=t,n=o?l.x:l.y,i=e.getExtent(),r=i[0]+i[1],e.toGlobalCoord="x"===e.dim?function(t){return t+n}:function(t){return r-t+n},e.toLocalCoord="x"===e.dim?function(t){return t-n}:function(t){return r-t+n}})}r(),!n&&t.get("containLabel")&&(W(i,function(t){var e,n,i;t.model.get(["axisLabel","inside"])||(e=gx(t))&&(n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]),l[n]-=e[n]+i,"top"===t.position?l.y+=e.height+i:"left"===t.position&&(l.x+=e.width+i))}),r())},kw.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},kw.prototype.getAxes=function(){return this._axesList.slice()},kw.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}z(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;ih&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}(i,t,e.hostModel.get("percentPrecision")),n.$vars.push("percent"),n},fb.prototype._defaultLabelLine=function(t){Ks(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},fb.type="series.pie",fb.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},fb);function fb(){var t=null!==pb&&pb.apply(this,arguments)||this;return t.useColorPaletteOnData=!0,t}wd.registerClass(db);var gb=Math.PI/180;function yb(t,h,c,p,d,e,n,i,r,o){if(!(t.length<2)){for(var a,s=t.length,l=0;lc?l:s,(i=Math.abs(e.label.y-c))>n.maxY&&(a=(r=e.label.x-h-e.len2*d)<(o=p+e.len)?Math.sqrt(i*i/(1-r*r/o/o)):o,n.rB=a,n.maxY=i),n.list.push(e))}f(s),f(l)}(t)}function f(t){for(var e=t.rB,n=e*e,i=0;i=n.r0}},Mb.type="pie",Mb);function Mb(){var t=null!==bb&&bb.apply(this,arguments)||this;return t.ignoreLabelLineUpdate=!0,t}Nd.registerClass(Sb);var Tb,Cb,kb=2*Math.PI,Db=Math.PI/180;Cb=rv,W([[(Tb="pie")+"ToggleSelect","toggleSelect"],[Tb+"Select","select"],[Tb+"UnSelect","unselect"]],function(o){Cb(o[0],function(t,e,n){var i,r;t=A({},t),n.dispatchAction(A(t,{type:o[1],seriesIndex:(i=t,r=[],e.eachComponent({mainType:"series",subType:Tb,query:i},function(t){r.push(t.seriesIndex)}),r)}))})}),ov(k(function(t,e,D){e.eachSeriesByType(t,function(t){var e,r=t.getData(),n=r.mapDimension("value"),i=(e=D,ec(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})),o=t.get("center"),a=t.get("radius");N(a)||(a=[0,a]),N(o)||(o=[o,o]);var s=Bs(i.width,D.getWidth()),l=Bs(i.height,D.getHeight()),u=Math.min(s,l),h=Bs(o[0],s)+i.x,c=Bs(o[1],l)+i.y,p=Bs(a[0],u/2),d=Bs(a[1],u/2),f=-t.get("startAngle")*Db,g=t.get("minAngle")*Db,y=0;r.each(n,function(t){isNaN(t)||y++});var v=r.getSum(n),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),w=t.get("stillShowZeroSum"),b=r.getDataExtent(n);b[0]=0;var S,M=kb,T=0,C=f,k=_?1:-1;r.setLayout({viewRect:i,r:d}),r.each(n,function(t,e){var n,i;isNaN(t)?r.setItemLayout(e,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d}):((n="area"!==x?0===v&&w?m:t*m:kb/y) high) {\r\n var outlier = [i, dataItem];\r\n opt.layout === 'vertical' && outlier.reverse();\r\n outliers.push(outlier);\r\n }\r\n }\r\n }\r\n return {\r\n boxData: boxData,\r\n outliers: outliers,\r\n axisData: axisData\r\n };\r\n }\n\n var version = '1.0.0';\r\n if (echarts.dataTool) {\r\n echarts.dataTool.version = version;\r\n echarts.dataTool.gexf = gexf;\r\n echarts.dataTool.prepareBoxplotData = prepareBoxplotData;\r\n }\n\n exports.gexf = gexf;\n exports.prepareBoxplotData = prepareBoxplotData;\n exports.version = version;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file +{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","require","define","amd","self","dataTool","echarts","arrayProto","Array","prototype","nativeSlice","slice","nativeMap","map","ctorFunction","constructor","protoFunction","arr","cb","context","result","i","len","length","push","call","bindPolyfill","func","args","_i","arguments","apply","concat","bind","isFunction","value","parse","xml","doc","parser","DOMParser","parseFromString","getElementsByTagName","gexfRoot","getChildByTagName","graphRoot","attributes","parseAttributes","attributesMap","id","nodes","parseNodes","links","parseEdges","parent","getChildrenByTagName","attribDom","getAttr","title","type","nodeDom","label","node","name","itemStyle","normal","vizSizeDom","vizPosDom","vizColorDom","attvaluesDom","symbolSize","parseFloat","x","y","color","join","attvalueDomList","j","attvalueDom","attId","attValue","attribute","parseInt","toLowerCase","edgeDom","sourceId","targetId","edge","source","target","lineStyle","vizThicknessDom","width","getAttribute","el","attrName","tagName","firstChild","nodeType","nodeName","nextSibling","children","gexf","Object","freeze","__proto__","asc","sort","a","b","quantile","ascArr","p","H","h","Math","floor","v","e","prepareBoxplotData","rawData","opt","boxData","outliers","axisData","boundIQR","useExtreme","ascList","Q1","Q2","Q3","min","max","bound","low","high","dataItem","outlier","layout","reverse","version","defineProperty"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('echarts')) :\n typeof define === 'function' && define.amd ? define(['exports', 'echarts'], factory) :\n (global = global || self, factory(global.dataTool = {}, global.echarts));\n}(this, (function (exports, echarts) { 'use strict';\n\n var arrayProto = Array.prototype;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\n\n function parse(xml) {\r\n var doc;\r\n if (typeof xml === 'string') {\r\n var parser = new DOMParser();\r\n doc = parser.parseFromString(xml, 'text/xml');\r\n }\r\n else {\r\n doc = xml;\r\n }\r\n if (!doc || doc.getElementsByTagName('parsererror').length) {\r\n return null;\r\n }\r\n var gexfRoot = getChildByTagName(doc, 'gexf');\r\n if (!gexfRoot) {\r\n return null;\r\n }\r\n var graphRoot = getChildByTagName(gexfRoot, 'graph');\r\n var attributes = parseAttributes(getChildByTagName(graphRoot, 'attributes'));\r\n var attributesMap = {};\r\n for (var i = 0; i < attributes.length; i++) {\r\n attributesMap[attributes[i].id] = attributes[i];\r\n }\r\n return {\r\n nodes: parseNodes(getChildByTagName(graphRoot, 'nodes'), attributesMap),\r\n links: parseEdges(getChildByTagName(graphRoot, 'edges'))\r\n };\r\n }\r\n function parseAttributes(parent) {\r\n return parent ? map(getChildrenByTagName(parent, 'attribute'), function (attribDom) {\r\n return {\r\n id: getAttr(attribDom, 'id'),\r\n title: getAttr(attribDom, 'title'),\r\n type: getAttr(attribDom, 'type')\r\n };\r\n }) : [];\r\n }\r\n function parseNodes(parent, attributesMap) {\r\n return parent ? map(getChildrenByTagName(parent, 'node'), function (nodeDom) {\r\n var id = getAttr(nodeDom, 'id');\r\n var label = getAttr(nodeDom, 'label');\r\n var node = {\r\n id: id,\r\n name: label,\r\n itemStyle: {\r\n normal: {}\r\n }\r\n };\r\n var vizSizeDom = getChildByTagName(nodeDom, 'viz:size');\r\n var vizPosDom = getChildByTagName(nodeDom, 'viz:position');\r\n var vizColorDom = getChildByTagName(nodeDom, 'viz:color');\r\n var attvaluesDom = getChildByTagName(nodeDom, 'attvalues');\r\n if (vizSizeDom) {\r\n node.symbolSize = parseFloat(getAttr(vizSizeDom, 'value'));\r\n }\r\n if (vizPosDom) {\r\n node.x = parseFloat(getAttr(vizPosDom, 'x'));\r\n node.y = parseFloat(getAttr(vizPosDom, 'y'));\r\n }\r\n if (vizColorDom) {\r\n node.itemStyle.normal.color = 'rgb(' + [\r\n getAttr(vizColorDom, 'r') | 0,\r\n getAttr(vizColorDom, 'g') | 0,\r\n getAttr(vizColorDom, 'b') | 0\r\n ].join(',') + ')';\r\n }\r\n if (attvaluesDom) {\r\n var attvalueDomList = getChildrenByTagName(attvaluesDom, 'attvalue');\r\n node.attributes = {};\r\n for (var j = 0; j < attvalueDomList.length; j++) {\r\n var attvalueDom = attvalueDomList[j];\r\n var attId = getAttr(attvalueDom, 'for');\r\n var attValue = getAttr(attvalueDom, 'value');\r\n var attribute = attributesMap[attId];\r\n if (attribute) {\r\n switch (attribute.type) {\r\n case 'integer':\r\n case 'long':\r\n attValue = parseInt(attValue, 10);\r\n break;\r\n case 'float':\r\n case 'double':\r\n attValue = parseFloat(attValue);\r\n break;\r\n case 'boolean':\r\n attValue = attValue.toLowerCase() === 'true';\r\n break;\r\n }\r\n node.attributes[attId] = attValue;\r\n }\r\n }\r\n }\r\n return node;\r\n }) : [];\r\n }\r\n function parseEdges(parent) {\r\n return parent ? map(getChildrenByTagName(parent, 'edge'), function (edgeDom) {\r\n var id = getAttr(edgeDom, 'id');\r\n var label = getAttr(edgeDom, 'label');\r\n var sourceId = getAttr(edgeDom, 'source');\r\n var targetId = getAttr(edgeDom, 'target');\r\n var edge = {\r\n id: id,\r\n name: label,\r\n source: sourceId,\r\n target: targetId,\r\n lineStyle: {\r\n normal: {}\r\n }\r\n };\r\n var lineStyle = edge.lineStyle.normal;\r\n var vizThicknessDom = getChildByTagName(edgeDom, 'viz:thickness');\r\n var vizColorDom = getChildByTagName(edgeDom, 'viz:color');\r\n if (vizThicknessDom) {\r\n lineStyle.width = parseFloat(vizThicknessDom.getAttribute('value'));\r\n }\r\n if (vizColorDom) {\r\n lineStyle.color = 'rgb(' + [\r\n getAttr(vizColorDom, 'r') | 0,\r\n getAttr(vizColorDom, 'g') | 0,\r\n getAttr(vizColorDom, 'b') | 0\r\n ].join(',') + ')';\r\n }\r\n return edge;\r\n }) : [];\r\n }\r\n function getAttr(el, attrName) {\r\n return el.getAttribute(attrName);\r\n }\r\n function getChildByTagName(parent, tagName) {\r\n var node = parent.firstChild;\r\n while (node) {\r\n if (node.nodeType !== 1\r\n || node.nodeName.toLowerCase() !== tagName.toLowerCase()) {\r\n node = node.nextSibling;\r\n }\r\n else {\r\n return node;\r\n }\r\n }\r\n return null;\r\n }\r\n function getChildrenByTagName(parent, tagName) {\r\n var node = parent.firstChild;\r\n var children = [];\r\n while (node) {\r\n if (node.nodeName.toLowerCase() === tagName.toLowerCase()) {\r\n children.push(node);\r\n }\r\n node = node.nextSibling;\r\n }\r\n return children;\r\n }\n\n var gexf = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse\n });\n\n function asc(arr) {\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n return arr;\r\n }\r\n function quantile(ascArr, p) {\r\n var H = (ascArr.length - 1) * p + 1;\r\n var h = Math.floor(H);\r\n var v = +ascArr[h - 1];\r\n var e = H - h;\r\n return e ? v + e * (ascArr[h] - v) : v;\r\n }\r\n function prepareBoxplotData (rawData, opt) {\r\n opt = opt || {};\r\n var boxData = [];\r\n var outliers = [];\r\n var axisData = [];\r\n var boundIQR = opt.boundIQR;\r\n var useExtreme = boundIQR === 'none' || boundIQR === 0;\r\n for (var i = 0; i < rawData.length; i++) {\r\n axisData.push(i + '');\r\n var ascList = asc(rawData[i].slice());\r\n var Q1 = quantile(ascList, 0.25);\r\n var Q2 = quantile(ascList, 0.5);\r\n var Q3 = quantile(ascList, 0.75);\r\n var min = ascList[0];\r\n var max = ascList[ascList.length - 1];\r\n var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\r\n var low = useExtreme\r\n ? min\r\n : Math.max(min, Q1 - bound);\r\n var high = useExtreme\r\n ? max\r\n : Math.min(max, Q3 + bound);\r\n boxData.push([low, Q1, Q2, Q3, high]);\r\n for (var j = 0; j < ascList.length; j++) {\r\n var dataItem = ascList[j];\r\n if (dataItem < low || dataItem > high) {\r\n var outlier = [i, dataItem];\r\n opt.layout === 'vertical' && outlier.reverse();\r\n outliers.push(outlier);\r\n }\r\n }\r\n }\r\n return {\r\n boxData: boxData,\r\n outliers: outliers,\r\n axisData: axisData\r\n };\r\n }\n\n var version = '1.0.0';\r\n if (echarts.dataTool) {\r\n echarts.dataTool.version = version;\r\n echarts.dataTool.gexf = gexf;\r\n echarts.dataTool.prepareBoxplotData = prepareBoxplotData;\r\n }\n\n exports.gexf = gexf;\n exports.prepareBoxplotData = prepareBoxplotData;\n exports.version = version;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d8bc84abde1272ac7151aaf2f06d9556a8d63d50..f9e903e53308d652af3360b184824051a24fbf62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "echarts", - "version": "5.0.0-alpha.1", + "version": "5.0.0-alpha.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -7481,7 +7481,8 @@ "tslib": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true }, "tsutils": { "version": "3.17.1", @@ -7952,11 +7953,18 @@ } }, "zrender": { - "version": "5.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.0.0-alpha.1.tgz", - "integrity": "sha512-4iGc4DRCI526gxAOEEPPRAwAHDZamXqvJhs/O/dd2R8vPUvaBxo/8NOmqVuWZXQEHo2+XZg++PPUsvWq6fZ/3A==", + "version": "5.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.0.0-alpha.2.tgz", + "integrity": "sha512-QZHAsZGO6gHnDBrhr9G4jGvO6jmeLzwkOcqpqyqUPHz59fIvht55Yn1Z3vEhjjr7HTq5LfuHUAh30eYQsg5YGg==", "requires": { - "tslib": "^1.10.0" + "tslib": "1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + } } } } diff --git a/package.json b/package.json index 8ff84076448cd15c4577ae541c896ded33dc9142..186f1f0d4eb62e5509ccdf6f2436df2abea6837c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "echarts", - "version": "5.0.0-alpha.1", + "version": "5.0.0-alpha.2", "description": "A powerful charting and visualization library for browser", "license": "Apache-2.0", "keywords": [ @@ -34,7 +34,7 @@ "lint:dist": "echo 'It might take a while. Please wait ...' && ./node_modules/.bin/jshint --config .jshintrc-dist dist/echarts.js" }, "dependencies": { - "zrender": "5.0.0-alpha.1" + "zrender": "5.0.0-alpha.2" }, "devDependencies": { "@babel/core": "7.3.4", diff --git a/src/echarts.ts b/src/echarts.ts index aab2083d14b90137d22e76f2bee8c32460452bae..dbe437854ed204001ee13a8a8643374ceec3d5a6 100644 --- a/src/echarts.ts +++ b/src/echarts.ts @@ -113,10 +113,10 @@ const each = zrUtil.each; const isFunction = zrUtil.isFunction; const isObject = zrUtil.isObject; -export const version = '5.0.0-alpha.1'; +export const version = '5.0.0-alpha.2'; export const dependencies = { - zrender: '5.0.0-alpha.1' + zrender: '5.0.0-alpha.2' }; const TEST_FRAME_REMAIN_TIME = 1;